diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/libs/libmyth/mythcontext.cpp release.19824.0127b/mythtv/libs/libmyth/mythcontext.cpp
|
|
|
80 | 80 | QString option; |
81 | 81 | bool reverseOption; |
82 | 82 | |
| 83 | print_verbose_messages = VB_IMPORTANT | VB_GENERAL; |
| 84 | verboseString = QString(" important general"); |
| 85 | |
83 | 86 | if (arg.startsWith("-")) |
84 | 87 | { |
85 | 88 | cerr << "Invalid or missing argument to -v/--verbose option\n"; |
… |
… |
|
164 | 167 | << option << endl;; |
165 | 168 | } |
166 | 169 | } |
| 170 | VERBOSE(VB_IMPORTANT, QString("Enabled verbose msgs: %1").arg(verboseString)); |
167 | 171 | } |
168 | 172 | |
169 | 173 | return GENERIC_EXIT_OK; |
diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/programs/mythbackend/main.cpp release.19824.0127b/mythtv/programs/mythbackend/main.cpp
|
|
|
426 | 426 | bool daemonize = false; |
427 | 427 | bool printsched = false; |
428 | 428 | bool testsched = false; |
| 429 | bool setverbose = false; |
| 430 | QString newverbose = ""; |
429 | 431 | bool resched = false; |
430 | 432 | bool nosched = false; |
431 | 433 | bool noupnp = false; |
… |
… |
|
526 | 528 | return BACKEND_EXIT_INVALID_CMDLINE; |
527 | 529 | } |
528 | 530 | } |
| 531 | else if (!strcmp(a.argv()[argpos],"--setverbose")) |
| 532 | { |
| 533 | setverbose = true; |
| 534 | if (a.argc()-1 > argpos) |
| 535 | { |
| 536 | newverbose = a.argv()[argpos+1]; |
| 537 | ++argpos; |
| 538 | } |
| 539 | else |
| 540 | { |
| 541 | cerr << "Missing argument to --setverbose option\n"; |
| 542 | return BACKEND_EXIT_INVALID_CMDLINE; |
| 543 | } |
| 544 | } |
529 | 545 | else if (!strcmp(a.argv()[argpos],"--printsched")) |
530 | 546 | { |
531 | 547 | printsched = true; |
… |
… |
|
680 | 696 | "to filename" << endl << |
681 | 697 | "-d or --daemon Runs mythbackend as a daemon" << endl << |
682 | 698 | "-v or --verbose debug-level Use '-v help' for level info" << endl << |
| 699 | "--setverbose debug-level Change debug level if running backend" << endl << |
683 | 700 | "--printexpire List of auto-expire programs" << endl << |
684 | 701 | "--printsched Upcoming scheduled programs" << endl << |
685 | 702 | "--testsched Test run scheduler (ignore existing schedule)" << endl << |
… |
… |
|
766 | 783 | return BACKEND_EXIT_OK; |
767 | 784 | } |
768 | 785 | |
| 786 | if (setverbose) |
| 787 | { |
| 788 | gContext->SetBackend(false); |
| 789 | |
| 790 | if (gContext->ConnectToMasterServer()) |
| 791 | { |
| 792 | QString message = "SET_VERBOSE "; |
| 793 | message += newverbose; |
| 794 | |
| 795 | RemoteSendMessage(message); |
| 796 | VERBOSE(VB_IMPORTANT, QString("Sent %1 message").arg(message)); |
| 797 | return BACKEND_EXIT_OK; |
| 798 | } |
| 799 | else |
| 800 | { |
| 801 | VERBOSE(VB_IMPORTANT, "Unable to connect to backend, verbose level unchanged "); |
| 802 | return BACKEND_EXIT_NO_CONNECT; |
| 803 | } |
| 804 | } |
| 805 | |
769 | 806 | if (clearsettingscache) |
770 | 807 | { |
771 | 808 | if (gContext->ConnectToMasterServer()) |
diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/programs/mythbackend/mainserver.cpp release.19824.0127b/mythtv/programs/mythbackend/mainserver.cpp
|
|
|
502 | 502 | } |
503 | 503 | else if (command == "MESSAGE") |
504 | 504 | { |
| 505 | if (listline[1].left(11) == "SET_VERBOSE") |
| 506 | HandleSetVerbose(listline, pbs); |
| 507 | else |
| 508 | HandleMessage(listline, pbs); |
| 509 | } |
| 510 | else if (command == "MESSAGE") |
| 511 | { |
505 | 512 | HandleMessage(listline, pbs); |
506 | 513 | } |
507 | 514 | else if (command == "FILL_PROGRAM_INFO") |
… |
… |
|
3739 | 3746 | SendResponse(pbssock, retlist); |
3740 | 3747 | } |
3741 | 3748 | |
| 3749 | void MainServer::HandleSetVerbose(QStringList &slist, PlaybackSock *pbs) |
| 3750 | { |
| 3751 | MythSocket *pbssock = pbs->getSocket(); |
| 3752 | QStringList retlist = "OK"; |
| 3753 | |
| 3754 | // No need to dispatch this message to ourself, so handle it |
| 3755 | |
| 3756 | QString newverbose = slist[1]; |
| 3757 | int len=newverbose.length(); |
| 3758 | if (len > 12) |
| 3759 | { |
| 3760 | newverbose = newverbose.right(len-12); // Chop off "SET_VERBOSE " |
| 3761 | if (newverbose == "blank") |
| 3762 | parse_verbose_arg(""); |
| 3763 | else |
| 3764 | parse_verbose_arg(newverbose); |
| 3765 | } |
| 3766 | else |
| 3767 | { |
| 3768 | VERBOSE(VB_IMPORTANT, QString("Invalid SET_VERBOSE string: '%1'").arg(newverbose)); |
| 3769 | retlist = "Failed"; |
| 3770 | } |
| 3771 | |
| 3772 | SendResponse(pbssock, retlist); |
| 3773 | } |
| 3774 | |
3742 | 3775 | void MainServer::HandleIsRecording(QStringList &slist, PlaybackSock *pbs) |
3743 | 3776 | { |
3744 | 3777 | (void)slist; |
diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/programs/mythbackend/mainserver.h release.19824.0127b/mythtv/programs/mythbackend/mainserver.h
|
|
|
105 | 105 | void HandleGetRecorderNum(QStringList &slist, PlaybackSock *pbs); |
106 | 106 | void HandleGetRecorderFromNum(QStringList &slist, PlaybackSock *pbs); |
107 | 107 | void HandleMessage(QStringList &slist, PlaybackSock *pbs); |
| 108 | void HandleSetVerbose(QStringList &slist, PlaybackSock *pbs); |
108 | 109 | void HandleGenPreviewPixmap(QStringList &slist, PlaybackSock *pbs); |
109 | 110 | void HandlePixmapLastModified(QStringList &slist, PlaybackSock *pbs); |
110 | 111 | void HandleIsRecording(QStringList &slist, PlaybackSock *pbs); |
diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/programs/mythfrontend/networkcontrol.cpp release.19824.0127b/mythtv/programs/mythfrontend/networkcontrol.cpp
|
|
|
251 | 251 | result = processPlay(tokens); |
252 | 252 | else if (is_abbrev("query", tokens[0])) |
253 | 253 | result = processQuery(tokens); |
| 254 | else if (is_abbrev("setverbose", tokens[0])) |
| 255 | result = processSetVerbose(tokens); |
254 | 256 | else if (is_abbrev("help", tokens[0])) |
255 | 257 | result = processHelp(tokens); |
256 | 258 | else if ((tokens[0].lower() == "exit") || (tokens[0].lower() == "quit")) |
… |
… |
|
675 | 677 | result = "ERROR: Timed out waiting for reply from player"; |
676 | 678 | } |
677 | 679 | } |
| 680 | else if (is_abbrev("verbose", tokens[1])) |
| 681 | { |
| 682 | return verboseString; |
| 683 | } |
678 | 684 | else if (is_abbrev("liveTV", tokens[1])) |
679 | 685 | { |
680 | 686 | if(tokens.size() == 3) // has a channel ID |
… |
… |
|
699 | 705 | return result; |
700 | 706 | } |
701 | 707 | |
| 708 | QString NetworkControl::processSetVerbose(QStringList tokens) |
| 709 | { |
| 710 | if (tokens.size() == 1) |
| 711 | return QString("ERROR: See 'help %1' for usage information") |
| 712 | .arg(tokens[0]); |
| 713 | |
| 714 | if (tokens.size() > 2) |
| 715 | return QString("ERROR: Seperate filters with commas with no space: playback,audio\r\n See 'help %1' for usage information") |
| 716 | .arg(tokens[0]); |
| 717 | |
| 718 | // return previous string and new string |
| 719 | QString oldVerboseString = verboseString; |
| 720 | QString result = "OK"; |
| 721 | |
| 722 | int pva_result; |
| 723 | if (tokens[1] == "blank") |
| 724 | pva_result = parse_verbose_arg(""); |
| 725 | else |
| 726 | pva_result = parse_verbose_arg(tokens[1]); |
| 727 | |
| 728 | if (pva_result != 0 /*GENERIC_EXIT_OK */) |
| 729 | result = "Failed"; |
| 730 | |
| 731 | result += "\r\n"; |
| 732 | result += " Previous filter: " + oldVerboseString + "\r\n"; |
| 733 | result += " New Filter: " + verboseString + "\r\n"; |
| 734 | |
| 735 | return result; |
| 736 | } |
| 737 | |
702 | 738 | QString NetworkControl::processHelp(QStringList tokens) |
703 | 739 | { |
704 | 740 | QString command = ""; |
… |
… |
|
795 | 831 | "query liveTV - List current TV schedule\r\n" |
796 | 832 | "query liveTV CHANID - Query current program for specified channel\r\n" |
797 | 833 | "query time - Query current time on server\r\n"; |
| 834 | "query verbose - Get current VERBOSE filter\r\n"; |
| 835 | } |
| 836 | else if (is_abbrev("setverbose", command)) |
| 837 | { |
| 838 | helpText += |
| 839 | "setverbose verbose-string - Change the VERBOSE filter to 'verbose-string'\r\n"; |
| 840 | helpText += |
| 841 | " (i.e. 'setverbose playback,audio')\r\n"; |
| 842 | helpText += |
| 843 | " use 'setverbose blank' to revert to default 'general important'\r\n"; |
798 | 844 | } |
799 | 845 | else if (command == "exit") |
800 | 846 | { |
… |
… |
|
815 | 861 | "key - Send a keypress to the program\r\n" |
816 | 862 | "play - Playback related commands\r\n" |
817 | 863 | "query - Queries\r\n" |
| 864 | "setverbose - Change the verbose logging filter\r\n" |
818 | 865 | "exit - Exit Network Control\r\n" |
819 | 866 | "\r\n" |
820 | 867 | "Type 'help COMMANDNAME' for help on any specific command.\r\n"; |
diff -r -u -N -X diff.exclude -x release.19824.0127a -x release.19824.0127b release.19824.0127a/mythtv/programs/mythfrontend/networkcontrol.h release.19824.0127b/mythtv/programs/mythfrontend/networkcontrol.h
|
|
|
40 | 40 | QString processLiveTV(QStringList tokens); |
41 | 41 | QString processPlay(QStringList tokens); |
42 | 42 | QString processQuery(QStringList tokens); |
| 43 | QString processSetVerbose(QStringList tokens); |
43 | 44 | QString processHelp(QStringList tokens); |
44 | 45 | |
45 | 46 | void notifyDataAvailable(void); |