Ticket #9155: tools_gui_audio_options.patch

File tools_gui_audio_options.patch, 13.4 KB (added by criezy, 10 years ago)
  • scummvm/tools/trunk/compress.h

     
    8787        AudioFormat _format;
    8888
    8989        // Settings
     90        // These functions are used by the GUI Tools and by CLI argument parsing functions
    9091        // 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&);
    9798
    9899        // flac
    99         std::string _flacCompressionLevel;
    100         std::string _flacBlockSize;
     100        void setFlacCompressionLevel(const std::string&);
     101        void setFlacBlockSize(const std::string&);
    101102
    102103        // 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&);
    107108
    108109public:
    109110        bool processMp3Parms();
  • scummvm/tools/trunk/gui/gui_tools.cpp

     
    146146                compression->_format               = conf.selectedAudioFormat;
    147147
    148148                // 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()      );
    156155
    157156                // 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()        );
    160159
    161160                // 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() );
    166165        }
    167166
    168167        _backend->run();
  • scummvm/tools/trunk/compress.cpp

     
    772772        encodeAudio(outName, true, real_samplerate, tempEncoded, compMode);
    773773}
    774774
     775// mp3 settings
     776void CompressionTool::setMp3CompressionType(const std::string& arg) {
     777        encparms.abr = (arg == "ABR");
     778}
     779
     780void 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
     790void CompressionTool::setMp3ABRBitrate(const std::string& arg) {
     791        setMp3VBRMinBitrate(arg);
     792}
     793
     794void 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
     804void 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
     817void 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
     824void 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
     835void 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
     843void 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
     853void 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
     866void 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
     879void 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
    775892bool CompressionTool::processMp3Parms() {
    776893        while (!_arguments.empty()) {
    777894                std::string arg = _arguments.front();
     
    781898                        encparms.abr = 0;
    782899                } else if (arg == "--abr") {
    783900                        encparms.abr = 1;
     901
    784902                } else if (arg == "-b") {
    785903                        if (_arguments.empty())
    786904                                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());
    798906                        _arguments.pop_front();
    799907
    800908                } else if (arg == "-B") {
    801909                        if (_arguments.empty())
    802910                                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());
    818912                        _arguments.pop_front();
    819913
    820914                } else if (arg == "-V") {
    821915                        if (_arguments.empty())
    822916                                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());
    828918                        _arguments.pop_front();
    829919
    830920                } else if (arg == "-q") {
    831921                        if (_arguments.empty())
    832922                                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());
    838924                        _arguments.pop_front();
    839925
    840926                } else if (arg == "--silent") {
     
    856942                if (arg == "-b") {
    857943                        if (_arguments.empty())
    858944                                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());
    873946                        _arguments.pop_front();
    874947
    875948                } else if (arg == "-m") {
    876949                        if (_arguments.empty())
    877950                                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());
    892952                        _arguments.pop_front();
    893953
    894954                } else if (arg == "-M") {
    895955                        if (_arguments.empty())
    896956                                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());
    911958                        _arguments.pop_front();
    912959
    913960                } 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());
    919964                        _arguments.pop_front();
    920965
    921966                } else if (arg == "--silent") {
     
    937982                if (arg == "-b") {
    938983                        if (_arguments.empty())
    939984                                throw ToolException("Could not parse command line options, expected value after -b");
    940                         flacparms.blocksize = atoi(_arguments.front().c_str());
     985                        setFlacBlockSize(_arguments.front());
    941986                        _arguments.pop_front();
    942987                } else if (arg == "--fast") {
    943988                        flacparms.compressionLevel = 0;