Ticket #3353: mythtv_remotepreviewgen.2.patch

File mythtv_remotepreviewgen.2.patch, 8.1 KB (added by Mark Spieth, 18 years ago)
  • libs/libmythtv/previewgenerator.h

     
    2424
    2525    Q_OBJECT
    2626  public:
    27     PreviewGenerator(const ProgramInfo *pginfo, bool local_only = true);
     27    typedef enum {
     28        kNone = 0,
     29        kLocal = 1,
     30        kRemote = 2,
     31        kLocalAndRemote = 3,
     32        kModeMask = 3
     33    } Mode;
    2834
     35  public:
     36    PreviewGenerator(const ProgramInfo *pginfo, Mode mode = kLocal);
     37
    2938    void SetPreviewTime(long long time, bool in_seconds)
    3039        { captureTime = time; timeInSeconds = in_seconds; }
    3140    void SetPreviewTimeAsSeconds(long long seconds_in)
     
    8796    pthread_t          previewThread;
    8897    ProgramInfo        programInfo;
    8998
    90     bool               localOnly;
     99    Mode               mode;
    91100    bool               isConnected;
    92101    bool               createSockets;
    93102    MythSocket        *serverSock;
  • libs/libmythtv/previewgenerator.cpp

     
    6464 *                    if the file is local.
    6565 */
    6666PreviewGenerator::PreviewGenerator(const ProgramInfo *pginfo,
    67                                    bool local_only)
    68     : programInfo(*pginfo), localOnly(local_only), isConnected(false),
     67                                   PreviewGenerator::Mode _mode)
     68    : programInfo(*pginfo), mode(_mode), isConnected(false),
    6969      createSockets(false), serverSock(NULL),      pathname(pginfo->pathname),
    7070      timeInSeconds(true),  captureTime(-1),       outFileName(QString::null),
    7171      outSize(0,0)
    7272{
    73     if (IsLocal())
     73    if (IsLocal() && !(mode & kRemote))
    7474        return;
    7575
    7676    // Try to find a local means to access file...
     
    167167{
    168168    bool ok = false;
    169169    bool is_local = IsLocal();
    170     if (is_local && LocalPreviewRun())
     170    if (is_local && (mode && kLocal) && LocalPreviewRun())
    171171    {
    172172        ok = true;
    173173    }
    174     else if (!localOnly)
     174    else if (mode & kRemote)
    175175    {
    176176        if (is_local)
    177177        {
     
    194194bool PreviewGenerator::Run(void)
    195195{
    196196    bool ok = false;
    197     if (!IsLocal())
     197    bool local_ok = IsLocal() && (mode & kLocal);
     198    if (!local_ok)
    198199    {
    199         if (!localOnly)
     200        if (mode & kRemote)
    200201        {
    201202            ok = RemotePreviewRun();
    202203        }
  • libs/libmythtv/jobqueue.cpp

     
    21782178        gContext->dispatch(me);
    21792179
    21802180        program_info->pathname = program_info->GetPlaybackURL();
    2181         (new PreviewGenerator(program_info, true))->Run();
     2181        (new PreviewGenerator(program_info, PreviewGenerator::kLocal))->Run();
    21822182    }
    21832183
    21842184    msg = QString("Commercial Flagging %1")
  • libs/libmythtv/tv_play.cpp

     
    81738173        .arg(playbackinfo->recstartts.toString("yyyyMMddhhmmss"))
    81748174        .arg((long)frameNumber);
    81758175
    8176     PreviewGenerator *previewgen = new PreviewGenerator(playbackinfo, false);
     8176    PreviewGenerator *previewgen = new PreviewGenerator(playbackinfo, PreviewGenerator::kLocalAndRemote);
    81778177    pbinfoLock.unlock();
    81788178
    81798179    previewgen->SetPreviewTimeAsFrameNumber(frameNumber);
  • libs/libmythtv/tv_rec.cpp

     
    11081108    {
    11091109        if (!killFile)
    11101110        {
    1111             (new PreviewGenerator(curRecording, true))->Start();
     1111            (new PreviewGenerator(curRecording, PreviewGenerator::kLocal))->Start();
    11121112
    11131113            if (!tvchain)
    11141114            {
     
    43834383    if (oldinfo)
    43844384    {
    43854385        FinishedRecording(oldinfo);
    4386         (new PreviewGenerator(oldinfo, true))->Start();
     4386        (new PreviewGenerator(oldinfo, PreviewGenerator::kLocal))->Start();
    43874387        delete oldinfo;
    43884388    }
    43894389
  • programs/mythfrontend/playbackbox.cpp

     
    304304        previewVideoEnabled =gContext->GetNumSetting("PlaybackPreview");
    305305    previewPixmapEnabled=gContext->GetNumSetting("GeneratePreviewPixmaps");
    306306    previewFromBookmark= gContext->GetNumSetting("PreviewFromBookmark");
     307    previewGeneratorMode= gContext->GetNumSetting("GeneratePreviewRemotely", 0)?PreviewGenerator::kRemote:PreviewGenerator::kLocalAndRemote;
    307308    drawTransPixmap    = gContext->LoadScalePixmap("trans-backup.png");
    308309    if (!drawTransPixmap)
    309310        drawTransPixmap = new QPixmap();
     
    46754676        uint attempts = IncPreviewGeneratorAttempts(filename);
    46764677        if (attempts < PreviewGenState::maxAttempts)
    46774678        {
    4678             SetPreviewGenerator(filename, new PreviewGenerator(pginfo, false));
     4679            SetPreviewGenerator(filename, new PreviewGenerator(pginfo, (PreviewGenerator::Mode)previewGeneratorMode));
    46794680        }
    46804681        else if (attempts == PreviewGenState::maxAttempts)
    46814682        {
     
    47424743        if (attempts < PreviewGenState::maxAttempts)
    47434744        {
    47444745            VERBOSE(VB_PLAYBACK, "Starting preview generator");
    4745             SetPreviewGenerator(filename, new PreviewGenerator(pginfo, false));
     4746            SetPreviewGenerator(filename, new PreviewGenerator(pginfo, (PreviewGenerator::Mode)previewGeneratorMode));
    47464747        }
    47474748        else if (attempts == PreviewGenState::maxAttempts)
    47484749        {
  • programs/mythfrontend/globalsettings.cpp

     
    20142046    return gc;
    20152047}
    20162048
     2049static HostCheckBox *GeneratePreviewRemotely()
     2050{
     2051    HostCheckBox *gc = new HostCheckBox("GeneratePreviewRemotely");
     2052    gc->setLabel(QObject::tr("Generate preview image remotely"));
     2053    gc->setValue(false);
     2054    gc->setHelpText(QObject::tr("If enabled, the static image of the recording will "
     2055                    "NOT be generated on the local machine."));
     2056    return gc;
     2057}
     2058
    20172059static HostCheckBox *PlayBoxTransparency()
    20182060{
    20192061    HostCheckBox *gc = new HostCheckBox("PlayBoxTransparency");
     
    45104558    pbox->addChild(PlayBoxOrdering());
    45114559    pbox->addChild(PlayBoxEpisodeSort());
    45124560    pbox->addChild(GeneratePreviewPixmaps());
     4561    pbox->addChild(GeneratePreviewRemotely());
    45134562    pbox->addChild(PreviewPixmapOffset());
    45144563    pbox->addChild(PreviewFromBookmark());
    45154564    pbox->addChild(PlaybackPreview());
  • programs/mythbackend/main.cpp

     
    319319        return GENERIC_EXIT_NOT_OK;
    320320    }
    321321
    322     PreviewGenerator *previewgen = new PreviewGenerator(pginfo, true);
     322    PreviewGenerator *previewgen = new PreviewGenerator(pginfo, PreviewGenerator::kLocal);
    323323
    324324    if (previewFrameNumber >= 0)
    325325        previewgen->SetPreviewTimeAsFrameNumber(previewFrameNumber);
  • programs/mythbackend/mythxml.cpp

     
    10671067        // Must generate Preview Image, Generate Image and save.
    10681068        // ------------------------------------------------------------------
    10691069
    1070         PreviewGenerator *previewgen = new PreviewGenerator(pInfo, true);
     1070        PreviewGenerator *previewgen = new PreviewGenerator(pInfo, PreviewGenerator::kLocal);
    10711071        previewgen->SetPreviewTimeAsSeconds(nSecsIn);
    10721072        previewgen->SetOutputFilename(sFileName + ".png");
    10731073        bool ok = previewgen->Run();