亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mp3dlg.c

?? 讀取音樂光盤磁道為磁盤文件的DLL源碼
?? C
字號:
/*
 * mp3dlg.c - Copyright (C) 1999,2000 Jay A. Key
 *
 * The MP3 options dialog for the options property sheet.  Allows the 
 * user to set the output bitrate, and enable CRC and ID3v1 tagging.
 *
 **********************************************************************
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 */
#include <windows.h>
#include <commctrl.h>
#include "resources.h"
#include "globals.h"

void ConfigureMP3Dlg( HWND hWnd );
BOOL ValidateMP3Dlg( HWND hWnd );
int GetEncoder( HWND hWnd );
BOOL LoadEncoderFunctions( ENCODER nEncoder );

// save old settings for output dialog config
static BOOL bCRCTmp;
static BOOL bID3Tmp;
static BOOL bPrivateTmp;
static BOOL bOriginalTmp;
static BOOL bCopyrightTmp;
static WORD wTmpBitrate;
static WORD wTmpMaxBitrate;
static int  iTmpEncoder;
static int iEncoders[5];
static BOOL bTmpVBR;
static BOOL bTmpVBRHeader;
static MPEG_QUALITY nTmpQuality;
static INT  nTmpVBRQuality;
static BOOL bInInit = FALSE;
static BOOL bListsInit = FALSE;
#define NUMBITRATES 14
static WORD bitrates[NUMBITRATES] = { 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 };

/*
 * Called in response to PSN_KILLACTIVE.  Should validate all values in the
 * dialog, and save them to the temp variables.
 */
BOOL ValidateMP3Dlg( HWND hWnd )
{
  hWnd = hWnd;
  return TRUE;
}



/*
 * Called in response to PSN_SETACTIVE.  Sets dialog items with the values
 * from the temp variables.
 */
void ConfigureMP3Dlg( HWND hWnd )
{
  int i;
  BOOL bCFound = FALSE;
  BOOL bMFound = FALSE;
  char buf[32];

  bInInit = FALSE;

  CheckDlgButton( hWnd, IDCKB_CRC, bCRCTmp?BST_CHECKED:BST_UNCHECKED );
  CheckDlgButton( hWnd, IDCKB_ID3, bID3Tmp?BST_CHECKED:BST_UNCHECKED );
  CheckDlgButton( hWnd, IDCKB_ORIGINAL, bOriginalTmp?BST_CHECKED:BST_UNCHECKED );
  CheckDlgButton( hWnd, IDCKB_PRIVATE, bPrivateTmp?BST_CHECKED:BST_UNCHECKED );
  CheckDlgButton( hWnd, IDCKB_COPYRIGHT, bCopyrightTmp?BST_CHECKED:BST_UNCHECKED );

  CheckDlgButton( hWnd, IDCKB_VBR, bTmpVBR?BST_CHECKED:BST_UNCHECKED );
  CheckDlgButton( hWnd, IDCKB_VBRHEADER, bTmpVBRHeader?BST_CHECKED:BST_UNCHECKED );

  if ( !bListsInit )
    {
      SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_ADDSTRING, 0, (LPARAM)"Normal" );
      SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_ADDSTRING, 0, (LPARAM)"Low" );
      SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_ADDSTRING, 0, (LPARAM)"High" );
      SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_ADDSTRING, 0, (LPARAM)"Voice" );
      SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_SETCURSEL, (WPARAM)nTmpQuality, 0L );

      for( i = 0; i < 10; i++ )
	{
	  wsprintf( buf, "%d", i );
	  SendDlgItemMessage( hWnd, IDCBX_VBRQUALITY, CB_ADDSTRING, 0, (LPARAM)buf );
	}
      SendDlgItemMessage( hWnd, IDCBX_VBRQUALITY, CB_SETCURSEL, (WPARAM)nVBRQuality, 0L );

      for( i = 0; i < NUMBITRATES; i++ )
	{
	  wsprintf( buf, "%d", bitrates[i] );
	  SendDlgItemMessage( hWnd, IDCBX_CBITRATE, CB_ADDSTRING, 0, (LPARAM)buf );
	  SendDlgItemMessage( hWnd, IDCBX_MBITRATE, CB_ADDSTRING, 0, (LPARAM)buf );
	}

      i = 0;
      bListsInit = TRUE;

      if ( hBladeDll )
	{
	  iEncoders[i++] = BLADE_ENC_DLL;
	  SendDlgItemMessage( hWnd, IDCBX_ENCODER, CB_ADDSTRING, 0, (LPARAM)"BladeEnc DLL" );
	}

      if ( hLameDll )
	{
	  iEncoders[i++] = LAME_ENC_DLL;	  
	  SendDlgItemMessage( hWnd, IDCBX_ENCODER, CB_ADDSTRING, 0, (LPARAM)"Lame_Enc DLL" );
	}

    }

  switch( iEncoder )
    {
    case BLADE_ENC_DLL:
      SendDlgItemMessage( hWnd, IDCBX_ENCODER, CB_SELECTSTRING, -1, (LPARAM)"BladeEnc DLL" );
      break;

    case LAME_ENC_DLL:
      SendDlgItemMessage( hWnd, IDCBX_ENCODER, CB_SELECTSTRING, -1, (LPARAM)"Lame_Enc DLL" );
      break;

    case NOENCODER:
    default:
      break;
    }

  for( i = 0; (i < NUMBITRATES); i++ )
    {
      if ( wTmpBitrate == bitrates[i] )
	{
	  SendDlgItemMessage( hWnd, IDCBX_CBITRATE, CB_SETCURSEL, (WPARAM)i, 0L );
	  bCFound = TRUE;
	}
      if ( wTmpMaxBitrate == bitrates[i] )
	{
	  SendDlgItemMessage( hWnd, IDCBX_MBITRATE, CB_SETCURSEL, (WPARAM)i, 0L );
	  bMFound = TRUE;
	}
    }

  // if we didn't match any of the valid bitrates (ie, someone used regedit
  // to change the default value in the registry), set to 128 kbps.
  if ( !bCFound && !bMFound )
    {
      wBitrate = wTmpBitrate = wMaxBitrate = wTmpBitrate = 128;
      SendDlgItemMessage( hWnd, IDCBX_CBITRATE, CB_SETCURSEL, (WPARAM)8, 0L );
      SendDlgItemMessage( hWnd, IDCBX_MBITRATE, CB_SETCURSEL, (WPARAM)8, 0L );
    }

  bInInit = TRUE;
}


BOOL CALLBACK MP3DlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
			     LPARAM lParam )
{
  //  char buf[81];
  NMHDR *l = (NMHDR *)lParam;
  WORD wID;
  WORD wNotify;
  BOOL bChanged;
  int i;

  switch( uMsg )
    {
    case WM_INITDIALOG:
      //hOutDlg = hWnd;
      break;

    case WM_COMMAND:
      wID = LOWORD( wParam );
      wNotify = HIWORD( wParam );
      bChanged = TRUE;
      switch( wID )
	{
	case IDCKB_ID3:
	  bID3Tmp = !bID3Tmp;
	  break;

	case IDCKB_CRC:
	  bCRCTmp = !bCRCTmp;
	  break;

	case IDCKB_ORIGINAL:
	  bOriginalTmp = !bOriginalTmp;
	  break;

	case IDCKB_PRIVATE:
	  bPrivateTmp = !bPrivateTmp;
	  break;

	case IDCKB_COPYRIGHT:
	  bCopyrightTmp = !bCopyrightTmp;
	  break;

	case IDCKB_VBR:
	  bTmpVBR = !bTmpVBR;
	  break;

	case IDCKB_VBRHEADER:
	  bTmpVBRHeader = !bTmpVBRHeader;
	  break;

	case IDCBX_CBITRATE:
	  if ( wNotify == CBN_SELCHANGE )
	    {
	      i = SendDlgItemMessage( hWnd, IDCBX_CBITRATE, CB_GETCURSEL, 0, 0L );
	      wTmpBitrate = bitrates[i];
	    }
	  else
	    bChanged = FALSE;
	  break;

	case IDCBX_MBITRATE:
	  if ( wNotify == CBN_SELCHANGE )
	    {
	      i = SendDlgItemMessage( hWnd, IDCBX_MBITRATE, CB_GETCURSEL, 0, 0L );
	      wTmpMaxBitrate = bitrates[i];
	    }
	  else
	    bChanged = FALSE;
	  break;

	case IDCBX_ENCODER:
	  if ( wNotify == CBN_SELCHANGE )
	    iTmpEncoder = GetEncoder( hWnd );
	  else
	    bChanged = FALSE;
	  break;

	case IDCBX_QUALITY:
	  if ( wNotify == CBN_SELCHANGE )
	    nTmpQuality = SendDlgItemMessage( hWnd, IDCBX_QUALITY, CB_GETCURSEL, 0, 0L );
	  else
	    bChanged = FALSE;
	  break;
	  
	case IDCBX_VBRQUALITY:
	  if ( wNotify == CBN_SELCHANGE )
	    nTmpVBRQuality = SendDlgItemMessage( hWnd, IDCBX_VBRQUALITY, CB_GETCURSEL, 0, 0L );
	  else
	    bChanged = FALSE;
	  break;
	  
	default:
	  break;
	}
      if ( bInInit && bChanged )
	SendMessage( (HWND)GetWindowLong( hWnd, GWL_HWNDPARENT ),
		     PSM_CHANGED, (WPARAM)hWnd, 0L );
      break;

    case WM_NOTIFY:
      switch( l->code )
	{
	case PSN_SETACTIVE:  // sent before page is shown
	  ConfigureMP3Dlg( hWnd );
	  break;

	case PSN_KILLACTIVE:  //losing focus
	  if ( ValidateMP3Dlg( hWnd ) )
	    // ok to lose focus
	    SetWindowLong( hWnd, DWL_MSGRESULT, FALSE );
	  else
	    {
	      // don't use allow loss of focus
	      SetWindowLong( hWnd, DWL_MSGRESULT, TRUE );
	      return TRUE;
	    }
	  break;

	case PSN_QUERYCANCEL:
	  break;

	case PSN_APPLY:
	  bCRC = bCRCTmp;
	  bID3 = bID3Tmp;
	  bOriginal = bOriginalTmp;
	  bCopyright = bCopyrightTmp;
	  bPrivate = bPrivateTmp;
	  wBitrate = wTmpBitrate;
	  wMaxBitrate = wTmpMaxBitrate;
	  iEncoder = iTmpEncoder;
	  LoadEncoderFunctions( iEncoder );
	  bVBR = bTmpVBR;
	  bVBRHeader = bTmpVBRHeader;
	  nQuality = nTmpQuality;
	  nVBRQuality = nTmpVBRQuality;
	  break;

	case PSN_HELP:
	  break;

	case PSN_RESET:
	  break;

	default:
	  break;
	}
      break;
    }

  return FALSE;
}


/*
 * Used to initialize the values in the dialog.  If bGet is TRUE, values are
 * read and stored in tmp variables.  Otherwise, the values of the tmp vars
 * are written to the dialogs values.
 */
void GetSetMP3DlgCurrentVals( BOOL bGet )
{
  if ( bGet )
    {
      bCRCTmp = bCRC;
      bID3Tmp = bID3;
      bOriginalTmp = bOriginal;
      bCopyrightTmp = bCopyright;
      bPrivateTmp = bPrivate;
      wTmpBitrate = wBitrate;
      wTmpMaxBitrate = wMaxBitrate;
      iTmpEncoder = iEncoder;
      bListsInit = FALSE;
      bTmpVBR = bVBR;
      bTmpVBRHeader = bVBRHeader;
      nTmpQuality = nQuality;
      nTmpVBRQuality = nVBRQuality;
    }
  else
    {
      bCRC = bCRCTmp;
      bID3 = bID3Tmp;
      bOriginal = bOriginalTmp;
      bCopyright = bCopyrightTmp;
      bPrivate = bPrivateTmp;
      wBitrate = wTmpBitrate;
      wMaxBitrate = wTmpMaxBitrate;
      iEncoder = iTmpEncoder;
      bVBR = bTmpVBR;
      bVBRHeader = bTmpVBRHeader;
      nQuality = nTmpQuality;
      nVBRQuality = nTmpVBRQuality;
    }
}


int GetEncoder( HWND hWnd )
{
  int i;

  i = SendDlgItemMessage( hWnd, IDCBX_ENCODER, CB_GETCURSEL, 0, 0L );
  if ( i < 0 || i >= 5 )
    return iTmpEncoder;

  return iEncoders[i];
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产寡妇亲子伦一区二区| 亚洲超丰满肉感bbw| 国产麻豆精品在线| 精品成人私密视频| 国精品**一区二区三区在线蜜桃| 日韩女优av电影在线观看| 激情偷乱视频一区二区三区| 久久亚区不卡日本| 粉嫩绯色av一区二区在线观看| 国产精品伦一区| 91黄色激情网站| 午夜精品久久久久久久99水蜜桃 | 亚洲天堂久久久久久久| 99re这里只有精品6| 亚洲一区二区三区不卡国产欧美| 欧美亚洲禁片免费| 蜜桃久久久久久| 国产校园另类小说区| 91视频在线看| 日韩av午夜在线观看| 久久久久久久电影| 色狠狠综合天天综合综合| 日韩精品亚洲一区| 久久久精品黄色| 色综合久久久久综合| 日韩精品午夜视频| 国产欧美精品一区aⅴ影院 | 国产精品一区二区91| 国产精品福利电影一区二区三区四区| 一本大道av伊人久久综合| 亚洲午夜av在线| 久久综合久久综合久久| 91尤物视频在线观看| 青青草一区二区三区| 国产精品每日更新| 欧美放荡的少妇| 成人一区在线看| 婷婷久久综合九色综合绿巨人| 精品av综合导航| 色综合久久66| 国产精品一区二区视频| 亚洲午夜电影网| 中文字幕精品—区二区四季| 欧美精品1区2区3区| 成人av网站免费| 老司机精品视频一区二区三区| 国产精品久久久久久久久果冻传媒| 在线播放视频一区| 成人h版在线观看| 久久国产综合精品| 亚洲成人一区在线| 国产精品高潮呻吟| www国产精品av| 欧美日韩久久久一区| 97精品国产97久久久久久久久久久久| 日本系列欧美系列| 亚洲精品一卡二卡| 国产精品拍天天在线| 精品伦理精品一区| 欧美日韩国产高清一区二区| av不卡在线观看| 国产乱理伦片在线观看夜一区| 首页综合国产亚洲丝袜| 一区二区三区欧美| 国产精品美女www爽爽爽| 久久综合丝袜日本网| 欧美一级二级三级乱码| 欧美日韩亚洲综合一区二区三区 | 国产日韩欧美制服另类| 91精品国产一区二区| 欧美一区二区二区| 欧美私人免费视频| 91视视频在线观看入口直接观看www| 国产精品一级黄| 极品销魂美女一区二区三区| 日欧美一区二区| 亚洲 欧美综合在线网络| 亚洲欧美区自拍先锋| 国产精品久99| 中文字幕在线播放不卡一区| 国产精品视频一区二区三区不卡| 久久久国产精品不卡| 亚洲精品一区二区三区蜜桃下载| 精品伦理精品一区| 久久人人爽人人爽| 久久精品亚洲精品国产欧美| 国产亚洲一区二区三区在线观看 | 一本色道久久综合亚洲精品按摩| 国产a级毛片一区| 国产不卡高清在线观看视频| 国产成人在线影院 | 99久久亚洲一区二区三区青草| 成人黄色片在线观看| 成人黄色片在线观看| 91色porny在线视频| 在线观看视频欧美| 欧美伦理视频网站| 日韩欧美一区二区视频| 精品国产a毛片| 国产日韩欧美不卡在线| 国产精品白丝在线| 亚洲一区二区三区三| 日韩成人dvd| 激情六月婷婷综合| 不卡av在线免费观看| 在线视频欧美精品| 777xxx欧美| 久久毛片高清国产| 中文字幕一区二区三区不卡| 一区二区三区在线影院| 视频一区在线播放| 国产精品自产自拍| 91色综合久久久久婷婷| 91麻豆精品国产自产在线| 精品国产乱码久久久久久影片| 国产午夜精品美女毛片视频| 中文字幕字幕中文在线中不卡视频| 亚洲一区在线播放| 国产一级精品在线| 91激情五月电影| 精品国产电影一区二区| 最新高清无码专区| 美女诱惑一区二区| 99精品久久免费看蜜臀剧情介绍| 欧美精品在线观看播放| 国产亚洲欧美日韩日本| 亚洲一区二区欧美激情| 精品午夜久久福利影院 | 国产精品家庭影院| 视频在线观看一区| 不卡av电影在线播放| 欧美一卡在线观看| 亚洲丝袜美腿综合| 精品无人码麻豆乱码1区2区| 91免费视频网址| 久久色在线观看| 亚洲成人一区二区| 成人97人人超碰人人99| 日韩三级.com| 全国精品久久少妇| 精品奇米国产一区二区三区| 亚洲免费观看高清| 免费观看一级欧美片| 色激情天天射综合网| 久久精品人人做| 性做久久久久久久免费看| 99久久婷婷国产综合精品 | 国产精品免费久久| 麻豆国产一区二区| 欧美午夜宅男影院| 成人免费在线观看入口| 国产真实乱偷精品视频免| 欧美日本国产视频| 亚洲男人的天堂av| 成人理论电影网| 久久久天堂av| 久久成人久久鬼色| 欧美绝品在线观看成人午夜影视| 日韩理论电影院| 成人免费电影视频| 久久久三级国产网站| 精品一区二区综合| 日韩视频免费观看高清完整版在线观看 | 欧洲精品一区二区三区在线观看| 国产欧美一区二区精品性色超碰| 麻豆国产精品一区二区三区 | 亚洲综合免费观看高清在线观看| 成人免费观看视频| 国产精品日韩精品欧美在线| 国产毛片精品视频| 久久久久久久久97黄色工厂| 国内精品久久久久影院一蜜桃| 日韩欧美成人一区二区| 美腿丝袜在线亚洲一区 | 精品乱码亚洲一区二区不卡| 麻豆91在线播放| 精品国产伦一区二区三区观看方式 | 日韩欧美国产wwwww| 精品在线免费视频| 久久精品欧美一区二区三区不卡| 国产在线不卡视频| 久久久久久亚洲综合影院红桃 | 日韩影院在线观看| 日韩午夜激情av| 国产综合色视频| 日本一区二区三区dvd视频在线| 懂色av中文字幕一区二区三区| 国产日本欧洲亚洲| 97精品电影院| 亚洲成av人片www| 日韩精品中文字幕在线不卡尤物| 久久99国产精品免费网站| 亚洲精品一区二区三区影院| 国产另类ts人妖一区二区| 国产精品视频免费| 欧洲色大大久久| 久久精品国产亚洲高清剧情介绍| 久久久久国产精品麻豆ai换脸| av成人老司机| 亚洲高清免费在线|