Ticket #6190: 135-dynamiclog.all.patch

File 135-dynamiclog.all.patch, 9.8 KB (added by anonymous, 17 years ago)
  • mythtv/libs/libmyth/mythcontext.cpp

    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
     
    8080    QString option;
    8181    bool reverseOption;
    8282
     83    print_verbose_messages = VB_IMPORTANT | VB_GENERAL;
     84    verboseString = QString(" important general");
     85
    8386    if (arg.startsWith("-"))
    8487    {
    8588        cerr << "Invalid or missing argument to -v/--verbose option\n";
     
    164167                     << option << endl;;
    165168            }
    166169        }
     170        VERBOSE(VB_IMPORTANT, QString("Enabled verbose msgs: %1").arg(verboseString));
    167171    }
    168172
    169173    return GENERIC_EXIT_OK;
  • mythtv/programs/mythbackend/main.cpp

    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
     
    426426    bool daemonize = false;
    427427    bool printsched = false;
    428428    bool testsched = false;
     429    bool setverbose = false;
     430    QString newverbose = "";
    429431    bool resched = false;
    430432    bool nosched = false;
    431433    bool noupnp = false;
     
    526528                return BACKEND_EXIT_INVALID_CMDLINE;
    527529            }
    528530        }
     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        }
    529545        else if (!strcmp(a.argv()[argpos],"--printsched"))
    530546        {
    531547            printsched = true;
     
    680696                                                    "to filename" << endl <<
    681697                    "-d or --daemon                 Runs mythbackend as a daemon" << endl <<
    682698                    "-v or --verbose debug-level    Use '-v help' for level info" << endl <<
     699                    "--setverbose debug-level       Change debug level if running backend" << endl <<
    683700                    "--printexpire                  List of auto-expire programs" << endl <<
    684701                    "--printsched                   Upcoming scheduled programs" << endl <<
    685702                    "--testsched                    Test run scheduler (ignore existing schedule)" << endl <<
     
    766783        return BACKEND_EXIT_OK;
    767784    }
    768785
     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
    769806    if (clearsettingscache)
    770807    {
    771808        if (gContext->ConnectToMasterServer())
  • mythtv/programs/mythbackend/mainserver.cpp

    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
     
    502502    }
    503503    else if (command == "MESSAGE")
    504504    {
     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    {
    505512        HandleMessage(listline, pbs);
    506513    }
    507514    else if (command == "FILL_PROGRAM_INFO")
     
    37393746    SendResponse(pbssock, retlist);
    37403747}
    37413748
     3749void 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
    37423775void MainServer::HandleIsRecording(QStringList &slist, PlaybackSock *pbs)
    37433776{
    37443777    (void)slist;
  • mythtv/programs/mythbackend/mainserver.h

    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
     
    105105    void HandleGetRecorderNum(QStringList &slist, PlaybackSock *pbs);
    106106    void HandleGetRecorderFromNum(QStringList &slist, PlaybackSock *pbs);
    107107    void HandleMessage(QStringList &slist, PlaybackSock *pbs);
     108    void HandleSetVerbose(QStringList &slist, PlaybackSock *pbs);
    108109    void HandleGenPreviewPixmap(QStringList &slist, PlaybackSock *pbs);
    109110    void HandlePixmapLastModified(QStringList &slist, PlaybackSock *pbs);
    110111    void HandleIsRecording(QStringList &slist, PlaybackSock *pbs);
  • mythtv/programs/mythfrontend/networkcontrol.cpp

    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
     
    251251        result = processPlay(tokens);
    252252    else if (is_abbrev("query", tokens[0]))
    253253        result = processQuery(tokens);
     254    else if (is_abbrev("setverbose", tokens[0]))
     255        result = processSetVerbose(tokens);
    254256    else if (is_abbrev("help", tokens[0]))
    255257        result = processHelp(tokens);
    256258    else if ((tokens[0].lower() == "exit") || (tokens[0].lower() == "quit"))
     
    675677                result = "ERROR: Timed out waiting for reply from player";
    676678        }
    677679    }
     680    else if (is_abbrev("verbose", tokens[1]))
     681    {
     682        return verboseString;
     683    }
    678684    else if (is_abbrev("liveTV", tokens[1]))
    679685    {
    680686        if(tokens.size() == 3) // has a channel ID
     
    699705    return result;
    700706}
    701707
     708QString 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
    702738QString NetworkControl::processHelp(QStringList tokens)
    703739{
    704740    QString command = "";
     
    795831            "query liveTV          - List current TV schedule\r\n"
    796832            "query liveTV CHANID   - Query current program for specified channel\r\n"
    797833            "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";
    798844    }
    799845    else if (command == "exit")
    800846    {
     
    815861        "key                - Send a keypress to the program\r\n"
    816862        "play               - Playback related commands\r\n"
    817863        "query              - Queries\r\n"
     864        "setverbose         - Change the verbose logging filter\r\n"
    818865        "exit               - Exit Network Control\r\n"
    819866        "\r\n"
    820867        "Type 'help COMMANDNAME' for help on any specific command.\r\n";
  • mythtv/programs/mythfrontend/networkcontrol.h

    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
     
    4040    QString processLiveTV(QStringList tokens);
    4141    QString processPlay(QStringList tokens);
    4242    QString processQuery(QStringList tokens);
     43    QString processSetVerbose(QStringList tokens);
    4344    QString processHelp(QStringList tokens);
    4445
    4546    void notifyDataAvailable(void);