From 038b11273a956fd19bbd93b5297283305fa6d1b9 Mon Sep 17 00:00:00 2001 From: Wesnydy Ribeiro Date: Fri, 4 Sep 2015 08:46:24 -0300 Subject: [PATCH] Atualização e correção de bugs --- main.cpp | 34 +++++++++++++++++++++++++++++++--- servico/src/serviceWindowGenerationFromRec.cpp | 15 +++++++++++++-- servico/src/serviceWindowGenerationFromSRT.cpp | 15 +++++++++++++-- servico/src/serviceWindowGenerationFromText.cpp | 9 ++++++++- util/src/argParser.cpp | 50 +++++++++++++++++--------------------------------- util/src/include/argParser.h | 4 +--- 6 files changed, 83 insertions(+), 44 deletions(-) diff --git a/main.cpp b/main.cpp index 8be12e0..d54ca13 100644 --- a/main.cpp +++ b/main.cpp @@ -39,6 +39,7 @@ void serviceText(string path_text, int language, int background, string id, int void serviceRECWithoutMixing(int service, string path_video, int background, string id, int mode); void serviceTest(int position, int size, int background); +void help(); void hasFailed(); void hasInvalid(); void fail(string msg); @@ -73,7 +74,6 @@ int main(int argc, char* argv[]) { try{ parser->readArgs(argv, argc); }catch(lavidlib::RuntimeException &ex){ - PRINTL(util::_ERROR, "%s\n", ex.getMessage().c_str()); exit(1); } @@ -145,15 +145,19 @@ int main(int argc, char* argv[]) { serviceREC(service, input, 0, 0, background, id, mode);//como service != 2 então não há mixagem break; - case 7: + case 7: // serviço de teste position = parser->getPosition(); size = parser->getSize(); background = parser->getBackground(); serviceTest(position, size, background); break; + case 8: //ajuda + help(); + break; + default: - PRINTL(util::_INFO, "Opção de serviço não reconhecida!\n"); + PRINTL(util::_ERROR, "Opção de serviço não reconhecida!\n"); hasInvalid(); } @@ -326,4 +330,28 @@ void setPathContents(int mode, string id){ exit(127); } system(command.c_str()); +} + +void help() +{ + std::cout << std::endl + << "Usage Summary: vlibras [Service_option] filepath [Options] --id [name] --mode [devel,prod]" + << "\n\nService_option:" + << "\n\tVideo with Subtitles -V, --video [filePath] -S, --subtitle [filePath]" + << "\n\tVideo Recognize -V, --video [filePath]" + << "\n\tAudio Recognize -A, --audio [filepath]" + << "\n\tText -T, --text [filePath]" + << "\n\tSubtitles only -S, --subtitle [filePath]" + << "\n\nOptions:" + << "\n\t-l, --language [portugues,libras]" + << "\n\t-b, --background [opaque,transp]" + << "\n\t-r, --resolution [small,medium,large]" + << "\n\t-p, --position [top_left,top_right,bottom_left,bottom_right]" + << "\n\t-m, --mode [devel,prod]" + << "\n\t-v, --loglevel [quiet,error,warning,info,debug]" + << "\n\t--id [name] Relative to the unique ID on the Database." + << "\n\t--no-mixer Disables mixing with the original video." + << "\n\nSee man vlibras for detailed descriptions." + << std::endl; + exit(0); } \ No newline at end of file diff --git a/servico/src/serviceWindowGenerationFromRec.cpp b/servico/src/serviceWindowGenerationFromRec.cpp index 6cb1d28..cd9d92e 100644 --- a/servico/src/serviceWindowGenerationFromRec.cpp +++ b/servico/src/serviceWindowGenerationFromRec.cpp @@ -58,8 +58,19 @@ void ServiceWindowGenerationFromRec::setPathContents(){ switch(exec_mode) { case DEVELOPER: { - this->path_contents = (char*) PATH_DEVEL_CONTENTS; - this->path_uploads = (char*) PATH_DEVEL_UPLOADS; + char* vStorage; + char* vUploads; + vStorage = getenv("VLSTORAGE"); + vUploads = getenv("VLUPLOADS"); + + if(vStorage != NULL && vUploads != NULL){ + this->path_contents = vStorage; + this->path_uploads = vUploads; + PRINTL(util::_DEBUG, "Paths definidos pelo desenvolvedor:\n %s\n%s", path_contents, path_uploads); + }else{ + this->path_contents = (char*) PATH_DEVEL_CONTENTS; + this->path_uploads = (char*) PATH_DEVEL_UPLOADS; + } rec->setPathAudioContents(path_uploads); }break; diff --git a/servico/src/serviceWindowGenerationFromSRT.cpp b/servico/src/serviceWindowGenerationFromSRT.cpp index 39dc151..f32ccc3 100644 --- a/servico/src/serviceWindowGenerationFromSRT.cpp +++ b/servico/src/serviceWindowGenerationFromSRT.cpp @@ -61,8 +61,19 @@ void ServiceWindowGenerationFromSRT::setPathContents() { switch(exec_mode) { case DEVELOPER: { - this->path_contents = (char*) PATH_DEVEL_CONTENTS; - this->path_uploads = (char*) PATH_DEVEL_UPLOADS; + char* vStorage; + char* vUploads; + vStorage = getenv("VLSTORAGE"); + vUploads = getenv("VLUPLOADS"); + + if(vStorage != NULL && vUploads != NULL){ + this->path_contents = vStorage; + this->path_uploads = vUploads; + PRINTL(util::_DEBUG, "Paths definidos pelo desenvolvedor:\n %s\n%s", path_contents, path_uploads); + }else{ + this->path_contents = (char*) PATH_DEVEL_CONTENTS; + this->path_uploads = (char*) PATH_DEVEL_UPLOADS; + } }break; case PRODUCTION: diff --git a/servico/src/serviceWindowGenerationFromText.cpp b/servico/src/serviceWindowGenerationFromText.cpp index 0638f36..62394ae 100644 --- a/servico/src/serviceWindowGenerationFromText.cpp +++ b/servico/src/serviceWindowGenerationFromText.cpp @@ -33,7 +33,14 @@ void ServiceWindowGenerationFromText::setPathContents() { switch(exec_mode) { case DEVELOPER: { - this->path_contents = (char*) PATH_DEVEL_CONTENTS; + char* vStorage; + vStorage = getenv("VLSTORAGE"); + if(vStorage != NULL){ + this->path_contents = vStorage; + PRINTL(util::_DEBUG, "Path definido pelo desenvolvedor:\n%s", path_contents); + }else{ + this->path_contents = (char*) PATH_DEVEL_CONTENTS; + } }break; case PRODUCTION: diff --git a/util/src/argParser.cpp b/util/src/argParser.cpp index e9e142c..678243a 100644 --- a/util/src/argParser.cpp +++ b/util/src/argParser.cpp @@ -32,16 +32,20 @@ void ArgParser::readArgs(char** argv, int argc) switch (opt) { case 'A': - if(argc < 9) - throw lavidlib::RuntimeException("Insuficient arguments. Try again"); + if(argc < 9){ + printf("Insuficient arguments. Try again\n"); + throw lavidlib::RuntimeException(); + } globalArgs.service = _REC_AUDIO; globalArgs.input = optarg; break; case 'S': - if(argc < 11 || (globalArgs.service == _REC_VIDEO && argc < 17)) - throw lavidlib::RuntimeException("Insuficient arguments. Try again"); + if(argc < 11 || (globalArgs.service == _REC_VIDEO && argc < 17)){ + printf("Insuficient arguments. Try again\n"); + throw lavidlib::RuntimeException(); + } if(globalArgs.service == _REC_VIDEO){ // ativa o serviço de vídeo e legendas globalArgs.service = _VIDEO_WITH_SRT; @@ -53,16 +57,20 @@ void ArgParser::readArgs(char** argv, int argc) break; case 'T': - if(argc < 11) - throw lavidlib::RuntimeException("Insuficient arguments. Try again"); + if(argc < 11){ + printf("Insuficient arguments. Try again\n"); + throw lavidlib::RuntimeException(); + } globalArgs.service = _TEXT; globalArgs.input = optarg; break; case 'V': - if(argc < 13 || ((globalArgs.service == _ONLY_SRT && argc < 17))) - throw lavidlib::RuntimeException("Insuficient arguments. Try again"); + if(argc < 13 || ((globalArgs.service == _ONLY_SRT && argc < 17))){ + printf("Insuficient arguments. Try again\n"); + throw lavidlib::RuntimeException(); + } if(globalArgs.service == _ONLY_SRT){ // ativa o serviço de vídeo e legendas globalArgs.service = _VIDEO_WITH_SRT; @@ -114,7 +122,7 @@ void ArgParser::readArgs(char** argv, int argc) break; case 'h': - help(); + globalArgs.service = _HELP; break; case '?': /* o getopt já mostra o erro no terminal!*/ @@ -140,30 +148,6 @@ void ArgParser::readArgs(char** argv, int argc) } } -void ArgParser::help() -{ - std::cout << std::endl - << "Usage Summary: vlibras [Service_option] filepath [Options] --id [name] --mode [devel,prod]" - << "\n\nService_option:" - << "\n\tVideo with Subtitles -V, --video [filePath] -S, --subtitle [filePath]" - << "\n\tVideo Recognize -V, --video [filePath]" - << "\n\tAudio Recognize -A, --audio [filepath]" - << "\n\tText -T, --text [filePath]" - << "\n\tSubtitles only -S, --subtitle [filePath]" - << "\n\nOptions:" - << "\n\t-l, --language [portugues,libras]" - << "\n\t-b, --background [opaque,transp]" - << "\n\t-r, --resolution [small,medium,large]" - << "\n\t-p, --position [top_left,top_right,bottom_left,bottom_right]" - << "\n\t-m, --mode [devel,prod]" - << "\n\t-v, --loglevel [quiet,error,warning,info,debug]" - << "\n\t--id [name] Relative to the unique ID on the Database." - << "\n\t--no-mixer Disables mixing with the original video." - << "\n\nSee man vlibras for detailed descriptions." - << std::endl; - throw lavidlib::RuntimeException(); //para nao iniciar o vlibras -} - util::logLevel ArgParser::logFromString(const string& level) { if(level == "quiet") diff --git a/util/src/include/argParser.h b/util/src/include/argParser.h index 344914d..d735278 100644 --- a/util/src/include/argParser.h +++ b/util/src/include/argParser.h @@ -34,7 +34,7 @@ public: util::logLevel getLog(); private: - enum Services { _VIDEO_WITH_SRT = 1, _REC_VIDEO, _TEXT, _ONLY_SRT, _REC_AUDIO, _WITHOUT_MIXER, _TESTER }; + enum Services { _VIDEO_WITH_SRT = 1, _REC_VIDEO, _TEXT, _ONLY_SRT, _REC_AUDIO, _WITHOUT_MIXER, _TESTER , _HELP}; enum Languages { _PORTUGUESE = 1, _GLOSA }; enum Positions { _TOP_LEFT = 1, _TOP_RIGHT, _BOTTOM_RIGHT, _BOTTOM_LEFT }; enum Resolution { _SMALL = 1, _MEDIUM, _LARGE }; @@ -56,8 +56,6 @@ private: util::logLevel l_level; }globalArgs; - void help(); - void loadDefaults(); void returnErr(const string& option); Languages languageFromString(const string& language); Positions positionFromString(const string& position); -- libgit2 0.21.2