- removed legacy code for pre VDR 1.4

- dropped patches for pre VDR 1.4
This commit is contained in:
schmirl 2008-04-07 14:27:27 +00:00
parent 71cc16a1eb
commit f51d6eb2df
30 changed files with 36 additions and 855 deletions

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile,v 1.12 2008/03/31 10:34:26 schmirl Exp $
# $Id: Makefile,v 1.13 2008/04/07 14:27:27 schmirl Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -16,11 +16,10 @@ VERSION = $(shell grep 'const char \*VERSION *=' common.c | awk '{ print $$5 }'
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -fPIC -Wall -Woverloaded-virtual
CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
### The directory environment:
DVBDIR = ../../../../DVB
VDRDIR = ../../..
LIBDIR = ../../lib
TMPDIR = /tmp
@ -40,7 +39,7 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I.
INCLUDES += -I$(VDRDIR)/include -I.
DEFINES += -D_GNU_SOURCE
@ -67,22 +66,6 @@ SERVEROBJS = $(PLUGIN)-server.o \
ifdef DEBUG
DEFINES += -DDEBUG
CXXFLAGS += -g
else
CXXFLAGS += -O2
endif
ifeq ($(shell test -f $(VDRDIR)/fontsym.h ; echo $$?),0)
DEFINES += -DHAVE_BEAUTYPATCH
endif
ifeq ($(shell test -f $(VDRDIR)/fontsym.c ; echo $$?),0)
DEFINES += -DHAVE_BEAUTYPATCH
endif
# HAVE_AUTOPID only applies if VDRVERSNUM < 10300
ifeq ($(shell test -f $(VDRDIR)/sections.c ; echo $$?),0)
DEFINES += -DHAVE_AUTOPID
endif
### The main target:
@ -97,7 +80,7 @@ all: libvdr-$(PLUGIN)-client.so libvdr-$(PLUGIN)-server.so
# Dependencies:
MAKEDEP = g++ -MM -MG
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
ifdef GCC3
$(DEPFILE): Makefile
@ -118,7 +101,6 @@ endif
libdvbmpeg/libdvbmpegtools.a: libdvbmpeg/*.c libdvbmpeg/*.cc libdvbmpeg/*.h libdvbmpeg/*.hh
$(MAKE) -C ./libdvbmpeg libdvbmpegtools.a
libvdr-$(PLUGIN)-client.so: $(CLIENTOBJS) $(COMMONOBJS) libdvbmpeg/libdvbmpegtools.a
libvdr-$(PLUGIN)-server.so: $(SERVEROBJS) $(COMMONOBJS) libdvbmpeg/libdvbmpegtools.a

View File

@ -1,5 +1,5 @@
/*
* $Id: assembler.c,v 1.2 2005/01/25 14:14:43 lordjaxom Exp $
* $Id: assembler.c,v 1.3 2008/04/07 14:27:28 schmirl Exp $
*/
#include "client/assembler.h"
@ -15,9 +15,7 @@
#include <unistd.h>
cStreamdevAssembler::cStreamdevAssembler(cTBSocket *Socket)
#if VDRVERSNUM >= 10300
:cThread("Streamdev: UDP-TS Assembler")
#endif
{
m_Socket = Socket;
if (pipe(m_Pipe) != 0) {
@ -50,11 +48,6 @@ void cStreamdevAssembler::Action(void) {
const int rbminfill = rbmargin * 50;
cRingBufferLinear ringbuf(rbsize, rbmargin, true);
#if VDRVERSNUM < 10300
isyslog("streamdev-client: UDP-TS Assembler thread started (pid=%d)",
getpid());
#endif
m_Mutex.Lock();
m_Active = true;
@ -113,10 +106,6 @@ void cStreamdevAssembler::Action(void) {
}
}
}
#if VDRVERSNUM < 10300
isyslog("streamdev-client: UDP-TS Assembler thread stopped", getpid());
#endif
}
void cStreamdevAssembler::WaitForFill(void) {

View File

@ -1,5 +1,5 @@
/*
* $Id: device.c,v 1.15 2007/12/12 12:22:45 schmirl Exp $
* $Id: device.c,v 1.16 2008/04/07 14:27:28 schmirl Exp $
*/
#include "client/device.h"
@ -28,18 +28,9 @@ cStreamdevDevice::cStreamdevDevice(void) {
m_TSBuffer = NULL;
m_Assembler = NULL;
#if VDRVERSNUM < 10300
# if defined(HAVE_AUTOPID)
(void)new cSIProcessor(new cSectionsScanner(""));
# else
(void)new cSIProcessor("");
# endif
cSIProcessor::Read();
#else
m_Filters = new cStreamdevFilters;
StartSectionHandler();
cSchedules::Read();
#endif
m_Device = this;
m_Pids = 0;
@ -61,9 +52,7 @@ cStreamdevDevice::~cStreamdevDevice() {
Cancel(3);
#if VDRVERSNUM >= 10300
DELETENULL(m_Filters);
#endif
DELETENULL(m_TSBuffer);
delete m_Assembler;
}
@ -121,19 +110,7 @@ bool cStreamdevDevice::SetChannelDevice(const cChannel *Channel,
&& TRANSPONDER(Channel, m_Channel))
return true;
#if VDRVERSNUM < 10338
DetachAll(pidHandles[ptAudio].pid);
DetachAll(pidHandles[ptVideo].pid);
DetachAll(pidHandles[ptPcr].pid);
DetachAll(pidHandles[ptTeletext].pid);
DelPid(pidHandles[ptAudio].pid);
DelPid(pidHandles[ptVideo].pid);
DelPid(pidHandles[ptPcr].pid, ptPcr);
DelPid(pidHandles[ptTeletext].pid);
DelPid(pidHandles[ptDolby].pid);
#else
DetachAllReceivers();
#endif
m_Channel = Channel;
bool r = ClientSocket.SetChannelDevice(m_Channel);
Dprintf("setchanneldevice r=%d\n", r);
@ -268,7 +245,6 @@ esyslog("cStreamDevice::GetTSPacket: GetChecked: NOTHING (%d)", m_TSFails);
return false;
}
#if VDRVERSNUM >= 10300
int cStreamdevDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask) {
Dprintf("OpenFilter\n");
@ -290,7 +266,6 @@ int cStreamdevDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask) {
return -1;
}
#endif
bool cStreamdevDevice::Init(void) {
if (m_Device == NULL && StreamdevClientSetup.StartClient)

View File

@ -1,5 +1,5 @@
/*
* $Id: device.h,v 1.5 2007/04/24 10:43:40 schmirl Exp $
* $Id: device.h,v 1.6 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_DEVICE_H
@ -22,9 +22,7 @@ private:
const cChannel *m_Channel;
cTSBuffer *m_TSBuffer;
cStreamdevAssembler *m_Assembler;
#if VDRVERSNUM >= 10307
cStreamdevFilters *m_Filters;
#endif
int m_Pids;
bool m_DvrClosed;
@ -47,9 +45,7 @@ protected:
virtual void CloseDvr(void);
virtual bool GetTSPacket(uchar *&Data);
#if VDRVERSNUM >= 10300
virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask);
#endif
public:
cStreamdevDevice(void);

View File

@ -1,5 +1,5 @@
/*
* $Id: filter.c,v 1.11 2007/04/24 11:23:16 schmirl Exp $
* $Id: filter.c,v 1.12 2008/04/07 14:27:28 schmirl Exp $
*/
#include "client/filter.h"
@ -9,8 +9,6 @@
#include <vdr/device.h>
#if VDRVERSNUM >= 10300
// --- cStreamdevFilter ------------------------------------------------------
class cStreamdevFilter: public cListObject {
@ -290,5 +288,3 @@ void cStreamdevFilters::Action(void) {
DELETENULL(m_TSBuffer);
dsyslog("StreamdevFilters::Action() ended");
}
#endif // VDRVERSNUM >= 10300

View File

@ -1,14 +1,11 @@
/*
* $Id: filter.h,v 1.4 2007/04/24 11:23:16 schmirl Exp $
* $Id: filter.h,v 1.5 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_FILTER_H
#define VDR_STREAMDEV_FILTER_H
#include <vdr/config.h>
# if VDRVERSNUM >= 10300
#include <vdr/tools.h>
#include <vdr/thread.h>
@ -33,5 +30,4 @@ public:
int OpenFilter(u_short Pid, u_char Tid, u_char Mask);
};
# endif // VDRVERSNUM >= 10300
#endif // VDR_STREAMDEV_FILTER_H

View File

@ -1,5 +1,5 @@
/*
* $Id: menu.c,v 1.4 2005/03/12 12:54:19 lordjaxom Exp $
* $Id: menu.c,v 1.5 2008/04/07 14:27:28 schmirl Exp $
*/
#include <vdr/menuitems.h>
@ -53,54 +53,6 @@ void cStreamdevMenu::SuspendServer(void) {
ERROR(tr("Couldn't suspend Server!"));
}
#if VDRVERSNUM < 10307
// --- cMenuEditChanItem -----------------------------------------------------
class cMenuEditChanItem : public cMenuEditIntItem {
protected:
virtual void Set(void);
public:
cMenuEditChanItem(const char *Name, int *Value);
virtual eOSState ProcessKey(eKeys Key);
};
// --- cMenuEditDateItem -----------------------------------------------------
class cMenuEditDateItem : public cMenuEditItem {
protected:
time_t *value;
virtual void Set(void);
public:
cMenuEditDateItem(const char *Name, time_t *Value);
virtual eOSState ProcessKey(eKeys Key);
};
// --- cMenuEditDayItem ------------------------------------------------------
class cMenuEditDayItem : public cMenuEditIntItem {
protected:
static int days[];
int d;
virtual void Set(void);
public:
cMenuEditDayItem(const char *Name, int *Value);
virtual eOSState ProcessKey(eKeys Key);
};
// --- cMenuEditTimeItem -----------------------------------------------------
class cMenuEditTimeItem : public cMenuEditItem {
protected:
int *value;
int hh, mm;
int pos;
virtual void Set(void);
public:
cMenuEditTimeItem(const char *Name, int *Value);
virtual eOSState ProcessKey(eKeys Key);
};
#endif // VDRVERSNUM < 10307
// --- cStreamdevMenuEditTimer -----------------------------------------------
class cStreamdevMenuEditTimer : public cOsdMenu {
@ -132,18 +84,12 @@ cStreamdevMenuEditTimer::cStreamdevMenuEditTimer(cRemoteTimer *Timer, bool New):
if (New)
m_Data.m_Active = 1;
m_Channel = m_Data.Channel()->Number();
#if VDRVERSNUM < 10300
Add(new cMenuEditBoolItem(tr("Active"), &m_Data.m_Active));
#else
Add(new cMenuEditBitItem( tr("Active"), &m_Data.m_Active, tfActive));
#endif
Add(new cMenuEditChanItem(tr("Channel"), &m_Channel));
Add(new cMenuEditDayItem( tr("Day"), &m_Data.m_Day));
Add(new cMenuEditTimeItem(tr("Start"), &m_Data.m_Start));
Add(new cMenuEditTimeItem(tr("Stop"), &m_Data.m_Stop));
#if VDRVERSNUM >= 10300
Add(new cMenuEditBitItem( tr("VPS"), &m_Data.m_Active, tfVps));
#endif
Add(new cMenuEditIntItem( tr("Priority"), &m_Data.m_Priority, 0,
MAXPRIORITY));
Add(new cMenuEditIntItem( tr("Lifetime"), &m_Data.m_Lifetime, 0,
@ -227,54 +173,15 @@ eOSState cStreamdevMenuEditTimer::ProcessKey(eKeys Key) {
// --- cMenuWhatsOnItem ------------------------------------------------------
#if VDRVERSNUM < 10300
class cMenuWhatsOnItem : public cOsdItem {
public:
const cEventInfo *eventInfo;
# ifdef HAVE_BEAUTYPATCH
cMenuWhatsOnItem(const cEventInfo *EventInfo, bool ShowProgressBar);
~cMenuWhatsOnItem();
virtual void Display(int Offset= -1, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBackground);
protected:
cBitmap *progressBar;
bool showProgressBar;
float percent;
private:
void DrawProgressBar(eDvbColor FgColor, eDvbColor BgColor);
# else
cMenuWhatsOnItem(const cEventInfo *EventInfo);
# endif
};
#else
class cMenuWhatsOnItem : public cOsdItem {
public:
const cEvent *event;
const cChannel *channel;
cMenuWhatsOnItem(const cEvent *Event, cChannel *Channel); //, bool Now = false);
};
#endif
// --- cMenuEvent ------------------------------------------------------------
#if VDRVERSNUM < 10300
class cMenuEvent : public cOsdMenu {
private:
const cEventInfo *eventInfo;
public:
cMenuEvent(const cEventInfo *EventInfo, bool CanSwitch = false);
cMenuEvent(bool Now);
virtual eOSState ProcessKey(eKeys Key);
};
#elif VDRVERSNUM < 10307
class cMenuEvent : public cOsdMenu {
private:
const cEvent *event;
public:
cMenuEvent(const cEvent *Event, bool CanSwitch = false);
cMenuEvent(bool Now);
virtual eOSState ProcessKey(eKeys Key);
};
#else
class cMenuEvent : public cOsdMenu {
private:
const cEvent *event;
@ -283,58 +190,16 @@ public:
virtual void Display(void);
virtual eOSState ProcessKey(eKeys Key);
};
#endif
// --- cStreamdevMenuWhatsOn -------------------------------------------------
int cStreamdevMenuWhatsOn::m_CurrentChannel = 0;
#if VDRVERSNUM < 10300
const cEventInfo *cStreamdevMenuWhatsOn::m_ScheduleEventInfo = NULL;
#else
const cEvent *cStreamdevMenuWhatsOn::m_ScheduleEventInfo = NULL;
#endif
#if VDRVERSNUM < 10300
static int CompareEventChannel(const void *p1, const void *p2) {
return (int)((*(const cEventInfo**)p1)->GetChannelNumber()
- (*(const cEventInfo**)p2)->GetChannelNumber());
}
#endif
cStreamdevMenuWhatsOn::cStreamdevMenuWhatsOn(const cSchedules *Schedules,
bool Now, int CurrentChannel):
cOsdMenu(Now ? tr("What's on now?") : tr("What's on next?"), CHNUMWIDTH,
7, 6) {
#if VDRVERSNUM < 10300
const cSchedule *Schedule = Schedules->First();
const cEventInfo **pArray = NULL;
int num = 0;
while (Schedule) {
pArray=(const cEventInfo**)realloc(pArray, (num + 1) * sizeof(cEventInfo*));
pArray[num] = Now ? Schedule->GetPresentEvent()
: Schedule->GetFollowingEvent();
if (pArray[num]) {
cChannel *channel
= Channels.GetByChannelID(pArray[num]->GetChannelID(), true);
if (channel)
pArray[num++]->SetChannelNumber(channel->Number());
}
Schedule = Schedules->Next(Schedule);
}
qsort(pArray, num, sizeof(cEventInfo*), CompareEventChannel);
for (int a = 0; a < num; ++a) {
int channelnr = pArray[a]->GetChannelNumber();
# ifdef HAVE_BEAUTYPATCH
Add(new cMenuWhatsOnItem(pArray[a],Now), channelnr == CurrentChannel);
# else
Add(new cMenuWhatsOnItem(pArray[a]), channelnr == CurrentChannel);
# endif
}
free(pArray);
#else
for (cChannel *Channel = Channels.First(); Channel;
Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep()) {
@ -349,35 +214,22 @@ cStreamdevMenuWhatsOn::cStreamdevMenuWhatsOn(const cSchedules *Schedules,
}
}
}
#endif
m_CurrentChannel = CurrentChannel;
SetHelp(Count() ? tr("Record") : NULL, Now ? tr("Next") : tr("Now"),
tr("Schedule"), tr("Switch"));
}
#if VDRVERSNUM < 10300
const cEventInfo *cStreamdevMenuWhatsOn::ScheduleEventInfo(void) {
const cEventInfo *ei = m_ScheduleEventInfo;
m_ScheduleEventInfo = NULL;
return ei;
}
#else
const cEvent *cStreamdevMenuWhatsOn::ScheduleEventInfo(void) {
const cEvent *ei = m_ScheduleEventInfo;
m_ScheduleEventInfo = NULL;
return ei;
}
#endif
eOSState cStreamdevMenuWhatsOn::Switch(void) {
cMenuWhatsOnItem *item = (cMenuWhatsOnItem*)Get(Current());
if (item) {
cChannel *channel
#if VDRVERSNUM < 10300
= Channels.GetByChannelID(item->eventInfo->GetChannelID(), true);
#else
= Channels.GetByChannelID(item->event->ChannelID(), true);
#endif
if (channel && cDevice::PrimaryDevice()->SwitchChannel(channel, true))
return osEnd;
}
@ -389,11 +241,7 @@ eOSState cStreamdevMenuWhatsOn::Record(void) {
cMenuWhatsOnItem *item = (cMenuWhatsOnItem*)Get(Current());
if (item) {
cRemoteTimer *timer
#if VDRVERSNUM < 10300
= new cRemoteTimer(item->eventInfo);
#else
= new cRemoteTimer(item->event);
#endif
return AddSubMenu(new cStreamdevMenuEditTimer(timer));
// Load remote timers and see if timer exists before editing
}
@ -414,13 +262,8 @@ eOSState cStreamdevMenuWhatsOn::ProcessKey(eKeys Key) {
{
cMenuWhatsOnItem *mi = (cMenuWhatsOnItem*)Get(Current());
if (mi) {
#if VDRVERSNUM < 10300
m_ScheduleEventInfo = mi->eventInfo;
m_CurrentChannel = mi->eventInfo->GetChannelNumber();
#else
m_ScheduleEventInfo = mi->event;
m_CurrentChannel = mi->channel->Number();
#endif
}
}
break;
@ -430,13 +273,8 @@ eOSState cStreamdevMenuWhatsOn::ProcessKey(eKeys Key) {
case kOk:
if (Count())
#if VDRVERSNUM < 10300
return AddSubMenu(new cMenuEvent(
((cMenuWhatsOnItem*)Get(Current()))->eventInfo, true));
#else
return AddSubMenu(new cMenuEvent(
((cMenuWhatsOnItem*)Get(Current()))->event, true));
#endif
break;
default:
@ -448,28 +286,16 @@ eOSState cStreamdevMenuWhatsOn::ProcessKey(eKeys Key) {
// --- cMenuScheduleItem -----------------------------------------------------
#if VDRVERSNUM < 10300
class cMenuScheduleItem : public cOsdItem {
public:
const cEventInfo *eventInfo;
cMenuScheduleItem(const cEventInfo *EventInfo);
};
#else
class cMenuScheduleItem : public cOsdItem {
public:
const cEvent *event;
cMenuScheduleItem(const cEvent *Event);
};
#endif
// --- cStreamdevMenuSchedule ------------------------------------------------
cStreamdevMenuSchedule::cStreamdevMenuSchedule(void):
#if VDRVERSNUM < 10300
cOsdMenu("", 6, 6)
#else
cOsdMenu("", 7, 6, 4)
#endif
{
m_Now = false;
m_Next = false;
@ -478,11 +304,7 @@ cStreamdevMenuSchedule::cStreamdevMenuSchedule(void):
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
#if VDRVERSNUM < 10300
m_Schedules = cSIProcessor::Schedules(m_Lock);
#else
m_Schedules = cSchedules::Schedules(m_Lock);
#endif
PrepareSchedule(channel);
SetHelp(Count() ? tr("Record") : NULL, tr("Now"), tr("Next"));
}
@ -491,46 +313,7 @@ cStreamdevMenuSchedule::cStreamdevMenuSchedule(void):
cStreamdevMenuSchedule::~cStreamdevMenuSchedule() {
}
#if VDRVERSNUM < 10307
static int CompareEventTime(const void *p1, const void *p2) {
#if VDRVERSNUM < 10300
return (int)((*(cEventInfo **)p1)->GetTime()
- (*(cEventInfo **)p2)->GetTime());
#else
return (int)((*(cEvent**)p1)->StartTime()
- (*(cEvent**)p2)->StartTime());
#endif
}
#endif
void cStreamdevMenuSchedule::PrepareSchedule(cChannel *Channel) {
#if VDRVERSNUM < 10300
cTBString buffer;
Clear();
buffer.Format(tr("Schedule - %s"), Channel->Name());
SetTitle(buffer);
if (m_Schedules) {
const cSchedule *Schedule=m_Schedules->GetSchedule(Channel->GetChannelID());
if (Schedule) {
int num = Schedule->NumEvents();
const cEventInfo **pArray = MALLOC(const cEventInfo*, num);
if (pArray) {
time_t now = time(NULL);
int numreal = 0;
for (int a = 0; a < num; ++a) {
const cEventInfo *EventInfo = Schedule->GetEventNumber(a);
if (EventInfo->GetTime() + EventInfo->GetDuration() > now)
pArray[numreal++] = EventInfo;
}
qsort(pArray, numreal, sizeof(cEventInfo*), CompareEventTime);
for (int a = 0; a < numreal; ++a)
Add(new cMenuScheduleItem(pArray[a]));
free(pArray);
}
}
}
#else
Clear();
char *buffer = NULL;
asprintf(&buffer, tr("Schedule - %s"), Channel->Name());
@ -547,7 +330,6 @@ void cStreamdevMenuSchedule::PrepareSchedule(cChannel *Channel) {
}
}
}
#endif
}
eOSState cStreamdevMenuSchedule::Switch(void) {
@ -563,11 +345,7 @@ eOSState cStreamdevMenuSchedule::Record(void) {
cMenuScheduleItem *item = (cMenuScheduleItem*)Get(Current());
if (item) {
cRemoteTimer *timer
#if VDRVERSNUM < 10300
= new cRemoteTimer(item->eventInfo);
#else
= new cRemoteTimer(item->event);
#endif
return AddSubMenu(new cStreamdevMenuEditTimer(timer));
// Load remote timers and see if timer exists before editing
}
@ -588,14 +366,8 @@ eOSState cStreamdevMenuSchedule::ProcessKey(eKeys Key) {
int channelnr = 0;
if (Count()) {
cChannel *channel
#if VDRVERSNUM < 10300
= Channels.GetByChannelID(
((cMenuScheduleItem*)Get(Current()))->eventInfo->GetChannelID(),
true);
#else
= Channels.GetByChannelID(
((cMenuScheduleItem*)Get(Current()))->event->ChannelID(), true);
#endif
if (channel)
channelnr = channel->Number();
}
@ -622,13 +394,8 @@ eOSState cStreamdevMenuSchedule::ProcessKey(eKeys Key) {
case kOk:
if (Count())
#if VDRVERSNUM < 10300
return AddSubMenu(new cMenuEvent(
((cMenuScheduleItem*)Get(Current()))->eventInfo, m_OtherChannel));
#else
return AddSubMenu(new cMenuEvent(
((cMenuScheduleItem*)Get(Current()))->event, m_OtherChannel));
#endif
break;
default:
@ -637,19 +404,11 @@ eOSState cStreamdevMenuSchedule::ProcessKey(eKeys Key) {
} else if (!HasSubMenu()) {
m_Now = false;
m_Next = false;
#if VDRVERSNUM < 10300
const cEventInfo *ei
#else
const cEvent *ei
#endif
= cStreamdevMenuWhatsOn::ScheduleEventInfo();
if (ei) {
cChannel *channel
#if VDRVERSNUM < 10300
= Channels.GetByChannelID(ei->GetChannelID(), true);
#else
= Channels.GetByChannelID(ei->ChannelID(), true);
#endif
if (channel) {
PrepareSchedule(channel);
if (channel->Number() != cDevice::CurrentChannel()) {
@ -753,10 +512,8 @@ cStreamdevMenuRecordings::cStreamdevMenuRecordings(const char *Base, int Level,
return;
}
#if VDRVERSNUM >= 10307
STATUS(NULL);
FLUSH();
#endif
SetHelpKeys();
}

View File

@ -1,5 +1,5 @@
/*
* $Id: menu.h,v 1.1 2004/12/30 22:44:02 lordjaxom Exp $
* $Id: menu.h,v 1.2 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_MENU_H
@ -42,11 +42,7 @@ private:
bool m_Next;
int m_OtherChannel;
const cSchedules *m_Schedules;
#if VDRVERSNUM < 10300
cMutexLock m_Lock;
#else
cSchedulesLock m_Lock;
#endif
protected:
void PrepareSchedule(cChannel *Channel);
@ -66,11 +62,7 @@ public:
class cStreamdevMenuWhatsOn: public cOsdMenu {
private:
static int m_CurrentChannel;
#if VDRVERSNUM < 10300
static const cEventInfo *m_ScheduleEventInfo;
#else
static const cEvent *m_ScheduleEventInfo;
#endif
protected:
eOSState Switch(void);
@ -82,11 +74,7 @@ public:
static int CurrentChannel(void) { return m_CurrentChannel; }
static void SetCurrentChannel(int Channel) { m_CurrentChannel = Channel; }
#if VDRVERSNUM < 10300
static const cEventInfo *ScheduleEventInfo(void);
#else
static const cEvent *ScheduleEventInfo(void);
#endif
virtual eOSState ProcessKey(eKeys Key);
};

View File

@ -1,5 +1,5 @@
/*
* $Id: remote.c,v 1.4 2005/04/24 16:26:14 lordjaxom Exp $
* $Id: remote.c,v 1.5 2008/04/07 14:27:28 schmirl Exp $
*/
#include <ctype.h>
@ -196,16 +196,6 @@ cRemoteTimer::cRemoteTimer(const char *Text) {
m_IsValid = true;
}
#if VDRVERSNUM < 10300
cRemoteTimer::cRemoteTimer(const cEventInfo *EventInfo) {
time_t tstart = EventInfo->GetTime();
time_t tstop = tstart + EventInfo->GetDuration() + Setup.MarginStop * 60;
tstart -= Setup.MarginStart * 60;
struct tm tm_r;
struct tm *time = localtime_r(&tstart, &tm_r);
const char *title = EventInfo->GetTitle();
cChannel *channel = Channels.GetByChannelID(EventInfo->GetChannelID(), true);
#else
cRemoteTimer::cRemoteTimer(const cEvent *Event) {
time_t tstart = Event->StartTime();
time_t tstop = tstart + Event->Duration() + Setup.MarginStop * 60;
@ -214,7 +204,6 @@ cRemoteTimer::cRemoteTimer(const cEvent *Event) {
struct tm *time = localtime_r(&tstart, &tm_r);
const char *title = Event->Title();
cChannel *channel = Channels.GetByChannelID(Event->ChannelID(), true);
#endif
m_IsValid = true;
m_Index = -1;

View File

@ -1,5 +1,5 @@
/*
* $Id: remote.h,v 1.2 2005/02/08 17:22:35 lordjaxom Exp $
* $Id: remote.h,v 1.3 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_REMOTE_H
@ -8,11 +8,7 @@
#include <vdr/config.h>
#include <string>
#if VDRVERSNUM < 10300
class cEventInfo;
#else
class cEvent;
#endif
class cChannel;
class cRemoteRecording: public cListObject {
@ -76,11 +72,7 @@ private:
public:
cRemoteTimer(const char *Text);
#if VDRVERSNUM < 10300
cRemoteTimer(const cEventInfo *EventInfo);
#else
cRemoteTimer(const cEvent *Event);
#endif
cRemoteTimer(void);
~cRemoteTimer();

View File

@ -1,5 +1,5 @@
/*
* $Id: setup.c,v 1.2 2005/02/08 15:34:38 lordjaxom Exp $
* $Id: setup.c,v 1.3 2008/04/07 14:27:28 schmirl Exp $
*/
#include <vdr/menuitems.h>
@ -13,9 +13,7 @@ cStreamdevClientSetup StreamdevClientSetup;
cStreamdevClientSetup::cStreamdevClientSetup(void) {
StartClient = false;
RemotePort = 2004;
#if VDRVERSNUM >= 10300
StreamFilters = false;
#endif
SyncEPG = false;
strcpy(RemoteIp, "");
}
@ -29,9 +27,7 @@ bool cStreamdevClientSetup::SetupParse(const char *Name, const char *Value) {
strcpy(RemoteIp, Value);
}
else if (strcmp(Name, "RemotePort") == 0) RemotePort = atoi(Value);
#if VDRVERSNUM >= 10300
else if (strcmp(Name, "StreamFilters") == 0) StreamFilters = atoi(Value);
#endif
else if (strcmp(Name, "SyncEPG") == 0) SyncEPG = atoi(Value);
else return false;
return true;
@ -43,9 +39,7 @@ cStreamdevClientMenuSetupPage::cStreamdevClientMenuSetupPage(void) {
AddBoolEdit (tr("Start Client"), m_NewSetup.StartClient);
AddIpEdit (tr("Remote IP"), m_NewSetup.RemoteIp);
AddShortEdit(tr("Remote Port"), m_NewSetup.RemotePort);
#if VDRVERSNUM >= 10300
AddBoolEdit (tr("Filter Streaming"), m_NewSetup.StreamFilters);
#endif
AddBoolEdit (tr("Synchronize EPG"), m_NewSetup.SyncEPG);
SetCurrent(Get(0));
}
@ -67,9 +61,7 @@ void cStreamdevClientMenuSetupPage::Store(void) {
else
SetupStore("RemoteIp", m_NewSetup.RemoteIp);
SetupStore("RemotePort", m_NewSetup.RemotePort);
#if VDRVERSNUM >= 10300
SetupStore("StreamFilters", m_NewSetup.StreamFilters);
#endif
SetupStore("SyncEPG", m_NewSetup.SyncEPG);
StreamdevClientSetup = m_NewSetup;

View File

@ -1,5 +1,5 @@
/*
* $Id: setup.h,v 1.2 2005/02/08 15:34:38 lordjaxom Exp $
* $Id: setup.h,v 1.3 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_SETUPCLIENT_H
@ -15,9 +15,7 @@ struct cStreamdevClientSetup {
int StartClient;
char RemoteIp[20];
int RemotePort;
#if VDRVERSNUM >= 10300
int StreamFilters;
#endif
int SyncEPG;
};

View File

@ -1,5 +1,5 @@
/*
* $Id: socket.c,v 1.9 2008/03/13 16:01:17 schmirl Exp $
* $Id: socket.c,v 1.10 2008/04/07 14:27:28 schmirl Exp $
*/
#include <tools/select.h>
@ -141,10 +141,8 @@ bool cClientSocket::CheckConnection(void) {
}
const char *Filters = "";
#if VDRVERSNUM >= 10300
if(Command("CAPS FILTERS", 220))
Filters = ",FILTERS";
#endif
isyslog("Streamdev: Connected to server %s:%d using capabilities TSPIDS%s",
RemoteIp().c_str(), RemotePort(), Filters);
@ -270,7 +268,6 @@ bool cClientSocket::SetPid(int Pid, bool On) {
return true;
}
#if VDRVERSNUM >= 10300
bool cClientSocket::SetFilter(ushort Pid, uchar Tid, uchar Mask, bool On) {
if (!CheckConnection()) return false;
@ -286,7 +283,6 @@ bool cClientSocket::SetFilter(ushort Pid, uchar Tid, uchar Mask, bool On) {
}
return true;
}
#endif
bool cClientSocket::CloseDvr(void) {
if (!CheckConnection()) return false;
@ -342,11 +338,7 @@ bool cClientSocket::SynchronizeEPG(void) {
rewind(epgfd);
if (cSchedules::Read(epgfd))
#if VDRVERSNUM < 10300
cSIProcessor::TriggerDump();
#else
cSchedules::Cleanup(true);
#endif
else {
esyslog("ERROR: Streamdev: Parsing EPG data failed");
fclose(epgfd);

View File

@ -1,5 +1,5 @@
/*
* $Id: socket.h,v 1.4 2007/04/24 10:57:34 schmirl Exp $
* $Id: socket.h,v 1.5 2008/04/07 14:27:28 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_CLIENT_CONNECTION_H
@ -50,9 +50,7 @@ public:
bool CloseDataConnection(eSocketId Id);
bool SetChannelDevice(const cChannel *Channel);
bool SetPid(int Pid, bool On);
#if VDRVERSNUM >= 10300
bool SetFilter(ushort Pid, uchar Tid, uchar Mask, bool On);
#endif
bool CloseDvr(void);
bool SynchronizeEPG(void);
bool LoadRecordings(cRemoteRecordings &Recordings);

View File

@ -1,5 +1,5 @@
/*
* $Id: common.c,v 1.6 2008/03/31 10:34:26 schmirl Exp $
* $Id: common.c,v 1.7 2008/04/07 14:27:27 schmirl Exp $
*/
#include <vdr/channels.h>
@ -11,7 +11,7 @@
using namespace std;
const char *VERSION = "0.3.4-CVS";
const char *VERSION = "0.4.0-pre";
const char *StreamTypes[st_Count] = {
"TS",
@ -113,16 +113,7 @@ void cStreamdevMenuSetupPage::AddCategory(const char *Title) {
cOsdItem *item = new cOsdItem(buffer);
free(buffer);
#if VDRVERSNUM < 10307
# ifdef HAVE_BEAUTYPATCH
item->SetColor(clrScrolLine, clrBackground);
# else
item->SetColor(clrCyan, clrBackground);
# endif
#else
item->SetSelectable(false);
#endif
Add(item);
}

View File

@ -1,5 +1,5 @@
/*
* $Id: common.h,v 1.9 2008/03/12 09:36:27 schmirl Exp $
* $Id: common.h,v 1.10 2008/04/07 14:27:27 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_COMMON_H
@ -23,27 +23,14 @@
# define Dprintf(x...)
#endif
#if VDRVERSNUM < 10300
# define TRANSPONDER(c1, c2) (ISTRANSPONDER(c1->Frequency(), c2->Frequency()))
#else
# define TRANSPONDER(c1, c2) (c1->Transponder() == c2->Transponder())
#endif
#if VDRVERSNUM < 10307
# define INFO(s) Interface->Info(s)
# define STATUS(s) Interface->Status(s)
# define ERROR(s) Interface->Status(s)
# define FLUSH() Interface->Flush()
#else
# define INFO(s) Skins.Message(mtInfo, s)
# define STATUS(s) Skins.Message(mtInfo, s)
# define ERROR(s) Skins.Message(mtStatus, s)
# define FLUSH() Skins.Flush()
#endif
#if VDRVERSNUM >= 10336
# define MAXPARSEBUFFER KILOBYTE(16)
#endif
/* Check if a channel is a radio station. */
#define ISRADIO(x) ((x)->Vpid()==0||(x)->Vpid()==1||(x)->Vpid()==0x1fff)

84
i18n.c
View File

@ -1,5 +1,5 @@
/*
* $Id: i18n.c,v 1.5 2006/08/17 09:26:00 thomas Exp $
* $Id: i18n.c,v 1.6 2008/04/07 14:27:27 schmirl Exp $
*/
#include "i18n.h"
@ -23,9 +23,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "VTP Streaming Client", // English
"VTP Streaming Client", // Deutsch
@ -43,9 +41,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Start VDR-to-VDR Server",// English
"VDR-zu-VDR Server starten",// Deutsch
@ -63,9 +59,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Start HTTP Server", // English
"HTTP Server starten", // Deutsch
@ -83,9 +77,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "HTTP Streamtype", // English
"HTTP Streamtyp", // Deutsch
@ -103,9 +95,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Start Client", // English
"Client starten", // Deutsch
@ -123,9 +113,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "VDR-to-VDR Server Port",// English
"Port des VDR-zu-VDR Servers",// Deutsch
@ -143,9 +131,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "HTTP Server Port", // English
"Port des HTTP Servers",// Deutsch
@ -163,9 +149,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Maximum Number of Clients",// English
"Maximalanzahl an Clients",// Deutsch
@ -183,9 +167,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote IP", // English
"IP der Gegenseite", // Deutsch
@ -203,9 +185,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote Port", // English
"Port der Gegenseite", // Deutsch
@ -223,9 +203,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote Streamtype", // English
"Streamtyp von Gegenseite",// Deutsch
@ -243,9 +221,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Common Settings", // English
"Allgemeines", // Deutsch
@ -263,9 +239,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "VDR-to-VDR Server", // English
"VDR-zu-VDR Server", // Deutsch
@ -283,9 +257,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "HTTP Server", // English
"HTTP Server", // Deutsch
@ -303,9 +275,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "VDR-to-VDR Client", // English
"VDR-zu-VDR Client", // Deutsch
@ -323,9 +293,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Please restart VDR to activate changes",// English
"Bitte starten Sie für die Änderungen VDR neu",// Deutsch
@ -343,9 +311,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Synchronize EPG", // English
"EPG synchronisieren", // Deutsch
@ -363,9 +329,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Suspend Live TV", // English
"Live-TV pausieren", // Deutsch
@ -383,9 +347,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Suspend behaviour", // English
"Pausierverhalten", // Deutsch
@ -403,9 +365,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Offer suspend mode", // English
"Pausieren anbieten", // Deutsch
@ -423,9 +383,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Always suspended", // English
"Immer pausiert", // Deutsch
@ -443,9 +401,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Never suspended", // English
"Nie pausiert", // Deutsch
@ -463,9 +419,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Streaming Control", // English
"Streamkontrolle", // Deutsch
@ -483,9 +437,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Fetching recordings...",// English
"Hole Aufnahmen...", // Deutsch
@ -503,9 +455,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote Recordings", // English
"Entfernte Aufnahmen", // Deutsch
@ -523,9 +473,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote Timers", // English
"Entfernte Timer", // Deutsch
@ -543,9 +491,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Suspend Server", // English
"Server pausieren", // Deutsch
@ -563,9 +509,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Server is suspended", // English
"Server ist pausiert", // Deutsch
@ -583,9 +527,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Couldn't suspend Server!",// English
"Konnte Server nicht pausieren!",// Deutsch
@ -603,9 +545,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Edit remote timer", // English
"Entfernten Timer editieren",// Deutsch
@ -623,9 +563,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Timers not in sync! Try again...",// Englisch
"Timer nicht synchron! Bitte wiederholen...",//Deutsch
@ -643,9 +581,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Couldn't save timer! Try again...",// English
"Konnte Timer nicht speichern! Bitte wiederholen...",// Deutsch
@ -663,9 +599,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Couldn't delete timer! Try again...",// English
"Konnte Timer nicht löschen! Bitte wiederholen...",// Deutsch
@ -683,9 +617,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Server error! Try again...",// English
"Serverfehler! Bitte wiederholen...",// Deutsch
@ -703,9 +635,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "MultiPID Streaming", // English
"Multiple PIDs streamen",// Deutsch
@ -723,9 +653,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Client may suspend", // English
"Client darf pausieren",// Deutsch
@ -743,9 +671,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Bind to IP", // English
"",// Deutsch
@ -763,9 +689,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Remote Schedule", // English
"",// Deutsch
@ -783,9 +707,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Filter Streaming", // English
"",// Deutsch
@ -803,9 +725,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ "Streaming active", // English
"Streamen im Gange",// Deutsch
@ -823,9 +743,7 @@ const tI18nPhrase Phrases[] = {
"", // Romaneste
"", // Magyar
"", // Catala
#if VDRVERSNUM >= 10300
"" // Russian
#endif
},
{ NULL }
};

View File

@ -1,29 +0,0 @@
--- vdr-vanilla/thread.c 2003-10-10 18:19:15.000000000 +0200
+++ vdr-vanilla-thread/thread.c 2003-10-10 18:43:36.000000000 +0200
@@ -158,12 +158,21 @@
bool cThread::Active(void)
{
- if (threadPid) {
- if (kill(threadPid, SIGIO) < 0) { // couldn't find another way of checking whether the thread is still running - any ideas?
- if (errno == ESRCH)
- threadPid = 0;
- else
+ if (thread) {
+ /*
+ * Single UNIX Spec v2 says:
+ *
+ * The pthread_kill() function is used to request
+ * that a signal be delivered to the specified thread.
+ *
+ * As in kill(), if sig is zero, error checking is
+ * performed but no signal is actually sent.
+ */
+ int err;
+ if ((err = pthread_kill(thread, 0)) != 0) {
+ if (err != ESRCH)
LOG_ERROR;
+ thread = 0;
}
else
return true;

View File

@ -1,61 +0,0 @@
diff -u vdr-1.3.11/config.c vdr-1.3.11.LocalChannelProvide/config.c
--- vdr-1.3.11/config.c 2004-05-16 14:43:55.000000000 +0200
+++ vdr-1.3.11.LocalChannelProvide/config.c 2004-08-29 17:55:59.000000000 +0200
@@ -297,6 +297,7 @@
ResumeID = 0;
CurrentChannel = -1;
CurrentVolume = MAXVOLUME;
+ LocalChannelProvide = 1;
}
cSetup& cSetup::operator= (const cSetup &s)
@@ -450,6 +451,7 @@
else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value);
else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
+ else if (!strcasecmp(Name, "LocalChannelProvide")) LocalChannelProvide = atoi(Value);
else
return false;
return true;
@@ -510,6 +512,7 @@
Store("ResumeID", ResumeID);
Store("CurrentChannel", CurrentChannel);
Store("CurrentVolume", CurrentVolume);
+ Store("LocalChannelProvide",LocalChannelProvide);
Sort();
diff -u vdr-1.3.11/config.h vdr-1.3.11.LocalChannelProvide/config.h
--- vdr-1.3.11/config.h 2004-06-10 15:18:50.000000000 +0200
+++ vdr-1.3.11.LocalChannelProvide/config.h 2004-08-29 17:47:32.000000000 +0200
@@ -251,6 +251,7 @@
int ResumeID;
int CurrentChannel;
int CurrentVolume;
+ int LocalChannelProvide;
int __EndData__;
cSetup(void);
cSetup& operator= (const cSetup &s);
diff -u vdr-1.3.11/dvbdevice.c vdr-1.3.11.LocalChannelProvide/dvbdevice.c
--- vdr-1.3.11/dvbdevice.c 2004-06-19 11:33:42.000000000 +0200
+++ vdr-1.3.11.LocalChannelProvide/dvbdevice.c 2004-08-29 18:00:37.000000000 +0200
@@ -674,6 +674,8 @@
bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const
{
+ if (Setup.LocalChannelProvide != 1)
+ return false;
bool result = false;
bool hasPriority = Priority < 0 || Priority > this->Priority();
bool needsDetachReceivers = false;
diff -u vdr-1.3.11/menu.c vdr-1.3.11.LocalChannelProvide/menu.c
--- vdr-1.3.11/menu.c 2004-06-13 22:26:51.000000000 +0200
+++ vdr-1.3.11.LocalChannelProvide/menu.c 2004-08-29 17:52:31.000000000 +0200
@@ -1878,6 +1878,7 @@
Add(new cMenuEditIntItem( tr("Setup.DVB$Primary DVB interface"), &data.PrimaryDVB, 1, cDevice::NumDevices()));
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"), &data.UpdateChannels, 5, updateChannelsTexts));
+ Add(new cMenuEditBoolItem(tr("Channels available locally"), &data.LocalChannelProvide));
}
eOSState cMenuSetupDVB::ProcessKey(eKeys Key)

View File

@ -1,93 +0,0 @@
diff -Nu vdr-1.3.24/config.c vdr-1.3.24.LocalChannelProvide/config.c
--- vdr-1.3.24/config.c 2005-02-20 13:52:59.000000000 +0100
+++ vdr-1.3.24.LocalChannelProvide/config.c 2005-05-12 19:23:58.000000000 +0200
@@ -301,6 +301,7 @@
CurrentChannel = -1;
CurrentVolume = MAXVOLUME;
CurrentDolby = 0;
+ LocalChannelProvide = 1;
}
cSetup& cSetup::operator= (const cSetup &s)
@@ -458,6 +459,7 @@
else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
else if (!strcasecmp(Name, "CurrentDolby")) CurrentDolby = atoi(Value);
+ else if (!strcasecmp(Name, "LocalChannelProvide")) LocalChannelProvide = atoi(Value);
else
return false;
return true;
@@ -522,6 +524,7 @@
Store("CurrentChannel", CurrentChannel);
Store("CurrentVolume", CurrentVolume);
Store("CurrentDolby", CurrentDolby);
+ Store("LocalChannelProvide",LocalChannelProvide);
Sort();
diff -Nu vdr-1.3.24/config.h vdr-1.3.24.LocalChannelProvide/config.h
--- vdr-1.3.24/config.h 2005-05-05 13:04:18.000000000 +0200
+++ vdr-1.3.24.LocalChannelProvide/config.h 2005-05-12 19:24:31.000000000 +0200
@@ -255,6 +255,7 @@
int CurrentChannel;
int CurrentVolume;
int CurrentDolby;
+ int LocalChannelProvide;
int __EndData__;
cSetup(void);
cSetup& operator= (const cSetup &s);
diff -Nu vdr-1.3.24/dvbdevice.c vdr-1.3.24.LocalChannelProvide/dvbdevice.c
--- vdr-1.3.24/dvbdevice.c 2005-03-20 11:10:38.000000000 +0100
+++ vdr-1.3.24.LocalChannelProvide/dvbdevice.c 2005-05-12 19:19:29.000000000 +0200
@@ -746,6 +746,8 @@
bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const
{
+ if (Setup.LocalChannelProvide != 1)
+ return false;
bool result = false;
bool hasPriority = Priority < 0 || Priority > this->Priority();
bool needsDetachReceivers = false;
diff -Nu vdr-1.3.24/i18n.c vdr-1.3.24.LocalChannelProvide/i18n.c
--- vdr-1.3.24/i18n.c 2005-05-05 15:12:54.000000000 +0200
+++ vdr-1.3.24.LocalChannelProvide/i18n.c 2005-05-12 19:30:50.000000000 +0200
@@ -5325,6 +5325,27 @@
"ST:TNG konsool",
"ST:TNG konsol",
},
+ { "Channels available locally",
+ "Kanäle lokal beziehen",
+ "",// TODO
+ "",
+ "",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",
+ "",
+ "",// TODO
+ "",// TODO
+ "",
+ "",
+ "",
+ "",
+ },
{ NULL }
};
diff -Nu vdr-1.3.24/menu.c vdr-1.3.24.LocalChannelProvide/menu.c
--- vdr-1.3.24/menu.c 2005-03-20 16:14:51.000000000 +0100
+++ vdr-1.3.24.LocalChannelProvide/menu.c 2005-05-12 19:26:57.000000000 +0200
@@ -1968,7 +1968,7 @@
Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"), &numAudioLanguages, 0, I18nNumLanguages));
for (int i = 0; i < numAudioLanguages; i++)
Add(new cMenuEditStraItem(tr("Setup.DVB$Audio language"), &data.AudioLanguages[i], I18nNumLanguages, I18nLanguages()));
-
+ Add(new cMenuEditBoolItem(tr("Channels available locally"), &data.LocalChannelProvide));
SetCurrent(Get(current));
Display();
}

View File

@ -1,22 +0,0 @@
--- vdr-1.3.6/sections.c 2004-02-07 17:51:57.000000000 +0200
+++ sections.c 2004-03-21 18:34:47.000000000 +0200
@@ -185,11 +185,17 @@
if (fh) {
// Read section data:
unsigned char buf[4096]; // max. allowed size for any EIT section
- int r = safe_read(fh->handle, buf, sizeof(buf));
+ struct stat statbuf;
+ int st = fstat(fh->handle, &statbuf);
+ int ispipe = (st == 0 && !S_ISCHR(statbuf.st_mode));
+ /*printf("ispipe %d\n", ispipe);*/
+ int r = safe_read(fh->handle, buf, ispipe ? 3 : sizeof(buf));
if (!DeviceHasLock)
continue; // we do the read anyway, to flush any data that might have come from a different transponder
- if (r > 3) { // minimum number of bytes necessary to get section length
+ if (r >= 3) { // minimum number of bytes necessary to get section length
int len = (((buf[1] & 0x0F) << 8) | (buf[2] & 0xFF)) + 3;
+ if (ispipe)
+ r += safe_read(fh->handle, buf+3, len-3);
if (len == r) {
// Distribute data to all attached filters:
int pid = fh->filterData.pid;

View File

@ -1,113 +0,0 @@
diff -Nru -x PLUGINS vdr-1.3.12-orig/i18n.c vdr-1.3.12/i18n.c
--- vdr-1.3.12-orig/i18n.c 2004-05-28 15:19:29.000000000 +0200
+++ vdr-1.3.12/i18n.c 2004-08-17 16:01:07.000000000 +0200
@@ -1033,8 +1033,8 @@
"´ÕÙáâÒØâÕÛìÝÞ ßÕàÕ×ÐßãáâØâì?",
"Zaista ponovo pokrenuti?",
},
- { "Recording - restart anyway?",
- "Aufnahme läuft - trotzdem neu starten?",
+ { "Busy - restart anyway?",
+ "Beschäftigt - trotzdem neu starten?",
"Snemanje - zares ponoven zagon?",
"In registrazione - restart comunque?",
"Opname loopt - toch opnieuw starten?",
@@ -1052,8 +1052,8 @@
"¸Ôñâ ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ßÕàÕ×ÐßãáâØâì?",
"Snimanje traje - svejedno restart sistema?",
},
- { "Recording - shut down anyway?",
- "Aufnahme läuft - trotzdem ausschalten?",
+ { "Busy - shut down anyway?",
+ "Beschäftigt - trotzdem ausschalten?",
"Snemanje - zares izklopi?",
"In registrazione - spengo comunque?",
"Opname loopt - toch uitschakelen?",
diff -Nru -x PLUGINS vdr-1.3.12-orig/menu.c vdr-1.3.12/menu.c
--- vdr-1.3.12-orig/menu.c 2004-06-13 22:26:51.000000000 +0200
+++ vdr-1.3.12/menu.c 2004-08-17 16:00:07.000000000 +0200
@@ -2201,7 +2201,7 @@
eOSState cMenuSetup::Restart(void)
{
- if (Interface->Confirm(cRecordControls::Active() ? tr("Recording - restart anyway?") : tr("Really restart?"))) {
+ if (Interface->Confirm((cRecordControls::Active() || cPluginManager::Active()) ? tr("Busy - restart anyway?") : tr("Really restart?"))) {
cThread::EmergencyExit(true);
return osEnd;
}
diff -Nru -x PLUGINS vdr-1.3.12-orig/plugin.c vdr-1.3.12/plugin.c
--- vdr-1.3.12-orig/plugin.c 2004-05-22 13:25:22.000000000 +0200
+++ vdr-1.3.12/plugin.c 2004-08-17 15:57:52.000000000 +0200
@@ -64,6 +64,11 @@
{
}
+bool cPlugin::Active(void)
+{
+ return false;
+}
+
const char *cPlugin::MainMenuEntry(void)
{
return NULL;
@@ -369,6 +374,18 @@
return NULL;
}
+bool cPluginManager::Active(void)
+{
+ if (pluginManager) {
+ for (cDll *dll = pluginManager->dlls.First(); dll; dll = pluginManager->dlls.Next(dll)) {
+ cPlugin *p = dll->Plugin();
+ if (p && p->Active())
+ return true;
+ }
+ }
+ return false;
+}
+
void cPluginManager::Shutdown(bool Log)
{
cDll *dll;
diff -Nru -x PLUGINS vdr-1.3.12-orig/plugin.h vdr-1.3.12/plugin.h
--- vdr-1.3.12-orig/plugin.h 2004-04-30 15:46:21.000000000 +0200
+++ vdr-1.3.12/plugin.h 2004-08-17 15:56:51.000000000 +0200
@@ -36,6 +36,7 @@
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Housekeeping(void);
+ virtual bool Active(void);
virtual const char *MainMenuEntry(void);
virtual cOsdObject *MainMenuAction(void);
@@ -85,6 +86,7 @@
static bool HasPlugins(void);
static cPlugin *GetPlugin(int Index);
static cPlugin *GetPlugin(const char *Name);
+ static bool Active(void);
void Shutdown(bool Log = false);
};
diff -Nru -x PLUGINS vdr-1.3.12-orig/vdr.c vdr-1.3.12/vdr.c
--- vdr-1.3.12-orig/vdr.c 2004-06-13 15:52:09.000000000 +0200
+++ vdr-1.3.12/vdr.c 2004-08-17 15:59:18.000000000 +0200
@@ -707,8 +707,8 @@
Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
break;
}
- if (cRecordControls::Active()) {
- if (Interface->Confirm(tr("Recording - shut down anyway?")))
+ if (cRecordControls::Active() || cPluginManager::Active()) {
+ if (Interface->Confirm(tr("Busy - shut down anyway?")))
ForceShutdown = true;
}
LastActivity = 1; // not 0, see below!
@@ -821,7 +821,7 @@
Skins.Message(mtInfo, tr("Editing process finished"));
}
}
- if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) {
+ if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && !cPluginManager::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) {
time_t Now = time(NULL);
if (Now - LastActivity > ACTIVITYTIMEOUT) {
// Shutdown:

View File

@ -1,5 +1,5 @@
/*
* $Id: connectionVTP.c,v 1.17 2008/03/13 16:01:18 schmirl Exp $
* $Id: connectionVTP.c,v 1.18 2008/04/07 14:27:30 schmirl Exp $
*/
#include "server/connectionVTP.h"
@ -605,7 +605,6 @@ bool cConnectionVTP::CmdCAPS(char *Opts)
return Respond(220, "Capability \"%s\" accepted", Opts);
}
#if VDRVERSNUM >= 10300
//
// Deliver section filters data in separate, channel-independent data stream
//
@ -613,7 +612,6 @@ bool cConnectionVTP::CmdCAPS(char *Opts)
m_FiltersSupport = true;
return Respond(220, "Capability \"%s\" accepted", Opts);
}
#endif
return Respond(561, "Capability \"%s\" not known", Opts);
}
@ -648,13 +646,8 @@ bool cConnectionVTP::CmdPORT(char *Opts)
if (ep == Opts || !isspace(*ep))
return Respond(500, "Use: PORT Id Destination");
#if VDRVERSNUM >= 10300
if (id != siLive && id != siLiveFilter)
return Respond(501, "Wrong connection id %d", id);
#else
if (id != siLive)
return Respond(501, "Wrong connection id %d", id);
#endif
Opts = skipspace(ep);
n = 0;
@ -681,7 +674,6 @@ bool cConnectionVTP::CmdPORT(char *Opts)
isyslog("Streamdev: Setting data connection to %s:%d", dataip, dataport);
#if VDRVERSNUM >= 10300
if (id == siLiveFilter) {
m_FiltersSupport = true;
if(m_FilterStreamer)
@ -703,7 +695,6 @@ bool cConnectionVTP::CmdPORT(char *Opts)
return Respond(220, "Port command ok, data connection opened");
}
#endif
if(m_LiveSocket && m_LiveStreamer)
m_LiveStreamer->Stop();
@ -746,14 +737,12 @@ bool cConnectionVTP::CmdTUNE(char *Opts)
if(m_LiveSocket)
m_LiveStreamer->Start(m_LiveSocket);
#if VDRVERSNUM >= 10300
if(m_FiltersSupport) {
if(!m_FilterStreamer)
m_FilterStreamer = new cStreamdevFilterStreamer;
m_FilterStreamer->SetDevice(dev);
//m_FilterStreamer->SetChannel(chan);
}
#endif
return Respond(220, "Channel tuned");
}
@ -788,7 +777,6 @@ bool cConnectionVTP::CmdDELP(char *Opts)
bool cConnectionVTP::CmdADDF(char *Opts)
{
#if VDRVERSNUM >= 10300
int pid, tid, mask;
char *ep;
@ -810,14 +798,10 @@ bool cConnectionVTP::CmdADDF(char *Opts)
return m_FilterStreamer->SetFilter(pid, tid, mask, true)
? Respond(220, "Filter %d transferring", pid)
: Respond(560, "Filter %d not available", pid);
#else
return Respond(500, "ADDF known but unimplemented with VDR < 1.3.0");
#endif
}
bool cConnectionVTP::CmdDELF(char *Opts)
{
#if VDRVERSNUM >= 10307
int pid, tid, mask;
char *ep;
@ -838,9 +822,6 @@ bool cConnectionVTP::CmdDELF(char *Opts)
m_FilterStreamer->SetFilter(pid, tid, mask, false);
return Respond(220, "Filter %d stopped", pid);
#else
return Respond(500, "DELF known but unimplemented with VDR < 1.3.0");
#endif
}
bool cConnectionVTP::CmdABRT(char *Opts)
@ -857,12 +838,10 @@ bool cConnectionVTP::CmdABRT(char *Opts)
DELETENULL(m_LiveStreamer);
DELETENULL(m_LiveSocket);
break;
#if VDRVERSNUM >= 10300
case siLiveFilter:
DELETENULL(m_FilterStreamer);
DELETENULL(m_FilterSocket);
break;
#endif
default:
return Respond(501, "Wrong connection id %d", id);
break;

View File

@ -1,5 +1,5 @@
/*
* $Id: livefilter.c,v 1.4 2007/04/24 11:06:12 schmirl Exp $
* $Id: livefilter.c,v 1.5 2008/04/07 14:27:31 schmirl Exp $
*/
#include "server/livefilter.h"
@ -13,8 +13,6 @@
# define TS_SYNC_BYTE 0x47
#endif
#if VDRVERSNUM >= 10300
cStreamdevLiveFilter::cStreamdevLiveFilter(cStreamdevStreamer *Streamer) {
m_Streamer = Streamer;
}
@ -41,5 +39,3 @@ void cStreamdevLiveFilter::Process(u_short Pid, u_char Tid, const u_char *Data,
m_Streamer->ReportOverflow(TS_SIZE - p);
}
}
#endif // VDRVERSNUM >= 10300

View File

@ -1,5 +1,5 @@
/*
* $Id: livefilter.h,v 1.4 2007/04/24 11:29:29 schmirl Exp $
* $Id: livefilter.h,v 1.5 2008/04/07 14:27:31 schmirl Exp $
*/
#ifndef VDR_STREAMEV_LIVEFILTER_H
@ -7,8 +7,6 @@
#include <vdr/config.h>
# if VDRVERSNUM >= 10300
#include <vdr/filter.h>
class cStreamdevStreamer;
@ -31,5 +29,4 @@ public:
}
};
# endif // VDRVERSNUM >= 10300
#endif // VDR_STREAMEV_LIVEFILTER_H

View File

@ -618,7 +618,6 @@ std::string cStreamdevLiveStreamer::Report(void)
// --- cStreamdevFilterStreamer -------------------------------------------------
#if VDRVERSNUM >= 10300
cStreamdevFilterStreamer::cStreamdevFilterStreamer():
cStreamdevStreamer("streamdev-filterstreaming"),
m_Device(NULL),
@ -720,5 +719,3 @@ void cStreamdevFilterStreamer::ChannelSwitch(const cDevice *Device, int ChannelN
}
}
#endif
#endif // if VDRVERSNUM >= 10300

View File

@ -58,8 +58,6 @@ public:
// --- cStreamdevFilterStreamer -------------------------------------------------
# if VDRVERSNUM >= 10300
//#include <vdr/status.h>
class cStreamdevLiveFilter;
@ -85,6 +83,4 @@ public:
//virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
};
# endif // if VDRVERSNUM >= 10300
#endif // VDR_STREAMDEV_LIVESTREAMER_H

View File

@ -1,5 +1,5 @@
/*
* $Id: suspend.c,v 1.1 2004/12/30 22:44:21 lordjaxom Exp $
* $Id: suspend.c,v 1.2 2008/04/07 14:27:31 schmirl Exp $
*/
#include "server/suspend.h"
@ -7,9 +7,7 @@
#include "common.h"
cSuspendLive::cSuspendLive(void)
#if VDRVERSNUM >= 10300
: cThread("Streamdev: server suspend")
#endif
{
}
@ -33,19 +31,11 @@ void cSuspendLive::Stop(void) {
}
void cSuspendLive::Action(void) {
#if VDRVERSNUM < 10300
isyslog("Streamdev: Suspend Live thread started (pid = %d)", getpid());
#endif
m_Active = true;
while (m_Active) {
DeviceStillPicture(suspend_mpg, sizeof(suspend_mpg));
usleep(100000);
}
#if VDRVERSNUM < 10300
isyslog("Streamdev: Suspend Live thread stopped");
#endif
}
bool cSuspendCtl::m_Active = false;

View File

@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
* $Id: streamdev-client.c,v 1.2 2005/04/24 16:19:44 lordjaxom Exp $
* $Id: streamdev-client.c,v 1.3 2008/04/07 14:27:27 schmirl Exp $
*/
#include "streamdev-client.h"
@ -12,6 +12,10 @@
//#include "client/menu.h"
#include "i18n.h"
#if VDRVERSNUM < 10400
#error "VDR-1.4.0 or greater is required"
#endif
const char *cPluginStreamdevClient::DESCRIPTION = "VTP Streaming Client";
cPluginStreamdevClient::cPluginStreamdevClient(void) {

View File

@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
* $Id: streamdev-server.c,v 1.6 2007/04/16 11:01:02 schmirl Exp $
* $Id: streamdev-server.c,v 1.7 2008/04/07 14:27:27 schmirl Exp $
*/
#include <getopt.h>
@ -14,6 +14,10 @@
#include "remux/extern.h"
#include "i18n.h"
#if VDRVERSNUM < 10400
#error "VDR-1.4.0 or greater is required"
#endif
const char *cPluginStreamdevServer::DESCRIPTION = "VDR Streaming Server";
cPluginStreamdevServer::cPluginStreamdevServer(void)