Ticket #11026: 11026_1.patch

File 11026_1.patch, 6.8 KB (added by Raymond Wagner, 14 years ago)
  • mythtv/libs/libmythbase/logging.cpp

    diff --git a/mythtv/libs/libmythbase/logging.cpp b/mythtv/libs/libmythbase/logging.cpp
    index d48a3a2..de06e4e 100644
    a b typedef struct {  
    8888
    8989LogPropagateOpts        logPropagateOpts;
    9090QString                 logPropagateArgs;
     91QStringList             logPropagateArgList;
    9192
    9293#define TIMESTAMP_MAX 30
    9394#define MAX_STRING_LENGTH (LOGLINE_MAX+120)
    void LogPrintLine( uint64_t mask, LogLevel_t level, const char *file, int line,  
    776777///        spawned from this one.
    777778void logPropagateCalc(void)
    778779{
     780    logPropagateArgList.clear();
     781
    779782    QString mask = verboseString.trimmed();
    780783    mask.replace(QRegExp(" "), ",");
    781784    mask.remove(QRegExp("^,"));
    782785    logPropagateArgs = " --verbose " + mask;
     786    logPropagateArgList << "--verbose" << mask;
    783787
    784788    if (logPropagateOpts.propagate)
     789    {
    785790        logPropagateArgs += " --logpath " + logPropagateOpts.path;
     791        logPropagateArgList << "--logpath" << logPropagateOpts.path;
     792    }
    786793
    787794    QString name = logLevelGetName(logLevel);
    788795    logPropagateArgs += " --loglevel " + name;
     796    logPropagateArgList << "--loglevel" << name;
    789797
    790798    for (int i = 0; i < logPropagateOpts.quiet; i++)
     799    {
    791800        logPropagateArgs += " --quiet";
     801        logPropagateArgList << "--quiet";
     802    }
    792803
    793804    if (!logPropagateOpts.dblog)
     805    {
    794806        logPropagateArgs += " --nodblog";
     807        logPropagateArgList << "--nodblog";
     808    }
    795809
    796810#ifndef _WIN32
    797811    if (logPropagateOpts.facility >= 0)
    void logPropagateCalc(void)  
    803817              syslogname->c_val != logPropagateOpts.facility); syslogname++);
    804818
    805819        logPropagateArgs += QString(" --syslog %1").arg(syslogname->c_name);
     820        logPropagateArgList << "--syslog" << syslogname->c_name;
    806821    }
    807822#endif
    808823}
  • mythtv/libs/libmythbase/mythlogging.h

    diff --git a/mythtv/libs/libmythbase/mythlogging.h b/mythtv/libs/libmythbase/mythlogging.h
    index 3473ea2..7d3a791 100644
    a b  
    33
    44#ifdef __cplusplus
    55#include <QString>
     6#include <QStringList>
    67#endif
    78#include <stdint.h>
    89#include <errno.h>
    extern MBASE_PUBLIC uint64_t verboseMask;  
    6061#ifdef __cplusplus
    6162}
    6263
    63 extern MBASE_PUBLIC QString    logPropagateArgs;
    64 extern MBASE_PUBLIC QString    verboseString;
     64extern MBASE_PUBLIC QStringList logPropagateArgList;
     65extern MBASE_PUBLIC QString     logPropagateArgs;
     66extern MBASE_PUBLIC QString     verboseString;
    6567
    6668MBASE_PUBLIC void logStart(QString logfile, int progress = 0, int quiet = 0,
    6769                           int facility = 0, LogLevel_t level = LOG_INFO,
  • mythtv/libs/libmythbase/mythsystem.cpp

    diff --git a/mythtv/libs/libmythbase/mythsystem.cpp b/mythtv/libs/libmythbase/mythsystem.cpp
    index 9ec5c45..52c8e0c 100644
    a b void MythSystem::SetCommand(const QString &command,  
    105105
    106106    ProcessFlags(flags);
    107107
     108    // add logging arguments
     109    if (GetSetting("PropagateLogs"))
     110    {
     111        if (m_args.isEmpty())
     112        {
     113            m_command += logPropagateArgs;
     114            if (!logPropagateQuiet())
     115                m_command += " --quiet";
     116        }
     117        else
     118        {
     119            m_args << logPropagateArgList;
     120            if (!logPropagateQuiet())
     121                m_args << "--quiet";
     122        }
     123    }
     124
    108125    // check for execute rights
    109126    if (!GetSetting("UseShell") && access(command.toUtf8().constData(), X_OK))
    110127    {
    void MythSystem::ProcessFlags(uint flags)  
    320337        m_settings["AnonLog"] = true;
    321338    if( flags & kMSLowExitVal )
    322339        m_settings["OnlyLowExitVal"] = true;
     340    if( flags & kMSPropagateLogs )
     341        m_settings["PropagateLogs"] = true;
    323342}
    324343
    325344QByteArray  MythSystem::Read(int size)
  • mythtv/libs/libmythbase/mythsystem.h

    diff --git a/mythtv/libs/libmythbase/mythsystem.h b/mythtv/libs/libmythbase/mythsystem.h
    index 31ddd1b..6762fd5 100644
    a b typedef enum MythSystemMask {  
    2626    kMSLowExitVal         = 0x00008000, ///< allow exit values 0-127 only
    2727    kMSDisableUDPListener = 0x00010000, ///< disable MythMessage UDP listener
    2828                                        ///  for the duration of application.
     29    kMSPropagateLogs      = 0x00020000, ///< add arguments for MythTV log
     30                                        ///  propagation
    2931} MythSystemFlag;
    3032
    3133#ifdef __cplusplus
  • mythtv/libs/libmythtv/previewgenerator.cpp

    diff --git a/mythtv/libs/libmythtv/previewgenerator.cpp b/mythtv/libs/libmythtv/previewgenerator.cpp
    index 20b4f2e..38e7c08 100644
    a b bool PreviewGenerator::Run(void)  
    224224    else
    225225    {
    226226        // This is where we fork and run mythpreviewgen to actually make preview
    227         command += QString(" --size %1x%2")
    228             .arg(outSize.width()).arg(outSize.height());
     227        QStringList cmdargs;
     228
     229        cmdargs << "--size"
     230                << QString("%1x%2").arg(outSize.width()).arg(outSize.height());
    229231        if (captureTime >= 0)
    230232        {
    231233            if (timeInSeconds)
    232                 command += QString(" --seconds %1").arg(captureTime);
     234                cmdargs << "--seconds";
    233235            else
    234                 command += QString(" --frame %1").arg(captureTime);
     236                cmdargs << "--frame";
     237            cmdargs << QString::number(captureTime);
    235238        }
    236         command += QString(" --chanid %1").arg(programInfo.GetChanID());
    237         command += QString(" --starttime %1")
    238             .arg(programInfo.GetRecordingStartTime(MythDate::kFilename));
     239        cmdargs << "--chanid"
     240                << QString::number(programInfo.GetChanID())
     241                << "--starttime"
     242                << programInfo.GetRecordingStartTime(MythDate::kFilename);
    239243
    240244        if (!outFileName.isEmpty())
    241             command += QString(" --outfile \"%1\"").arg(outFileName);
    242 
    243         command += logPropagateArgs;
    244         if (!logPropagateQuiet())
    245             command += " --quiet";
     245            cmdargs << "--outfile" << outFileName;
    246246
    247247        // Timeout in 30s
    248         uint ret = myth_system(command, kMSDontBlockInputDevs |
     248        MythSystem *ms = new MythSystem(command, cmdargs,
     249                                        kMSDontBlockInputDevs |
    249250                                        kMSDontDisableDrawing |
    250                                         kMSProcessEvents, 30);
     251                                        kMSProcessEvents      |
     252                                        kMSNoRunShell         |
     253                                        kMSAutoCleanup        |
     254                                        kMSPropagateLogs);
     255        ms->SetNice(10);
     256        ms->SetIOPrio(7);
     257
     258        ms->Run(30);
     259        uint ret = ms->Wait();
     260        delete ms;
     261
    251262        if (ret != GENERIC_EXIT_OK)
    252263        {
    253264            LOG(VB_GENERAL, LOG_ERR, LOC +