Ticket #2930: tuner_busy.3.diff
File tuner_busy.3.diff, 4.1 KB (added by , 17 years ago) |
---|
-
remoteutil.h
63 63 MPUBLIC int RemoteCheckForRecording(ProgramInfo *pginfo); 64 64 MPUBLIC int RemoteGetRecordingStatus(ProgramInfo *pginfo, int overrecsecs, 65 65 int underrecsecs); 66 66 MPUBLIC vector<ProgramInfo *> *RemoteGetCurrentlyRecordingList(void); 67 67 #endif 68 68 69 69 /* vim: set expandtab tabstop=4 shiftwidth=4: */ -
remoteutil.cpp
426 426 return retval; 427 427 } 428 428 429 /* 430 * \brief return list of currently recording shows 431 */ 432 vector<ProgramInfo *> *RemoteGetCurrentlyRecordingList(void) 433 { 434 QString str = "QUERY_RECORDINGS "; 435 str += "Recording"; 436 QStringList strlist = str; 437 438 vector<ProgramInfo *> *reclist = new vector<ProgramInfo *>; 439 vector<ProgramInfo *> *info = new vector<ProgramInfo *>; 440 if (!RemoteGetRecordingList(info, strlist)) 441 { 442 if (info) 443 delete info; 444 return reclist; 445 } 446 447 ProgramInfo *p = NULL; 448 vector<ProgramInfo *>::iterator it = info->begin(); 449 // make sure whatever remotegetrecordinglist returned 450 // only has rsRecording shows 451 for ( ; it != info->end(); it++) 452 { 453 p = *it; 454 if (p->recstatus == rsRecording) 455 reclist->push_back(new ProgramInfo(*p)); 456 } 457 458 if (info) 459 delete info; 460 461 return reclist; 462 } 429 463 /* vim: set expandtab tabstop=4 shiftwidth=4: */ -
tv_play.cpp
103 103 104 104 while (!quitAll) 105 105 { 106 int freeRecorders = RemoteGetFreeRecorderCount(); 106 107 if (curProgram) 107 108 { 108 109 if (!tv->Playback(curProgram)) 109 110 quitAll = true; 110 111 } 112 else if (!freeRecorders) 113 { 114 vector<ProgramInfo *> *reclist; 115 reclist = RemoteGetCurrentlyRecordingList(); 116 if (reclist->empty()) 117 { 118 VERBOSE(VB_PLAYBACK, LOC_ERR + 119 "Failed to get recording show list"); 120 quitAll = true; 121 if (reclist) 122 delete reclist; 123 continue; 124 } 125 126 int numrecordings = reclist->size(); 127 if (numrecordings > 0) 128 { 129 if (numrecordings == 1) 130 { 131 curProgram = new ProgramInfo(*reclist->at(0)); 132 } 133 else 134 { 135 ProgramInfo *p = NULL; 136 QStringList recTitles; 137 QString buttonTitle; 138 vector<ProgramInfo *>::iterator it = reclist->begin(); 139 while (it != reclist->end()) 140 { 141 p = *it; 142 buttonTitle = tr("Chan %1: %2") 143 .arg(p->chanstr).arg(p->title); 144 recTitles.append(buttonTitle); 145 it++; 146 } 147 int ret = MythPopupBox::showButtonPopup( 148 gContext->GetMainWindow(), 149 "", 150 tr("All Tuners are Busy.\n" 151 "Select a Current Recording"), 152 recTitles, 1); 153 if (ret == -1) 154 { 155 quitAll = true; 156 } 157 else 158 { 159 p = reclist->at(ret); 160 curProgram = new ProgramInfo(*p); 161 } 162 } 163 } 164 165 if (reclist) 166 delete reclist; 167 } 111 168 else 112 169 { 113 170 if (!tv->LiveTV(showDialogs, startInGuide))