Ticket #3353: mythtv_remotepreviewgen.2.patch
| File mythtv_remotepreviewgen.2.patch, 8.1 KB (added by , 18 years ago) |
|---|
-
libs/libmythtv/previewgenerator.h
24 24 25 25 Q_OBJECT 26 26 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; 28 34 35 public: 36 PreviewGenerator(const ProgramInfo *pginfo, Mode mode = kLocal); 37 29 38 void SetPreviewTime(long long time, bool in_seconds) 30 39 { captureTime = time; timeInSeconds = in_seconds; } 31 40 void SetPreviewTimeAsSeconds(long long seconds_in) … … 87 96 pthread_t previewThread; 88 97 ProgramInfo programInfo; 89 98 90 bool localOnly;99 Mode mode; 91 100 bool isConnected; 92 101 bool createSockets; 93 102 MythSocket *serverSock; -
libs/libmythtv/previewgenerator.cpp
64 64 * if the file is local. 65 65 */ 66 66 PreviewGenerator::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), 69 69 createSockets(false), serverSock(NULL), pathname(pginfo->pathname), 70 70 timeInSeconds(true), captureTime(-1), outFileName(QString::null), 71 71 outSize(0,0) 72 72 { 73 if (IsLocal() )73 if (IsLocal() && !(mode & kRemote)) 74 74 return; 75 75 76 76 // Try to find a local means to access file... … … 167 167 { 168 168 bool ok = false; 169 169 bool is_local = IsLocal(); 170 if (is_local && LocalPreviewRun())170 if (is_local && (mode && kLocal) && LocalPreviewRun()) 171 171 { 172 172 ok = true; 173 173 } 174 else if ( !localOnly)174 else if (mode & kRemote) 175 175 { 176 176 if (is_local) 177 177 { … … 194 194 bool PreviewGenerator::Run(void) 195 195 { 196 196 bool ok = false; 197 if (!IsLocal()) 197 bool local_ok = IsLocal() && (mode & kLocal); 198 if (!local_ok) 198 199 { 199 if ( !localOnly)200 if (mode & kRemote) 200 201 { 201 202 ok = RemotePreviewRun(); 202 203 } -
libs/libmythtv/jobqueue.cpp
2178 2178 gContext->dispatch(me); 2179 2179 2180 2180 program_info->pathname = program_info->GetPlaybackURL(); 2181 (new PreviewGenerator(program_info, true))->Run();2181 (new PreviewGenerator(program_info, PreviewGenerator::kLocal))->Run(); 2182 2182 } 2183 2183 2184 2184 msg = QString("Commercial Flagging %1") -
libs/libmythtv/tv_play.cpp
8173 8173 .arg(playbackinfo->recstartts.toString("yyyyMMddhhmmss")) 8174 8174 .arg((long)frameNumber); 8175 8175 8176 PreviewGenerator *previewgen = new PreviewGenerator(playbackinfo, false);8176 PreviewGenerator *previewgen = new PreviewGenerator(playbackinfo, PreviewGenerator::kLocalAndRemote); 8177 8177 pbinfoLock.unlock(); 8178 8178 8179 8179 previewgen->SetPreviewTimeAsFrameNumber(frameNumber); -
libs/libmythtv/tv_rec.cpp
1108 1108 { 1109 1109 if (!killFile) 1110 1110 { 1111 (new PreviewGenerator(curRecording, true))->Start();1111 (new PreviewGenerator(curRecording, PreviewGenerator::kLocal))->Start(); 1112 1112 1113 1113 if (!tvchain) 1114 1114 { … … 4383 4383 if (oldinfo) 4384 4384 { 4385 4385 FinishedRecording(oldinfo); 4386 (new PreviewGenerator(oldinfo, true))->Start();4386 (new PreviewGenerator(oldinfo, PreviewGenerator::kLocal))->Start(); 4387 4387 delete oldinfo; 4388 4388 } 4389 4389 -
programs/mythfrontend/playbackbox.cpp
304 304 previewVideoEnabled =gContext->GetNumSetting("PlaybackPreview"); 305 305 previewPixmapEnabled=gContext->GetNumSetting("GeneratePreviewPixmaps"); 306 306 previewFromBookmark= gContext->GetNumSetting("PreviewFromBookmark"); 307 previewGeneratorMode= gContext->GetNumSetting("GeneratePreviewRemotely", 0)?PreviewGenerator::kRemote:PreviewGenerator::kLocalAndRemote; 307 308 drawTransPixmap = gContext->LoadScalePixmap("trans-backup.png"); 308 309 if (!drawTransPixmap) 309 310 drawTransPixmap = new QPixmap(); … … 4675 4676 uint attempts = IncPreviewGeneratorAttempts(filename); 4676 4677 if (attempts < PreviewGenState::maxAttempts) 4677 4678 { 4678 SetPreviewGenerator(filename, new PreviewGenerator(pginfo, false));4679 SetPreviewGenerator(filename, new PreviewGenerator(pginfo, (PreviewGenerator::Mode)previewGeneratorMode)); 4679 4680 } 4680 4681 else if (attempts == PreviewGenState::maxAttempts) 4681 4682 { … … 4742 4743 if (attempts < PreviewGenState::maxAttempts) 4743 4744 { 4744 4745 VERBOSE(VB_PLAYBACK, "Starting preview generator"); 4745 SetPreviewGenerator(filename, new PreviewGenerator(pginfo, false));4746 SetPreviewGenerator(filename, new PreviewGenerator(pginfo, (PreviewGenerator::Mode)previewGeneratorMode)); 4746 4747 } 4747 4748 else if (attempts == PreviewGenState::maxAttempts) 4748 4749 { -
programs/mythfrontend/globalsettings.cpp
2014 2046 return gc; 2015 2047 } 2016 2048 2049 static 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 2017 2059 static HostCheckBox *PlayBoxTransparency() 2018 2060 { 2019 2061 HostCheckBox *gc = new HostCheckBox("PlayBoxTransparency"); … … 4510 4558 pbox->addChild(PlayBoxOrdering()); 4511 4559 pbox->addChild(PlayBoxEpisodeSort()); 4512 4560 pbox->addChild(GeneratePreviewPixmaps()); 4561 pbox->addChild(GeneratePreviewRemotely()); 4513 4562 pbox->addChild(PreviewPixmapOffset()); 4514 4563 pbox->addChild(PreviewFromBookmark()); 4515 4564 pbox->addChild(PlaybackPreview()); -
programs/mythbackend/main.cpp
319 319 return GENERIC_EXIT_NOT_OK; 320 320 } 321 321 322 PreviewGenerator *previewgen = new PreviewGenerator(pginfo, true);322 PreviewGenerator *previewgen = new PreviewGenerator(pginfo, PreviewGenerator::kLocal); 323 323 324 324 if (previewFrameNumber >= 0) 325 325 previewgen->SetPreviewTimeAsFrameNumber(previewFrameNumber); -
programs/mythbackend/mythxml.cpp
1067 1067 // Must generate Preview Image, Generate Image and save. 1068 1068 // ------------------------------------------------------------------ 1069 1069 1070 PreviewGenerator *previewgen = new PreviewGenerator(pInfo, true);1070 PreviewGenerator *previewgen = new PreviewGenerator(pInfo, PreviewGenerator::kLocal); 1071 1071 previewgen->SetPreviewTimeAsSeconds(nSecsIn); 1072 1072 previewgen->SetOutputFilename(sFileName + ".png"); 1073 1073 bool ok = previewgen->Run();
