📄 encdialog.cpp
字号:
79, "Hard Rock", 7, "Hip-Hop", 35, "House", 100, "Humour", 19, "Industrial", 33, "Instrumental", 46, "Instrumental Pop", 47, "Instrumental Rock", 8, "Jazz", 29, "Jazz+Funk", 63, "Jungle", 86, "Latin", 71, "Lo-Fi", 45, "Meditative", 9, "Metal", 77, "Musical", 82, "National Folk", 64, "Native American", 10, "New Age", 66, "New Wave", 39, "Noise", 255, "Not Set", 11, "Oldies", 103, "Opera", 12, "Other", 75, "Polka", 13, "Pop", 62, "Pop/Funk", 53, "Pop-Folk", 109, "Porn Groove", 117, "Power Ballad", 23, "Pranks", 108, "Primus", 92, "Progressive Rock", 67, "Psychadelic", 93, "Psychedelic Rock", 43, "Punk", 121, "Punk Rock", 14, "R&B", 15, "Rap", 68, "Rave", 16, "Reggae", 76, "Retro", 87, "Revival", 118, "Rhythmic Soul", 17, "Rock", 78, "Rock & Roll", 114, "Samba", 110, "Satire", 69, "Showtunes", 21, "Ska", 111, "Slow Jam", 95, "Slow Rock", 105, "Sonata", 42, "Soul", 37, "Sound Clip", 24, "Soundtrack", 56, "Southern Rock", 44, "Space", 101, "Speech", 83, "Swing", 94, "Symphonic Rock", 106, "Symphony", 113, "Tango", 18, "Techno", 51, "Techno-Industrial", 60, "Top 40", 70, "Trailer", 31, "Trance", 72, "Tribal", 27, "Trip-Hop", 28, "Vocal"};BOOL CALLBACK DIALOGMsgProcEnc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam){ switch(Message) { case WM_INITDIALOG: { char buf[50]; char FillList=wParam||lParam ? 1 : 0; char *Quality[]={"Default (100)","10","20","30","40","50","60","70","80","90","100","110","120","130","140","150","200","300","400","500",0}; char *BitRate[]={"Auto","8","16","18","20","24","32","40","48","56","64","80","96","112","128","160","192","224","256","320","384",0}; char *BandWidth[]={"Auto","Full","4000","8000","11025","16000","22050","24000","32000","44100","48000",0}; char *Ext[]={".aac",".mp4",".m4a",".m4b",0}; CMyEncCfg cfg(false); // sprintf(Quality[0]+8,"%3d",3); SetWindowPos(GetDlgItem(hWndDlg,IDC_CHK_TAG),GetDlgItem(hWndDlg,IDC_GRP_TAG),0,0,0,0,SWP_NOMOVE | SWP_NOSIZE); INIT_CB(hWndDlg,IDC_CB_QUALITY,Quality,FillList,0); INIT_CB(hWndDlg,IDC_CB_BITRATE,BitRate,FillList,0); INIT_CB(hWndDlg,IDC_CB_BANDWIDTH,BandWidth,FillList,0); INIT_CB(hWndDlg,IDC_CB_EXT,Ext,FillList,0); INIT_CB_GENRES(hWndDlg,IDC_CB_GENRE,ID3Genres,0); SendMessage(GetDlgItem(hWndDlg, IDC_BTN_ARTFILE), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmBrowse);#ifdef USE_OUTPUT_FOLDER SendMessage(GetDlgItem(hWndDlg, IDC_BTN_BROWSE), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmBrowse); if(!cfg.OutDir || !*cfg.OutDir) { GetCurrentDirectory(MAX_PATH,config_AACoutdir); FREE_ARRAY(cfg.OutDir); cfg.OutDir=strdup(config_AACoutdir); } else strcpy(config_AACoutdir,cfg.OutDir); SetDlgItemText(hWndDlg, IDC_E_BROWSE, cfg.OutDir);#else ShowWindow(GetDlgItem(hWndDlg, IDC_BTN_BROWSE),SW_HIDE); ShowWindow(GetDlgItem(hWndDlg, IDC_E_BROWSE),SW_HIDE); ShowWindow(GetDlgItem(hWndDlg, IDC_L_BROWSE),SW_HIDE);#endif CheckDlgButton(hWndDlg,IDC_RADIO_MPEG4,FALSE); CheckDlgButton(hWndDlg,IDC_RADIO_MPEG2,FALSE); if(cfg.EncCfg.mpegVersion==MPEG4) CheckDlgButton(hWndDlg,IDC_RADIO_MPEG4,TRUE); else CheckDlgButton(hWndDlg,IDC_RADIO_MPEG2,TRUE); CheckDlgButton(hWndDlg,IDC_RADIO_MAIN,FALSE); CheckDlgButton(hWndDlg,IDC_RADIO_LOW,FALSE); CheckDlgButton(hWndDlg,IDC_RADIO_SSR,FALSE); CheckDlgButton(hWndDlg,IDC_RADIO_LTP,FALSE); switch(cfg.EncCfg.aacObjectType) { case MAIN: CheckDlgButton(hWndDlg,IDC_RADIO_MAIN,TRUE); break; case LOW: CheckDlgButton(hWndDlg,IDC_RADIO_LOW,TRUE); break; case SSR: CheckDlgButton(hWndDlg,IDC_RADIO_SSR,TRUE); break; case LTP: CheckDlgButton(hWndDlg,IDC_RADIO_LTP,TRUE); DISABLE_LTP break; } CheckDlgButton(hWndDlg,IDC_RADIO_RAW,FALSE); CheckDlgButton(hWndDlg,IDC_RADIO_ADTS,FALSE); switch(cfg.EncCfg.outputFormat) { case RAW: CheckDlgButton(hWndDlg,IDC_RADIO_RAW,TRUE); break; case ADTS: CheckDlgButton(hWndDlg,IDC_RADIO_ADTS,TRUE); break; } CheckDlgButton(hWndDlg, IDC_CHK_ALLOWMIDSIDE, cfg.EncCfg.allowMidside); CheckDlgButton(hWndDlg, IDC_CHK_USETNS, cfg.EncCfg.useTns); CheckDlgButton(hWndDlg, IDC_CHK_USELFE, cfg.EncCfg.useLfe); if(cfg.UseQuality) CheckDlgButton(hWndDlg,IDC_RADIO_QUALITY,TRUE); else CheckDlgButton(hWndDlg,IDC_RADIO_BITRATE,TRUE); switch(cfg.EncCfg.quantqual) { case 100: SendMessage(GetDlgItem(hWndDlg, IDC_CB_QUALITY), CB_SETCURSEL, 0, 0); break; default: if(cfg.EncCfg.quantqual<10) cfg.EncCfg.quantqual=10; if(cfg.EncCfg.quantqual>500) cfg.EncCfg.quantqual=500; sprintf(buf,"%lu",cfg.EncCfg.quantqual); SetDlgItemText(hWndDlg, IDC_CB_QUALITY, buf); break; } switch(cfg.EncCfg.bitRate) { case 0: SendMessage(GetDlgItem(hWndDlg, IDC_CB_BITRATE), CB_SETCURSEL, 0, 0); break; default: sprintf(buf,"%lu",cfg.EncCfg.bitRate); SetDlgItemText(hWndDlg, IDC_CB_BITRATE, buf); break; } switch(cfg.EncCfg.bandWidth) { case 0: SendMessage(GetDlgItem(hWndDlg, IDC_CB_BANDWIDTH), CB_SETCURSEL, 0, 0); break; case 0xffffffff: SendMessage(GetDlgItem(hWndDlg, IDC_CB_BANDWIDTH), CB_SETCURSEL, 1, 0); break; default: sprintf(buf,"%lu",cfg.EncCfg.bandWidth); SetDlgItemText(hWndDlg, IDC_CB_BANDWIDTH, buf); break; } SendMessage(GetDlgItem(hWndDlg, IDC_CB_EXT), CB_SETCURSEL, cfg.SaveMP4, 0); if(wParam|lParam) { CheckDlgButton(hWndDlg,IDC_CHK_AUTOCFG, cfg.AutoCfg); DISABLE_CTRLS_ENC(!cfg.AutoCfg); }#ifdef USE_IMPORT_TAG CheckDlgButton(hWndDlg,IDC_CHK_IMPORTTAG, cfg.TagImport); cfg.TagImport=IsDlgButtonChecked(hWndDlg,IDC_CHK_IMPORTTAG) ? 1 : 0; ShowWindow(GetDlgItem(hWndDlg, IDC_CHK_IMPORTTAG),SW_SHOW); #ifdef USE_PATHEXT SetDlgItemText(hWndDlg, IDC_E_SOURCEPATH, cfg.TagSrcPath); SetDlgItemText(hWndDlg, IDC_E_SOURCEEXT, cfg.TagSrcExt); SendMessage(GetDlgItem(hWndDlg, IDC_BTN_BROWSEIMPORT), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmBrowse); ShowWindow(GetDlgItem(hWndDlg, IDC_E_SOURCEEXT),SW_SHOW); ShowWindow(GetDlgItem(hWndDlg, IDC_E_SOURCEPATH),SW_SHOW); ShowWindow(GetDlgItem(hWndDlg, IDC_BTN_BROWSEIMPORT),SW_SHOW); #endif#endif CheckDlgButton(hWndDlg,IDC_CHK_TAG, cfg.TagOn); ENABLE_TAG(cfg.TagOn && !cfg.TagImport); ENABLE_AACTAGS(cfg.TagOn && !cfg.TagImport && cfg.SaveMP4); SetDlgItemText(hWndDlg, IDC_E_ARTIST, cfg.Tag.artist); SetDlgItemText(hWndDlg, IDC_E_TITLE, cfg.Tag.title); SetDlgItemText(hWndDlg, IDC_E_ALBUM, cfg.Tag.album); SetDlgItemText(hWndDlg, IDC_E_YEAR, cfg.Tag.year); SetDlgItemText(hWndDlg, IDC_CB_GENRE, cfg.Tag.genre); SetDlgItemText(hWndDlg, IDC_E_WRITER, cfg.Tag.writer); SetDlgItemText(hWndDlg, IDC_E_COMMENT, cfg.Tag.comment); SetDlgItemText(hWndDlg, IDC_E_ARTFILE, cfg.Tag.artFilename); SetDlgItemInt(hWndDlg, IDC_E_TRACK, cfg.Tag.trackno, FALSE); SetDlgItemInt(hWndDlg, IDC_E_NTRACKS, cfg.Tag.ntracks, FALSE); SetDlgItemInt(hWndDlg, IDC_E_DISK, cfg.Tag.discno, FALSE); SetDlgItemInt(hWndDlg, IDC_E_NDISKS, cfg.Tag.ndiscs, FALSE); SetDlgItemInt(hWndDlg, IDC_E_COMPILATION, cfg.Tag.compilation, FALSE); CheckDlgButton(hWndDlg, IDC_CHK_COMPILATION, cfg.Tag.compilation); } break; // End of WM_INITDIALOG case WM_CLOSE: // Closing the Dialog behaves the same as Cancel PostMessage(hWndDlg, WM_COMMAND, IDCANCEL, 0L); break; // End of WM_CLOSE case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: {// HANDLE hCfg=(HANDLE)lParam; char buf[50]; CMyEncCfg cfg; cfg.AutoCfg=IsDlgButtonChecked(hWndDlg,IDC_CHK_AUTOCFG) ? TRUE : FALSE; if(!cfg.AutoCfg) { cfg.EncCfg.mpegVersion=IsDlgButtonChecked(hWndDlg,IDC_RADIO_MPEG4) ? MPEG4 : MPEG2; if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_MAIN)) cfg.EncCfg.aacObjectType=MAIN; if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_LOW)) cfg.EncCfg.aacObjectType=LOW; if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_SSR)) cfg.EncCfg.aacObjectType=SSR; if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_LTP)) cfg.EncCfg.aacObjectType=LTP; cfg.EncCfg.allowMidside=IsDlgButtonChecked(hWndDlg, IDC_CHK_ALLOWMIDSIDE); cfg.EncCfg.useTns=IsDlgButtonChecked(hWndDlg, IDC_CHK_USETNS); cfg.EncCfg.useLfe=IsDlgButtonChecked(hWndDlg, IDC_CHK_USELFE); GetDlgItemText(hWndDlg, IDC_CB_BITRATE, buf, 50); switch(*buf) { case 'A': // Auto cfg.EncCfg.bitRate=0; break; default: cfg.EncCfg.bitRate=GetDlgItemInt(hWndDlg, IDC_CB_BITRATE, 0, FALSE); } GetDlgItemText(hWndDlg, IDC_CB_BANDWIDTH, buf, 50); switch(*buf) { case 'A': // Auto cfg.EncCfg.bandWidth=0; break; case 'F': // Full cfg.EncCfg.bandWidth=0xffffffff; break; default: cfg.EncCfg.bandWidth=GetDlgItemInt(hWndDlg, IDC_CB_BANDWIDTH, 0, FALSE); } cfg.UseQuality=IsDlgButtonChecked(hWndDlg,IDC_RADIO_QUALITY) ? TRUE : FALSE; GetDlgItemText(hWndDlg, IDC_CB_QUALITY, buf, 50); switch(*buf) { case 'D': // Default cfg.EncCfg.quantqual=100; break; default: cfg.EncCfg.quantqual=GetDlgItemInt(hWndDlg, IDC_CB_QUALITY, 0, FALSE); } } cfg.EncCfg.outputFormat=IsDlgButtonChecked(hWndDlg,IDC_RADIO_RAW) ? RAW : ADTS;#ifdef USE_OUTPUT_FOLDER GetDlgItemText(hWndDlg, IDC_E_BROWSE, config_AACoutdir, MAX_PATH); FREE_ARRAY(cfg.OutDir); cfg.OutDir=strdup(config_AACoutdir);#endif cfg.SaveMP4=(BYTE)SendMessage(GetDlgItem(hWndDlg, IDC_CB_EXT), CB_GETCURSEL, 0, 0); cfg.TagOn=IsDlgButtonChecked(hWndDlg,IDC_CHK_TAG) ? 1 : 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -