Ticket #9155: tools_gui_audio_options.patch
File tools_gui_audio_options.patch, 13.4 KB (added by , 14 years ago) |
---|
-
scummvm/tools/trunk/compress.h
87 87 AudioFormat _format; 88 88 89 89 // Settings 90 // These functions are used by the GUI Tools and by CLI argument parsing functions 90 91 // mp3 settings 91 std::string _mp3CompressionType;92 std::string _mp3MpegQuality;93 std::string _mp3ABRBitrate;94 std::string _mp3VBRMinBitrate;95 std::string _mp3VBRMaxBitrate;96 std::string _mp3VBRQuality;92 void setMp3CompressionType(const std::string&); 93 void setMp3MpegQuality(const std::string&); 94 void setMp3ABRBitrate(const std::string&); 95 void setMp3VBRMinBitrate(const std::string&); 96 void setMp3VBRMaxBitrate(const std::string&); 97 void setMp3VBRQuality(const std::string&); 97 98 98 99 // flac 99 std::string _flacCompressionLevel;100 std::string _flacBlockSize;100 void setFlacCompressionLevel(const std::string&); 101 void setFlacBlockSize(const std::string&); 101 102 102 103 // vorbis 103 std::string _oggQuality;104 std::string _oggMinBitrate;105 std::string _oggAvgBitrate;106 std::string _oggMaxBitrate;104 void setOggQuality(const std::string&); 105 void setOggMinBitrate(const std::string&); 106 void setOggAvgBitrate(const std::string&); 107 void setOggMaxBitrate(const std::string&); 107 108 108 109 public: 109 110 bool processMp3Parms(); -
scummvm/tools/trunk/gui/gui_tools.cpp
146 146 compression->_format = conf.selectedAudioFormat; 147 147 148 148 // mp3 149 compression->_mp3ABRBitrate = (const char *)conf.mp3ABRBitrate.mb_str(); 150 compression->_mp3CompressionType = (const char *)conf.mp3CompressionType.mb_str(); 151 compression->_mp3MpegQuality = (const char *)conf.mp3MpegQuality.mb_str(); 152 compression->_mp3ABRBitrate = (const char *)conf.mp3ABRBitrate.mb_str(); 153 compression->_mp3VBRMinBitrate = (const char *)conf.mp3VBRMinBitrate.mb_str(); 154 compression->_mp3VBRMaxBitrate = (const char *)conf.mp3VBRMaxBitrate.mb_str(); 155 compression->_mp3VBRQuality = (const char *)conf.mp3VBRQuality.mb_str(); 149 compression->setMp3CompressionType( (const char *)conf.mp3CompressionType.mb_str() ); 150 compression->setMp3MpegQuality ( (const char *)conf.mp3MpegQuality.mb_str() ); 151 compression->setMp3ABRBitrate ( (const char *)conf.mp3ABRBitrate.mb_str() ); 152 compression->setMp3VBRMinBitrate ( (const char *)conf.mp3VBRMinBitrate.mb_str() ); 153 compression->setMp3VBRMaxBitrate ( (const char *)conf.mp3VBRMaxBitrate.mb_str() ); 154 compression->setMp3VBRQuality ( (const char *)conf.mp3VBRQuality.mb_str() ); 156 155 157 156 // flac 158 compression-> _flacCompressionLevel = (const char *)conf.flacCompressionLevel.mb_str();159 compression-> _flacBlockSize = (const char *)conf.flacBlockSize.mb_str();157 compression->setFlacCompressionLevel( (const char *)conf.flacCompressionLevel.mb_str() ); 158 compression->setFlacBlockSize ( (const char *)conf.flacBlockSize.mb_str() ); 160 159 161 160 // vorbis 162 compression-> _oggQuality = (const char *)conf.oggQuality.mb_str();163 compression-> _oggMinBitrate = (const char *)conf.oggMinBitrate.mb_str();164 compression-> _oggAvgBitrate = (const char *)conf.oggAvgBitrate.mb_str();165 compression-> _oggMaxBitrate = (const char *)conf.oggMaxBitrate.mb_str();161 compression->setOggQuality ( (const char *)conf.oggQuality.mb_str() ); 162 compression->setOggMinBitrate ( (const char *)conf.oggMinBitrate.mb_str() ); 163 compression->setOggAvgBitrate ( (const char *)conf.oggAvgBitrate.mb_str() ); 164 compression->setOggMaxBitrate ( (const char *)conf.oggMaxBitrate.mb_str() ); 166 165 } 167 166 168 167 _backend->run(); -
scummvm/tools/trunk/compress.cpp
772 772 encodeAudio(outName, true, real_samplerate, tempEncoded, compMode); 773 773 } 774 774 775 // mp3 settings 776 void CompressionTool::setMp3CompressionType(const std::string& arg) { 777 encparms.abr = (arg == "ABR"); 778 } 779 780 void CompressionTool::setMp3MpegQuality(const std::string& arg) { 781 encparms.algqual = atoi(arg.c_str()); 782 783 if (encparms.algqual == 0 && arg != "0") 784 throw ToolException("Quality (-q) must be a number."); 785 786 if (encparms.algqual > 9) 787 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 788 } 789 790 void CompressionTool::setMp3ABRBitrate(const std::string& arg) { 791 setMp3VBRMinBitrate(arg); 792 } 793 794 void CompressionTool::setMp3VBRMinBitrate(const std::string& arg) { 795 encparms.minBitr = atoi(arg.c_str()); 796 797 if (encparms.minBitr == 0 && arg != "0") 798 throw ToolException("Minimum bitrate (-b) must be a number."); 799 800 if (encparms.minBitr < 8 || encparms.minBitr > 160) 801 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 802 } 803 804 void CompressionTool::setMp3VBRMaxBitrate(const std::string& arg) { 805 encparms.maxBitr = atoi(arg.c_str()); 806 807 if (encparms.maxBitr == 0 && arg != "0") 808 throw ToolException("Maximum bitrate (-B) must be a number."); 809 810 if ((encparms.maxBitr % 8) != 0) 811 encparms.maxBitr -= encparms.maxBitr % 8; 812 813 if (encparms.maxBitr < 8 || encparms.maxBitr > 160) 814 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 815 } 816 817 void CompressionTool::setMp3VBRQuality(const std::string& arg) { 818 encparms.vbrqual = atoi(arg.c_str()); 819 if (encparms.vbrqual > 9) 820 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 821 } 822 823 // flac 824 void CompressionTool::setFlacCompressionLevel(const std::string& arg) { 825 flacparms.compressionLevel = atoi(arg.c_str()); 826 827 if (flacparms.compressionLevel == 0 && arg != "0") 828 throw ToolException("FLAC compression level must be a number."); 829 830 if (flacparms.compressionLevel < 0 || flacparms.compressionLevel > 8) 831 throw ToolException("FLAC compression level ot of bounds, must be between 0 and 8."); 832 833 } 834 835 void CompressionTool::setFlacBlockSize(const std::string& arg) { 836 flacparms.blocksize = atoi(arg.c_str()); 837 838 if (flacparms.blocksize == 0 && arg != "0") 839 throw ToolException("FLAC block size (-b) must be a number."); 840 } 841 842 // vorbis 843 void CompressionTool::setOggQuality(const std::string& arg) { 844 oggparms.quality = (float)atoi(arg.c_str()); 845 846 if (oggparms.quality == 0. && arg != "0") 847 throw ToolException("Quality (-q) must be a number."); 848 849 if (oggparms.quality < 0. || oggparms.quality > 10.) 850 throw ToolException("Quality out of bounds (-q), must be between 0 and 10."); 851 } 852 853 void CompressionTool::setOggMinBitrate(const std::string& arg) { 854 oggparms.minBitr = atoi(arg.c_str()); 855 856 if (oggparms.minBitr == 0 && arg != "0") 857 throw ToolException("Minimum bitrate (-m) must be a number."); 858 859 if ((oggparms.minBitr % 8) != 0) 860 oggparms.minBitr -= oggparms.minBitr % 8; 861 862 if (oggparms.minBitr < 8 || oggparms.minBitr > 160) 863 throw ToolException("Minimum bitrate out of bounds (-m), must be between 8 and 160."); 864 } 865 866 void CompressionTool::setOggAvgBitrate(const std::string& arg) { 867 oggparms.nominalBitr = atoi(arg.c_str()); 868 869 if (oggparms.nominalBitr == 0 && arg != "0") 870 throw ToolException("Nominal bitrate (-b) must be a number."); 871 872 if ((oggparms.nominalBitr % 8) != 0) 873 oggparms.nominalBitr -= oggparms.nominalBitr % 8; 874 875 if (oggparms.nominalBitr < 8 || oggparms.nominalBitr > 160) 876 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 877 } 878 879 void CompressionTool::setOggMaxBitrate(const std::string& arg) { 880 oggparms.maxBitr = atoi(arg.c_str()); 881 882 if (oggparms.maxBitr == 0 && arg != "0") 883 throw ToolException("Maximum bitrate (-M) must be a number."); 884 885 if ((oggparms.maxBitr % 8) != 0) 886 oggparms.maxBitr -= oggparms.maxBitr % 8; 887 888 if (oggparms.maxBitr < 8 || oggparms.maxBitr > 160) 889 throw ToolException("Maximum bitrate out of bounds (-M), must be between 8 and 160."); 890 } 891 775 892 bool CompressionTool::processMp3Parms() { 776 893 while (!_arguments.empty()) { 777 894 std::string arg = _arguments.front(); … … 781 898 encparms.abr = 0; 782 899 } else if (arg == "--abr") { 783 900 encparms.abr = 1; 901 784 902 } else if (arg == "-b") { 785 903 if (_arguments.empty()) 786 904 throw ToolException("Could not parse command line options, expected value after -b"); 787 encparms.minBitr = atoi(_arguments.front().c_str()); 788 789 if (encparms.minBitr > 160) 790 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 791 792 if (encparms.minBitr == 0 && _arguments.front() != "0") 793 throw ToolException("Minimum bitrate (-b) must be a number."); 794 795 if (encparms.minBitr < 8) 796 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 797 905 setMp3VBRMinBitrate(_arguments.front()); 798 906 _arguments.pop_front(); 799 907 800 908 } else if (arg == "-B") { 801 909 if (_arguments.empty()) 802 910 throw ToolException("Could not parse command line options, expected value after -B"); 803 encparms.maxBitr = atoi(_arguments.front().c_str()); 804 805 if ((encparms.maxBitr % 8) != 0) { 806 encparms.maxBitr -= encparms.maxBitr % 8; 807 } 808 809 if (encparms.maxBitr > 160) 810 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 811 812 if (encparms.maxBitr == 0 && _arguments.front() != "0") 813 throw ToolException("Maximum bitrate (-B) must be a number."); 814 815 if (encparms.maxBitr < 8) 816 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 817 911 setMp3VBRMaxBitrate(_arguments.front()); 818 912 _arguments.pop_front(); 819 913 820 914 } else if (arg == "-V") { 821 915 if (_arguments.empty()) 822 916 throw ToolException("Could not parse command line options, expected value after -V"); 823 encparms.vbrqual = atoi(_arguments.front().c_str()); 824 825 if (encparms.vbrqual > 9) 826 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 827 917 setMp3VBRQuality(_arguments.front()); 828 918 _arguments.pop_front(); 829 919 830 920 } else if (arg == "-q") { 831 921 if (_arguments.empty()) 832 922 throw ToolException("Could not parse command line options, expected value after -q"); 833 encparms.algqual = atoi(_arguments.front().c_str()); 834 835 if (encparms.algqual > 9) 836 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 837 923 setMp3MpegQuality(_arguments.front()); 838 924 _arguments.pop_front(); 839 925 840 926 } else if (arg == "--silent") { … … 856 942 if (arg == "-b") { 857 943 if (_arguments.empty()) 858 944 throw ToolException("Could not parse command line options, expected value after -b"); 859 oggparms.nominalBitr = atoi(_arguments.front().c_str()); 860 861 if ((oggparms.nominalBitr % 8) != 0) 862 oggparms.nominalBitr -= oggparms.nominalBitr % 8; 863 864 if (oggparms.nominalBitr > 160) 865 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 866 867 if (oggparms.nominalBitr == 0 && _arguments.front() != "0") 868 throw ToolException("Nominal bitrate (-b) must be a number."); 869 870 if (oggparms.nominalBitr < 8) 871 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 872 945 setOggAvgBitrate(_arguments.front()); 873 946 _arguments.pop_front(); 874 947 875 948 } else if (arg == "-m") { 876 949 if (_arguments.empty()) 877 950 throw ToolException("Could not parse command line options, expected value after -m"); 878 oggparms.minBitr = atoi(_arguments.front().c_str()); 879 880 if ((oggparms.minBitr % 8) != 0) 881 oggparms.minBitr -= oggparms.minBitr % 8; 882 883 if (oggparms.minBitr > 160) 884 throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160."); 885 886 if (oggparms.minBitr == 0 && _arguments.front() != "0") 887 throw ToolException("Minimal bitrate (-m) must be a number."); 888 889 if (oggparms.minBitr < 8) 890 throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160."); 891 951 setOggMinBitrate(_arguments.front()); 892 952 _arguments.pop_front(); 893 953 894 954 } else if (arg == "-M") { 895 955 if (_arguments.empty()) 896 956 throw ToolException("Could not parse command line options, expected value after -M"); 897 oggparms.maxBitr = atoi(_arguments.front().c_str()); 898 899 if ((oggparms.maxBitr % 8) != 0) 900 oggparms.maxBitr -= oggparms.maxBitr % 8; 901 902 if (oggparms.maxBitr > 160) 903 throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160."); 904 905 if (oggparms.maxBitr == 0 && _arguments.front() != "0") 906 throw ToolException("Minimal bitrate (-M) must be a number."); 907 908 if (oggparms.maxBitr < 8) 909 throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160."); 910 957 setOggMaxBitrate(_arguments.front()); 911 958 _arguments.pop_front(); 912 959 913 960 } else if (arg == "-q") { 914 oggparms.quality = (float)atoi(_arguments.front().c_str()); 915 916 if (oggparms.quality == 0 && _arguments.front() != "0") 917 throw ToolException("Quality (-q) must be a number."); 918 961 if (_arguments.empty()) 962 throw ToolException("Could not parse command line options, expected value after -q"); 963 setOggQuality(_arguments.front()); 919 964 _arguments.pop_front(); 920 965 921 966 } else if (arg == "--silent") { … … 937 982 if (arg == "-b") { 938 983 if (_arguments.empty()) 939 984 throw ToolException("Could not parse command line options, expected value after -b"); 940 flacparms.blocksize = atoi(_arguments.front().c_str());985 setFlacBlockSize(_arguments.front()); 941 986 _arguments.pop_front(); 942 987 } else if (arg == "--fast") { 943 988 flacparms.compressionLevel = 0;