diff options
37 files changed, 119 insertions, 57 deletions
@@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin Street, Fifth Floor, Boston, MA 02110-3101 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. diff --git a/command/Makefile b/command/Makefile index eae92ff..997c20a 100644 --- a/command/Makefile +++ b/command/Makefile @@ -90,7 +90,7 @@ install: markad $(I18Nmsgs) @cp --remove-destination markad $(DESTDIR)/usr/bin/markad @$(STRIP) $(DESTDIR)/usr/bin/markad @mkdir -p $(DESTDIR)/var/lib/markad - @cp logos/* $(DESTDIR)/var/lib/markad + @cp -a logos/* $(DESTDIR)/var/lib/markad @echo markad installed clean: diff --git a/command/audio.cpp b/command/audio.cpp index 0a9c133..1af0823 100644 --- a/command/audio.cpp +++ b/command/audio.cpp @@ -29,6 +29,7 @@ cMarkAdAudio::~cMarkAdAudio() void cMarkAdAudio::Clear() { + framelast=0; channels=0; } diff --git a/command/decoder.cpp b/command/decoder.cpp index e35961e..4b112c8 100644 --- a/command/decoder.cpp +++ b/command/decoder.cpp @@ -115,12 +115,8 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threads) cpu_set_t cpumask; uint len = sizeof(cpumask); - int cpucount; - if (sched_getaffinity(0,len,&cpumask)<0) - { - cpucount=1; - } - else + int cpucount=1; + if (sched_getaffinity(0,len,&cpumask)>=0) { cpucount=CPU_COUNT(&cpumask); } diff --git a/command/demux.cpp b/command/demux.cpp index 6593fbf..dfd5693 100644 --- a/command/demux.cpp +++ b/command/demux.cpp @@ -67,13 +67,16 @@ void cPaketQueue::Resize(int NewSize, const char *NewName) } if (inptr<NewSize) { - buffer=(uchar *) realloc(buffer,NewSize+8); - if (buffer) + uchar *tmp=(uchar *) realloc(buffer,NewSize+8); + if (tmp) { + buffer=tmp; maxqueue=NewSize; } else { + free(buffer); + buffer=NULL; maxqueue=0; Clear(); } diff --git a/command/logos/3sat_HD-A16_9-P0.pgm b/command/logos/3sat_HD-A16_9-P0.pgm new file mode 100644 index 0000000..664d97c --- /dev/null +++ b/command/logos/3sat_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C0 +186 82 +255 + diff --git a/command/logos/3sat_HD-A16_9-P1.pgm b/command/logos/3sat_HD-A16_9-P1.pgm Binary files differnew file mode 100644 index 0000000..a9112b3 --- /dev/null +++ b/command/logos/3sat_HD-A16_9-P1.pgm diff --git a/command/logos/3sat_HD-A16_9-P2.pgm b/command/logos/3sat_HD-A16_9-P2.pgm Binary files differnew file mode 100644 index 0000000..4e58668 --- /dev/null +++ b/command/logos/3sat_HD-A16_9-P2.pgm diff --git a/command/logos/AVA-A16_9-P0.pgm b/command/logos/AVA-A16_9-P0.pgm new file mode 100644 index 0000000..e9eadb0 --- /dev/null +++ b/command/logos/AVA-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C1 +192 100 +255 + diff --git a/command/logos/FOX_HD-A16_9-P0.pgm b/command/logos/FOX_HD-A16_9-P0.pgm new file mode 100644 index 0000000..936aa68 --- /dev/null +++ b/command/logos/FOX_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C1 +288 180 +255 + diff --git a/command/logos/MTV-A16_9-P0.pgm b/command/logos/MTV-A16_9-P0.pgm new file mode 100644 index 0000000..6a94729 --- /dev/null +++ b/command/logos/MTV-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +# CREATOR: GIMP PNM Filter Version 1.1 +192 120 +255 + diff --git a/command/logos/MTV3_HD-A16_9-P0.pgm b/command/logos/MTV3_HD-A16_9-P0.pgm new file mode 100644 index 0000000..329a771 --- /dev/null +++ b/command/logos/MTV3_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C1 +288 180 +255 + diff --git a/command/logos/NICK_CC_HD-A4_3-P0.pgm b/command/logos/NICK_CC_HD-A4_3-P0.pgm new file mode 100644 index 0000000..c6ba58b --- /dev/null +++ b/command/logos/NICK_CC_HD-A4_3-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C0 +185 190 +255 + diff --git a/command/logos/Super_RTL-A16_9-P0.pgm b/command/logos/RTLNITRO-A16_9-P0.pgm Binary files differindex 10ca0ea..588bb72 100644 --- a/command/logos/Super_RTL-A16_9-P0.pgm +++ b/command/logos/RTLNITRO-A16_9-P0.pgm diff --git a/command/logos/SUPER_RTL-A16_9-P0.pgm b/command/logos/SUPER_RTL-A16_9-P0.pgm Binary files differindex 29c4950..10ca0ea 120000..100644 --- a/command/logos/SUPER_RTL-A16_9-P0.pgm +++ b/command/logos/SUPER_RTL-A16_9-P0.pgm diff --git a/command/logos/SUPER_RTL_HD-A16_9-P0.pgm b/command/logos/SUPER_RTL_HD-A16_9-P0.pgm new file mode 100644 index 0000000..82767f5 --- /dev/null +++ b/command/logos/SUPER_RTL_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C0 +445 137 +255 + diff --git a/command/logos/YLE_HD-A16_9-P0.pgm b/command/logos/YLE_HD-A16_9-P0.pgm new file mode 100644 index 0000000..6554986 --- /dev/null +++ b/command/logos/YLE_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +# CREATOR: GIMP PNM Filter Version 1.1 +384 180 +255 + diff --git a/command/logos/zdf_neo_HD-A16_9-P0.pgm b/command/logos/zdf_neo_HD-A16_9-P0.pgm new file mode 100644 index 0000000..d23fa44 --- /dev/null +++ b/command/logos/zdf_neo_HD-A16_9-P0.pgm @@ -0,0 +1,5 @@ +P5 +#C0 +235 88 +255 + diff --git a/command/markad-standalone.cpp b/command/markad-standalone.cpp index 494bbfb..777a73a 100644 --- a/command/markad-standalone.cpp +++ b/command/markad-standalone.cpp @@ -43,20 +43,21 @@ static inline int ioprio_set(int which, int who, int ioprio) { #if defined(__i386__) #define __NR_ioprio_set 289 -#define __NR_ioprio_get 290 #elif defined(__ppc__) #define __NR_ioprio_set 273 -#define __NR_ioprio_get 274 #elif defined(__x86_64__) #define __NR_ioprio_set 251 -#define __NR_ioprio_get 252 #elif defined(__ia64__) #define __NR_ioprio_set 1274 -#define __NR_ioprio_get 1275 #else - return 0; // just do nothing +#define __NR_ioprio_set 0 #endif - return syscall(__NR_ioprio_set, which, who, ioprio); + if (__NR_ioprio_set) + { + return syscall(__NR_ioprio_set, which, who, ioprio); + } else { + return 0; // just do nothing + } } void syslog_with_tid(int priority, const char *format, ...) @@ -124,7 +125,7 @@ bool cOSDMessage::readreply(int fd) void *cOSDMessage::send(void *posd) { - cOSDMessage *osd=(cOSDMessage *) posd; + cOSDMessage *osd=static_cast<cOSDMessage *>(posd); struct hostent *host=gethostbyname(osd->host); if (!host) @@ -157,10 +158,10 @@ void *cOSDMessage::send(void *posd) ssize_t ret; ret=write(sock,"MESG ",5); - ret=write(sock,osd->msg,strlen(osd->msg)); - ret=write(sock,"\r\n",2); + if (ret!=(ssize_t)-1) ret=write(sock,osd->msg,strlen(osd->msg)); + if (ret!=(ssize_t)-1) ret=write(sock,"\r\n",2); - if (!osd->readreply(sock)) + if (!osd->readreply(sock) || (ret==(ssize_t)-1)) { close(sock); return NULL; @@ -168,7 +169,7 @@ void *cOSDMessage::send(void *posd) ret=write(sock,"QUIT\r\n",6); - osd->readreply(sock); + if (ret!=(ssize_t)-1) osd->readreply(sock); close(sock); return NULL; } @@ -1269,7 +1270,7 @@ bool cMarkAdStandalone::SaveInfo() int stream=0,type=0; char descr[256]=""; - int result=sscanf(line,"%*c %i %i %3c %250c",&stream,&type,(char *) &lang, (char *) &descr); + int result=sscanf(line,"%*c %3i %3i %3c %250c",&stream,&type,(char *) &lang, (char *) &descr); if ((result!=0) && (result!=EOF)) { switch (stream) @@ -1526,7 +1527,7 @@ bool cMarkAdStandalone::LoadInfo() if (line[0]=='C') { char channelname[256]=""; - int result=sscanf(line,"%*c %*s %250c",(char *) &channelname); + int result=sscanf(line,"%*c %*80s %250c",(char *) &channelname); if (result==1) { macontext.Info.ChannelName=strdup(channelname); @@ -1544,7 +1545,7 @@ bool cMarkAdStandalone::LoadInfo() } if (line[0]=='E') { - int result=sscanf(line,"%*c %*i %li %i %*i %*x",&startTime,&length); + int result=sscanf(line,"%*c %*10i %20li %6i %*2x %*2x",&startTime,&length); if (result!=2) { startTime=0; @@ -1569,7 +1570,7 @@ bool cMarkAdStandalone::LoadInfo() if (line[0]=='F') { int fps; - int result=sscanf(line,"%*c %i",&fps); + int result=sscanf(line,"%*c %3i",&fps); if ((result==0) || (result==EOF)) { macontext.Video.Info.FramesPerSecond=0; @@ -1583,7 +1584,7 @@ bool cMarkAdStandalone::LoadInfo() { int stream=0,type=0; char descr[256]=""; - int result=sscanf(line,"%*c %i %i %250c",&stream,&type,(char *) &descr); + int result=sscanf(line,"%*c %3i %3i %250c",&stream,&type,(char *) &descr); if ((result!=0) && (result!=EOF)) { if ((stream==1) || (stream==5)) @@ -1938,7 +1939,7 @@ bool cMarkAdStandalone::CreatePidfile() { // found old pidfile, check if it's still running int pid; - if (fscanf(oldpid,"%i\n",&pid)==1) + if (fscanf(oldpid,"%10i\n",&pid)==1) { char procname[256]=""; snprintf(procname,sizeof(procname),"/proc/%i",pid); diff --git a/command/markad-standalone.h b/command/markad-standalone.h index cacbd0d..66761e0 100644 --- a/command/markad-standalone.h +++ b/command/markad-standalone.h @@ -245,15 +245,14 @@ unsigned Descriptor_Length: bool ProcessFile(int Number); void ProcessFile(); public: + cMarkAdStandalone(const char *Directory, const MarkAdConfig *config); + ~cMarkAdStandalone(); void SetAbort() { abort=true; } void Process2ndPass(); void Process(); - cMarkAdStandalone(const char *Directory, const MarkAdConfig *config); - - ~cMarkAdStandalone(); }; #endif diff --git a/command/marks.cpp b/command/marks.cpp index 8909e3c..f8a9b85 100644 --- a/command/marks.cpp +++ b/command/marks.cpp @@ -663,7 +663,7 @@ bool clMarks::Load(const char *Directory, double FrameRate, bool isTS) { char descr[256]=""; f=1; - int n=sscanf(line,"%d:%d:%d.%d %80c",&h,&m,&s,&f,(char *) &descr); + int n=sscanf(line,"%3d:%02d:%02d.%02d %80c",&h,&m,&s,&f,(char *) &descr); if (n==1) { Add(0,h); diff --git a/command/streaminfo.cpp b/command/streaminfo.cpp index 544c7d9..83e6144 100644 --- a/command/streaminfo.cpp +++ b/command/streaminfo.cpp @@ -183,7 +183,6 @@ bool cMarkAdStreamInfo::FindH264VideoInfos(MarkAdContext *maContext, uchar *pkt, uint32_t width=0; uint32_t height=0; uint32_t aspect_ratio_idc=0; - double frame_rate=0; bool fixedframerate=false; int sar_width=1,sar_height=1; @@ -290,6 +289,7 @@ bool cMarkAdStreamInfo::FindH264VideoInfos(MarkAdContext *maContext, uchar *pkt, uint32_t num_units_in_tick, time_scale; num_units_in_tick = bs.getU32(); // num_units_in_tick time_scale = bs.getU32(); // time_scale + double frame_rate=0; if (num_units_in_tick > 0) { frame_rate = time_scale / num_units_in_tick; diff --git a/command/video.cpp b/command/video.cpp index 0e975cd..eb6198e 100644 --- a/command/video.cpp +++ b/command/video.cpp @@ -23,7 +23,6 @@ cMarkAdLogo::cMarkAdLogo(MarkAdContext *maContext) macontext=maContext; // 3x3 GX Sobel mask - GX[0][0] = -1; GX[0][1] = 0; GX[0][2] = 1; @@ -85,7 +84,7 @@ int cMarkAdLogo::Load(const char *directory, char *file, int plane) } int width,height; - if (fscanf(pFile, "P5\n#C%i %i\n%d %d\n255\n#", &area.corner,&area.mpixel[plane],&width,&height)!=4) + if (fscanf(pFile, "P5\n#C%1i %3i\n%3d %3d\n255\n#", &area.corner,&area.mpixel[plane],&width,&height)!=4) { fclose(pFile); return -2; diff --git a/command/video.h b/command/video.h index f4abbec..74f866e 100644 --- a/command/video.h +++ b/command/video.h @@ -114,7 +114,6 @@ private: bool valid[4]; // logo mask valid? } area; - int G[5][5]; int GX[3][3]; int GY[3][3]; diff --git a/plugin/HISTORY b/plugin/HISTORY new file mode 120000 index 0000000..ec72466 --- /dev/null +++ b/plugin/HISTORY @@ -0,0 +1 @@ +../HISTORY
\ No newline at end of file diff --git a/plugin/README b/plugin/README new file mode 120000 index 0000000..59a23c4 --- /dev/null +++ b/plugin/README @@ -0,0 +1 @@ +../README
\ No newline at end of file diff --git a/plugin/markad.cpp b/plugin/markad.cpp index 7dc97d1..cfd9ba2 100644 --- a/plugin/markad.cpp +++ b/plugin/markad.cpp @@ -26,6 +26,7 @@ cPluginMarkAd::cPluginMarkAd(void) statusMonitor=NULL; bindir=strdup(DEF_BINDIR); logodir=strdup(DEF_LOGODIR); + title[0]=0; setup.ProcessDuring=true; setup.whileRecording=true; @@ -39,6 +40,7 @@ cPluginMarkAd::cPluginMarkAd(void) setup.Log2Rec=false; setup.LogoOnly=true; setup.SaveInfo=false; + setup.DeferredShutdown=true; } cPluginMarkAd::~cPluginMarkAd() @@ -160,7 +162,7 @@ void cPluginMarkAd::MainThreadHook(void) cString cPluginMarkAd::Active(void) { // Return a message string if shutdown should be postponed - if (statusMonitor->MarkAdRunning()) + if (statusMonitor->MarkAdRunning() && (setup.DeferredShutdown)) return tr("markad still running"); return NULL; } diff --git a/plugin/menu.cpp b/plugin/menu.cpp index 1ad8d84..13171b3 100644 --- a/plugin/menu.cpp +++ b/plugin/menu.cpp @@ -72,7 +72,7 @@ cMenuMarkAd::cMenuMarkAd(cStatusMarkAd *Status):cOsdMenu(tr("markad status"),15) if (write()) { - cOsdMarkAd *osd=(cOsdMarkAd *) Get(Current()); + cOsdMarkAd *osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { SetHelpText(osd->GetEntry()); @@ -158,7 +158,7 @@ eOSState cMenuMarkAd::ProcessKey(eKeys Key) switch (Key) { case kRed: - osd=(cOsdMarkAd *) Get(Current()); + osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { struct recs *entry=osd->GetEntry(); @@ -173,7 +173,7 @@ eOSState cMenuMarkAd::ProcessKey(eKeys Key) break; case kGreen: - osd=(cOsdMarkAd *) Get(Current()); + osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { struct recs *entry=osd->GetEntry(); @@ -189,7 +189,7 @@ eOSState cMenuMarkAd::ProcessKey(eKeys Key) case kUp: CursorUp(); - osd=(cOsdMarkAd *) Get(Current()); + osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { SetHelpText(osd->GetEntry()); @@ -199,7 +199,7 @@ eOSState cMenuMarkAd::ProcessKey(eKeys Key) case kDown: CursorDown(); - osd=(cOsdMarkAd *) Get(Current()); + osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { SetHelpText(osd->GetEntry()); @@ -216,7 +216,7 @@ eOSState cMenuMarkAd::ProcessKey(eKeys Key) { if (write()) { - cOsdMarkAd *osd=(cOsdMarkAd *) Get(Current()); + cOsdMarkAd *osd=static_cast<cOsdMarkAd *>(Get(Current())); if ((osd) && (osd->Selectable())) { SetHelpText(osd->GetEntry()); diff --git a/plugin/po/de_DE.po b/plugin/po/de_DE.po index 94dae99..6c2a6e8 100644 --- a/plugin/po/de_DE.po +++ b/plugin/po/de_DE.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2012-02-25 15:48+0100\n" +"POT-Creation-Date: 2012-05-17 12:42+0200\n" "PO-Revision-Date: 2009-08-27 14:18+0200\n" "Last-Translator: Jochen Dolze <vdr@dolze.de>\n" "Language-Team: German <vdr@linuxtv.org>\n" @@ -67,6 +67,9 @@ msgstr " während einer Wiedergabe" msgid "scan only channels with logo" msgstr "nur Kanäle mit Logo scannen" +msgid "deferred shutdown" +msgstr "Herunterfahren verzögern?" + msgid "ignore timer margins" msgstr "Timer Vor-/Nachlauf ignorieren" @@ -102,4 +105,3 @@ msgstr "zurück" msgid "Mark advertisements" msgstr "Markiere Werbung" - diff --git a/plugin/po/es_ES.po b/plugin/po/es_ES.po index e1c6cd8..eee5681 100644 --- a/plugin/po/es_ES.po +++ b/plugin/po/es_ES.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2012-02-25 15:48+0100\n" +"POT-Creation-Date: 2012-05-17 12:42+0200\n" "PO-Revision-Date: 2011-02-12 11:30+0100\n" "Last-Translator: Javier Bradineras <jbradi@hotmail.com>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n" @@ -70,6 +70,9 @@ msgstr " Durante la reproducción" msgid "scan only channels with logo" msgstr "Escanea únicamente canales con logo" +msgid "deferred shutdown" +msgstr "" + msgid "ignore timer margins" msgstr "Ignora márgenes de tiempo" @@ -105,4 +108,3 @@ msgstr "Atrás" msgid "Mark advertisements" msgstr "Marca anuncios" - diff --git a/plugin/po/fi_FI.po b/plugin/po/fi_FI.po index e568492..57576b1 100644 --- a/plugin/po/fi_FI.po +++ b/plugin/po/fi_FI.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2012-02-25 15:48+0100\n" +"POT-Creation-Date: 2012-05-17 12:42+0200\n" "PO-Revision-Date: 2011-02-27 02:27+0200\n" "Last-Translator: Rolf Ahrenberg\n" "Language-Team: Finnish <vdr@linuxtv.org>\n" @@ -68,6 +68,9 @@ msgstr " tallenteen toiston aikana" msgid "scan only channels with logo" msgstr "Käytä vain logollisilla kanavilla" +msgid "deferred shutdown" +msgstr "" + msgid "ignore timer margins" msgstr "Älä huomioi ajastinmarginaaleja" @@ -103,4 +106,3 @@ msgstr "Takaisin" msgid "Mark advertisements" msgstr "Merkitse mainokset automaattisesti" - diff --git a/plugin/po/it_IT.po b/plugin/po/it_IT.po index 77f188f..6d6403a 100644 --- a/plugin/po/it_IT.po +++ b/plugin/po/it_IT.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2012-02-25 15:48+0100\n" +"POT-Creation-Date: 2012-05-17 12:42+0200\n" "PO-Revision-Date: 2011-07-10 00:56+0100\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Language-Team: Italian <vdr@linuxtv.org>\n" @@ -70,6 +70,9 @@ msgstr " durante la riproduzione" msgid "scan only channels with logo" msgstr "Scansione solo canali con loghi" +msgid "deferred shutdown" +msgstr "" + msgid "ignore timer margins" msgstr "Ignora margini timer" @@ -105,4 +108,3 @@ msgstr "Indietro" msgid "Mark advertisements" msgstr "Segna i marcatori della pubblicità" - diff --git a/plugin/po/sk_SK.po b/plugin/po/sk_SK.po index 30019c3..5bb67a9 100644 --- a/plugin/po/sk_SK.po +++ b/plugin/po/sk_SK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: markad\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2012-02-25 15:48+0100\n" +"POT-Creation-Date: 2012-05-17 12:42+0200\n" "PO-Revision-Date: 2011-03-01 20:26+0100\n" "Last-Translator: milan hrala <hrala.milan@gmail.com>\n" "Language-Team: milan hrala <grala.milan@gmail.com>\n" @@ -70,6 +70,9 @@ msgstr " keď sa prehráva" msgid "scan only channels with logo" msgstr "Snímať kanály iba s logom" +msgid "deferred shutdown" +msgstr "" + msgid "ignore timer margins" msgstr "Ignorovať okraje plánu" @@ -105,4 +108,3 @@ msgstr "späť" msgid "Mark advertisements" msgstr "Značkovač reklamy" - diff --git a/plugin/setup.cpp b/plugin/setup.cpp index e449f61..8b54d54 100644 --- a/plugin/setup.cpp +++ b/plugin/setup.cpp @@ -23,6 +23,7 @@ cSetupMarkAd::cSetupMarkAd(struct setup *Setup) log2rec=setup->Log2Rec; logoonly=setup->LogoOnly; saveinfo=setup->SaveInfo; + deferredshutdown=setup->DeferredShutdown; processTexts[0]=tr("after"); processTexts[1]=tr("during"); @@ -46,6 +47,7 @@ void cSetupMarkAd::write(void) } Add(new cMenuEditBoolItem(tr("scan only channels with logo"),&logoonly),true); lpos=Current(); + Add(new cMenuEditBoolItem(tr("deferred shutdown"),&deferredshutdown)); Add(new cMenuEditBoolItem(tr("ignore timer margins"),&nomargins)); Add(new cMenuEditBoolItem(tr("detect overlaps"),&secondpass)); Add(new cMenuEditBoolItem(tr("recreate index"),&genindex)); @@ -118,6 +120,7 @@ void cSetupMarkAd::Store(void) SetupStore("Log2Rec",log2rec); SetupStore("LogoOnly",logoonly); SetupStore("SaveInfo",saveinfo); + SetupStore("DeferredShutdown",deferredshutdown); setup->ProcessDuring=(bool) processduring; setup->whileRecording=(bool) whilerecording; @@ -128,6 +131,7 @@ void cSetupMarkAd::Store(void) setup->Verbose=(bool) verbose; setup->NoMargins=(bool) nomargins; setup->HideMainMenuEntry=(bool) hidemainmenuentry; + setup->DeferredShutdown=(bool) deferredshutdown; setup->Log2Rec=log2rec; setup->LogoOnly=logoonly; setup->SaveInfo=saveinfo; @@ -200,7 +204,6 @@ int cSetupMarkAdListItem::Compare(const cListObject &ListObject) const { return 0; } - } eOSState cSetupMarkAdList::ProcessKey (eKeys Key) diff --git a/plugin/setup.h b/plugin/setup.h index dc3a75b..d22460a 100644 --- a/plugin/setup.h +++ b/plugin/setup.h @@ -23,6 +23,7 @@ struct setup bool HideMainMenuEntry; bool Log2Rec; bool LogoOnly; + bool DeferredShutdown; const char *LogoDir; const char *PluginName; }; @@ -44,6 +45,7 @@ private: int log2rec; int logoonly; int saveinfo; + int deferredshutdown; void write(void); int lpos; protected: diff --git a/plugin/status.cpp b/plugin/status.cpp index 84801f1..1200974 100644 --- a/plugin/status.cpp +++ b/plugin/status.cpp @@ -239,7 +239,7 @@ bool cStatusMarkAd::getStatus(int Position) if (fstat) { // found a running markad - ret=fscanf(fstat,"%*d %*s %c",&recs[Position].Status); + ret=fscanf(fstat,"%*10d %*255s %c",&recs[Position].Status); fclose(fstat); } else @@ -268,7 +268,7 @@ bool cStatusMarkAd::getPid(int Position) { free(buf); int pid; - ret=fscanf(fpid,"%i\n",&pid); + ret=fscanf(fpid,"%10i\n",&pid); if (ret==1) recs[Position].Pid=pid; fclose(fpid); } @@ -8,6 +8,6 @@ #ifndef __version_h_ #define __version_h_ -static const char *VERSION = "0.1.3"; +static const char *VERSION = "0.1.4pre"; #endif |