mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
- removed legacy code for pre VDR 1.4
- dropped patches for pre VDR 1.4
This commit is contained in:
parent
71cc16a1eb
commit
f51d6eb2df
26
Makefile
26
Makefile
@ -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
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
245
client/menu.c
245
client/menu.c
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
15
common.c
15
common.c
@ -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
|
||||
item->SetSelectable(false);
|
||||
Add(item);
|
||||
}
|
||||
|
||||
|
15
common.h
15
common.h
@ -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
84
i18n.c
@ -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 }
|
||||
};
|
||||
|
@ -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;
|
@ -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)
|
@ -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();
|
||||
}
|
@ -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;
|
@ -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:
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user