Ticket #4712: tools_gui_lame_fix.patch
File tools_gui_lame_fix.patch, 11.5 KB (added by , 14 years ago) |
---|
-
scummvm/tools/trunk/compress.h
89 89 // Settings 90 90 // These functions are used by the GUI Tools and by CLI argument parsing functions 91 91 // mp3 settings 92 void setMp3LamePath(const std::string&); 92 93 void setMp3CompressionType(const std::string&); 93 94 void setMp3MpegQuality(const std::string&); 94 95 void setMp3ABRBitrate(const std::string&); -
scummvm/tools/trunk/gui/pages.cpp
833 833 834 834 wxWindow *ChooseAudioOptionsMp3Page::CreatePanel(wxWindow *parent) { 835 835 wxWindow *panel = WizardPage::CreatePanel(parent); 836 837 wxSizer *sizer = new wxBoxSizer(wxVERTICAL); 838 839 // Add a ScrolledWindow in that panel as there is a lot of options 840 // and there might not be enough place to display them all. 841 wxScrolledWindow *scroll = new wxScrolledWindow(panel); 842 scroll->SetScrollbars(10, 10, 60, 40); 843 844 sizer->Add(scroll, 1, wxEXPAND | wxALL); 836 845 837 838 846 /* 839 847 "\nMP3 mode params:\n" 848 " -lame-path <path> Path to the lame excutable to use (default: lame)\n" 840 849 " -b <rate> <rate> is the target bitrate(ABR)/minimal bitrate(VBR) (default:" minBitrDef_str "%d)\n" 841 850 " -B <rate> <rate> is the maximum VBR/ABR bitrate (default:%" maxBitrDef_str ")\n" 842 851 " --vbr LAME uses the VBR mode (default)\n" … … 846 855 " --silent the output of LAME is hidden (default:disabled)\n" 847 856 */ 848 857 849 wxFlexGridSizer *sizer = new wxFlexGridSizer(6, 2, 10, 25); 850 sizer->AddGrowableCol(1); 858 // Grid 859 wxFlexGridSizer *gridSizer = new wxFlexGridSizer(7, 2, 10, 25); 860 gridSizer->AddGrowableCol(1); 851 861 862 // Create output selection 863 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Lame executable:"))); 852 864 865 wxFilePickerCtrl *lamePicker = new wxFilePickerCtrl( 866 scroll, wxID_ANY, _configuration.outputPath, wxT("Select lame executable"), 867 wxT("lame"), 868 wxDefaultPosition, wxSize(250, -1), 869 wxFLP_USE_TEXTCTRL | wxFLP_FILE_MUST_EXIST | wxFLP_OPEN, wxDefaultValidator, 870 wxT("LamePath") 871 ); 872 873 gridSizer->Add(lamePicker, wxSizerFlags().Expand()); 874 853 875 // Type of compression 854 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Compression Type:")));876 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Compression Type:"))); 855 877 856 wxRadioButton *abrButton = new wxRadioButton( panel, wxID_ANY, wxT("ABR"),878 wxRadioButton *abrButton = new wxRadioButton(scroll, wxID_ANY, wxT("ABR"), 857 879 wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("ABR")); 858 880 859 881 wxSizer *radioSizer = new wxBoxSizer(wxHORIZONTAL); 860 882 radioSizer->Add(abrButton); 861 883 862 wxRadioButton *vbrButton = new wxRadioButton( panel, wxID_ANY, wxT("VBR"),884 wxRadioButton *vbrButton = new wxRadioButton(scroll, wxID_ANY, wxT("VBR"), 863 885 wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("VBR")); 864 886 radioSizer->Add(vbrButton); 865 887 866 sizer->Add(radioSizer, wxSizerFlags().Expand());888 gridSizer->Add(radioSizer, wxSizerFlags().Expand()); 867 889 868 890 // Bitrates 869 891 const int possibleBitrateCount = 160 / 8; … … 872 894 possibleBitrates[i] << (i+1)*8; 873 895 } 874 896 875 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Minimum Bitrate:")));897 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Minimum Bitrate:"))); 876 898 877 899 wxChoice *vbrMinBitrate = new wxChoice( 878 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,900 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 879 901 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("MinimumBitrate")); 880 sizer->Add(vbrMinBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));902 gridSizer->Add(vbrMinBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 881 903 882 904 883 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Maximum Bitrate:")));905 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Maximum Bitrate:"))); 884 906 885 907 wxChoice *vbrMaxBitrate = new wxChoice( 886 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,908 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 887 909 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("MaximumBitrate")); 888 sizer->Add(vbrMaxBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));910 gridSizer->Add(vbrMaxBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 889 911 890 912 891 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Average Bitrate:")));913 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Average Bitrate:"))); 892 914 893 915 wxChoice *abrAvgBitrate = new wxChoice( 894 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,916 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 895 917 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("AverageBitrate")); 896 sizer->Add(abrAvgBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));918 gridSizer->Add(abrAvgBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 897 919 898 920 abrButton->Connect(wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler(ChooseAudioOptionsMp3Page::onChangeCompressionType), NULL, this); 899 921 vbrButton->Connect(wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler(ChooseAudioOptionsMp3Page::onChangeCompressionType), NULL, this); … … 905 927 possibleQualities[i] << i; 906 928 } 907 929 908 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("VBR Quality:")));930 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("VBR Quality:"))); 909 931 910 932 wxChoice *vbrQuality = new wxChoice( 911 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,933 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 912 934 possibleQualityCount, possibleQualities, 0, wxDefaultValidator, wxT("VBRQuality")); 913 sizer->Add(vbrQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100));935 gridSizer->Add(vbrQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 914 936 915 937 916 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("MPEG Quality:")));938 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("MPEG Quality:"))); 917 939 918 940 wxChoice *mpegQuality = new wxChoice( 919 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,941 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 920 942 possibleQualityCount, possibleQualities, 0, wxDefaultValidator, wxT("MpegQuality")); 921 sizer->Add(mpegQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100));943 gridSizer->Add(mpegQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 922 944 923 945 // Finish the window 946 scroll->SetSizer(gridSizer); 924 947 SetAlignedSizer(panel, sizer); 925 948 926 949 927 950 // Load settings 951 lamePicker->SetPath(_configuration.mp3LamePath); 928 952 if (_configuration.mp3CompressionType == wxT("ABR")) 929 953 abrButton->SetValue(true); 930 954 else … … 941 965 } 942 966 943 967 void ChooseAudioOptionsMp3Page::save(wxWindow *panel) { 968 wxFilePickerCtrl *lamePath = static_cast<wxFilePickerCtrl *>(panel->FindWindowByName(wxT("LamePath"))); 969 944 970 wxRadioButton *abr = static_cast<wxRadioButton *>(panel->FindWindowByName(wxT("ABR"))); 945 971 // wxRadioButton *vbr = static_cast<wxRadioButton *>(panel->FindWindowByName(wxT("VBR"))); 946 972 … … 950 976 wxChoice *vbrQuality = static_cast<wxChoice *>(panel->FindWindowByName(wxT("VBRQuality"))); 951 977 wxChoice *mpegQuality = static_cast<wxChoice *>(panel->FindWindowByName(wxT("MpegQuality"))); 952 978 979 _configuration.mp3LamePath = lamePath->GetPath(); 953 980 _configuration.mp3VBRMinBitrate = vbrMinBitrate->GetStringSelection(); 954 981 _configuration.mp3VBRMaxBitrate = vbrMaxBitrate->GetStringSelection(); 955 982 _configuration.mp3ABRBitrate = abrAvgBitrate->GetStringSelection(); -
scummvm/tools/trunk/gui/gui_tools.cpp
146 146 compression->_format = conf.selectedAudioFormat; 147 147 148 148 // mp3 149 compression->setMp3LamePath ( (const char *)conf.mp3LamePath.mb_str() ); 149 150 compression->setMp3CompressionType( (const char *)conf.mp3CompressionType.mb_str() ); 150 151 compression->setMp3MpegQuality ( (const char *)conf.mp3MpegQuality.mb_str() ); 151 152 compression->setMp3ABRBitrate ( (const char *)conf.mp3ABRBitrate.mb_str() ); -
scummvm/tools/trunk/gui/configuration.cpp
37 37 advancedAudioSettings = false; 38 38 39 39 // mp3 params 40 mp3LamePath = wxT("lame"); 40 41 mp3CompressionType = wxT("VBR"); 41 42 mp3MpegQuality = wxT("2"); 42 43 … … 67 68 filecnf->Read(wxT("outputpath"), &outputPath); 68 69 69 70 // mp3 params 71 filecnf->Read(wxT("mp3LamePath"), &mp3LamePath, mp3LamePath); 70 72 filecnf->Read(wxT("mp3CompressionType"), &mp3CompressionType, mp3CompressionType); 71 73 filecnf->Read(wxT("mp3MpegQuality"), &mp3MpegQuality, mp3MpegQuality); 72 74 filecnf->Read(wxT("mp3ABRBitrate"), &mp3ABRBitrate, mp3ABRBitrate); … … 92 94 93 95 wxFileName op(outputPath); 94 96 filecnf->Write(wxT("outputpath"), op.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR)); 97 filecnf->Write(wxT("mp3LamePath"), mp3LamePath); 95 98 96 99 if (all) { 97 100 // mp3 params -
scummvm/tools/trunk/gui/configuration.h
84 84 bool advancedAudioSettings; 85 85 86 86 // mp3 settings 87 wxString mp3LamePath; 87 88 wxString mp3CompressionType; 88 89 wxString mp3MpegQuality; 89 90 wxString mp3ABRBitrate; -
scummvm/tools/trunk/compress.cpp
49 49 uint32 algqual; 50 50 uint32 vbrqual; 51 51 bool silent; 52 std::string lamePath; 52 53 }; 53 54 54 55 struct oggencparams { … … 71 72 uint8 bitsPerSample; 72 73 }; 73 74 74 lameparams encparms = { minBitrDef, maxBitrDef, false, algqualDef, vbrqualDef, 0 };75 lameparams encparms = { minBitrDef, maxBitrDef, false, algqualDef, vbrqualDef, 0, "lame" }; 75 76 oggencparams oggparms = { -1, -1, -1, (float)oggqualDef, 0 }; 76 77 flaccparams flacparms = { flacCompressDef, flacBlocksizeDef, false, false }; 77 78 rawtype rawAudioType = { false, false, 8 }; … … 124 125 char *tmp = fbuf; 125 126 126 127 if (compmode == AUDIO_MP3) { 127 tmp += sprintf(tmp, " lame -t ");128 tmp += sprintf(tmp, "%s -t ", encparms.lamePath.c_str()); 128 129 if (rawInput) { 129 130 tmp += sprintf(tmp, "-r "); 130 131 tmp += sprintf(tmp, "--bitwidth %d ", rawAudioType.bitsPerSample); … … 774 775 } 775 776 776 777 // mp3 settings 778 void CompressionTool::setMp3LamePath(const std::string& arg) { 779 encparms.lamePath = arg; 780 } 781 777 782 void CompressionTool::setMp3CompressionType(const std::string& arg) { 778 783 encparms.abr = (arg == "ABR"); 779 784 } … … 899 904 encparms.abr = 0; 900 905 } else if (arg == "--abr") { 901 906 encparms.abr = 1; 907 } else if (arg == "-lame-path") { 908 if (_arguments.empty()) 909 throw ToolException("Could not parse command line options, expected value after -lame-path"); 910 setMp3LamePath(_arguments.front()); 911 _arguments.pop_front(); 902 912 903 913 } else if (arg == "-b") { 904 914 if (_arguments.empty()) … … 1103 1113 1104 1114 if (_supportedFormats & AUDIO_MP3) { 1105 1115 os << "\nMP3 mode params:\n"; 1116 os << " -lame-path <path> Path to the lame excutable to use (default: lame)\n"; 1106 1117 os << " -b <rate> <rate> is the target bitrate(ABR)/minimal bitrate(VBR) (default:" << minBitrDef << "%d)\n"; 1107 1118 os << " -B <rate> <rate> is the maximum VBR/ABR bitrate (default:%" << maxBitrDef << ")\n"; 1108 1119 os << " --vbr LAME uses the VBR mode (default)\n";