diff options
Diffstat (limited to 'PLUGINS/src')
-rw-r--r-- | PLUGINS/src/dvbhddevice/dvbhddevice.c | 6 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/dvbhdffdevice.c | 24 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/hdffcmd.c | 3 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/hdffmsgdef.h | 11 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/po/de_DE.po | 25 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/po/fi_FI.po | 104 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/po/it_IT.po | 26 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/setup.c | 40 | ||||
-rw-r--r-- | PLUGINS/src/dvbhddevice/setup.h | 3 | ||||
-rw-r--r-- | PLUGINS/src/dvbsddevice/HISTORY | 4 | ||||
-rw-r--r-- | PLUGINS/src/dvbsddevice/dvbsddevice.c | 30 | ||||
-rw-r--r-- | PLUGINS/src/dvbsddevice/dvbsdffdevice.c | 20 | ||||
-rw-r--r-- | PLUGINS/src/dvbsddevice/dvbsdffdevice.h | 11 | ||||
-rw-r--r-- | PLUGINS/src/skincurses/skincurses.c | 4 |
14 files changed, 268 insertions, 43 deletions
diff --git a/PLUGINS/src/dvbhddevice/dvbhddevice.c b/PLUGINS/src/dvbhddevice/dvbhddevice.c index 4745c37..0ad1698 100644 --- a/PLUGINS/src/dvbhddevice/dvbhddevice.c +++ b/PLUGINS/src/dvbhddevice/dvbhddevice.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: dvbhddevice.c 1.13 2011/04/24 09:31:21 kls Exp $ + * $Id: dvbhddevice.c 1.14 2011/08/27 09:31:45 kls Exp $ */ #include <vdr/plugin.h> @@ -11,7 +11,7 @@ #include "setup.h" static const char *VERSION = "0.0.4"; -static const char *DESCRIPTION = "HD Full Featured DVB device"; +static const char *DESCRIPTION = trNOOP("HD Full Featured DVB device"); class cPluginDvbhddevice : public cPlugin { private: @@ -20,7 +20,7 @@ public: cPluginDvbhddevice(void); virtual ~cPluginDvbhddevice(); virtual const char *Version(void) { return VERSION; } - virtual const char *Description(void) { return DESCRIPTION; } + virtual const char *Description(void) { return tr(DESCRIPTION); } virtual cMenuSetupPage *SetupMenu(void); virtual bool SetupParse(const char *Name, const char *Value); }; diff --git a/PLUGINS/src/dvbhddevice/dvbhdffdevice.c b/PLUGINS/src/dvbhddevice/dvbhdffdevice.c index 714769e..ff3f953 100644 --- a/PLUGINS/src/dvbhddevice/dvbhdffdevice.c +++ b/PLUGINS/src/dvbhddevice/dvbhdffdevice.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: dvbhdffdevice.c 1.32 2011/05/22 15:19:59 kls Exp $ + * $Id: dvbhdffdevice.c 1.33 2011/08/27 09:32:18 kls Exp $ */ #include "dvbhdffdevice.h" @@ -54,6 +54,7 @@ cDvbHdFfDevice::cDvbHdFfDevice(int Adapter, int Frontend) hdmiConfig.TransmitAudio = true; hdmiConfig.ForceDviMode = false; hdmiConfig.CecEnabled = gHdffSetup.CecEnabled; + hdmiConfig.VideoModeAdaption = (HDFF::eVideoModeAdaption) gHdffSetup.VideoModeAdaption; mHdffCmdIf->CmdHdmiConfigure(&hdmiConfig); if (gHdffSetup.CecEnabled) mHdffCmdIf->CmdHdmiSendCecCommand(HDFF::cecCommandTvOn); @@ -110,7 +111,7 @@ void cDvbHdFfDevice::SetVideoFormat(bool VideoFormat16_9) { HDFF::tVideoFormat videoFormat; videoFormat.AutomaticEnabled = true; - videoFormat.AfdEnabled = false; + videoFormat.AfdEnabled = true; videoFormat.TvFormat = (HDFF::eTvFormat) gHdffSetup.TvFormat; videoFormat.VideoConversion = (HDFF::eVideoConversion) gHdffSetup.VideoConversion; mHdffCmdIf->CmdAvSetVideoFormat(0, &videoFormat); @@ -729,10 +730,25 @@ bool cDvbHdFfDeviceProbe::Probe(int Adapter, int Frontend) 0x13C2300A, // Technotrend S2-6400 HDFF production version 0x00000000 }; - uint32_t SubsystemId = GetSubsystemId(Adapter, Frontend); + cString FileName; + cReadLine ReadLine; + FILE *f = NULL; + uint32_t SubsystemId = 0; + FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend%d/device/subsystem_vendor", Adapter, Frontend); + if ((f = fopen(FileName, "r")) != NULL) { + if (char *s = ReadLine.Read(f)) + SubsystemId = strtoul(s, NULL, 0) << 16; + fclose(f); + } + FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend%d/device/subsystem_device", Adapter, Frontend); + if ((f = fopen(FileName, "r")) != NULL) { + if (char *s = ReadLine.Read(f)) + SubsystemId |= strtoul(s, NULL, 0); + fclose(f); + } for (uint32_t *sid = SubsystemIds; *sid; sid++) { if (*sid == SubsystemId) { - cString FileName = cString::sprintf("/dev/dvb/adapter%d/osd0", Adapter); + FileName = cString::sprintf("/dev/dvb/adapter%d/osd0", Adapter); int fd = open(FileName, O_RDWR); if (fd != -1) { //TODO treat the second path of the S2-6400 as a budget device close(fd); diff --git a/PLUGINS/src/dvbhddevice/hdffcmd.c b/PLUGINS/src/dvbhddevice/hdffcmd.c index 82869df..60ad70e 100644 --- a/PLUGINS/src/dvbhddevice/hdffcmd.c +++ b/PLUGINS/src/dvbhddevice/hdffcmd.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: hdffcmd.c 1.20 2011/04/24 09:31:59 kls Exp $ + * $Id: hdffcmd.c 1.21 2011/08/27 09:34:18 kls Exp $ */ #include "hdffcmd.h" @@ -1089,6 +1089,7 @@ void cHdffCmdIf::CmdHdmiConfigure(const tHdmiConfig * pConfig) { cmdBuf.SetBits(1, 0); } + cmdBuf.SetBits(3, (uint32_t) pConfig->VideoModeAdaption); osd_cmd.cmd_len = CmdSetLength(cmdBuf); ioctl(mOsdDev, OSD_RAW_CMD, &osd_cmd); } diff --git a/PLUGINS/src/dvbhddevice/hdffmsgdef.h b/PLUGINS/src/dvbhddevice/hdffmsgdef.h index a6c3f4b..d63e88a 100644 --- a/PLUGINS/src/dvbhddevice/hdffmsgdef.h +++ b/PLUGINS/src/dvbhddevice/hdffmsgdef.h @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: hdffmsgdef.h 1.12 2011/04/17 11:20:22 kls Exp $ + * $Id: hdffmsgdef.h 1.13 2011/08/27 09:34:43 kls Exp $ */ #ifndef _HDFF_MSGDEF_H_ @@ -274,6 +274,14 @@ typedef enum _eHdmiVideoMode videoModeMaxValue } eHdmiVideoMode; +typedef enum _eVideoModeAdaption +{ + videoModeAdaptOff, + videoModeAdaptFrameRate, + videoModeAdaptOnlyForHd, + videoModeAdaptAlways +} eVideoModeAdaption; + typedef enum _eCecCommand { cecCommandTvOn, @@ -287,6 +295,7 @@ typedef struct _tHdmiConfig bool TransmitAudio; bool ForceDviMode; bool CecEnabled; + eVideoModeAdaption VideoModeAdaption; } tHdmiConfig; // Remote control definitions diff --git a/PLUGINS/src/dvbhddevice/po/de_DE.po b/PLUGINS/src/dvbhddevice/po/de_DE.po index 907f243..78ace1b 100644 --- a/PLUGINS/src/dvbhddevice/po/de_DE.po +++ b/PLUGINS/src/dvbhddevice/po/de_DE.po @@ -7,15 +7,30 @@ msgid "" msgstr "" "Project-Id-Version: VDR \n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2011-05-05 20:34+0200\n" +"POT-Creation-Date: 2011-08-21 14:02+0200\n" "PO-Revision-Date: 2011-04-25 21:44+0200\n" "Last-Translator: Christoph Haubrich\n" "Language-Team: <see README>\n" -"Language: \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "HD Full Featured DVB device" +msgstr "HD Full Featured DVB device" + +msgid "Off" +msgstr "aus" + +msgid "Frame rate" +msgstr "passende Framerate" + +msgid "HD Only" +msgstr "nur bei HD" + +msgid "Always" +msgstr "immer" + msgid "Automatic" msgstr "automatisch" @@ -40,9 +55,6 @@ msgstr "abgeschaltet" msgid "Analogue only" msgstr "nur Analoge Ausgänge" -msgid "Always" -msgstr "immer" - msgid "HDMI only" msgstr "nur HDMI" @@ -55,6 +67,9 @@ msgstr "keins" msgid "Resolution" msgstr "Auflösung" +msgid "Video Mode Adaption" +msgstr "Auflösungsanpassung" + msgid "TV format" msgstr "TV-Format" diff --git a/PLUGINS/src/dvbhddevice/po/fi_FI.po b/PLUGINS/src/dvbhddevice/po/fi_FI.po new file mode 100644 index 0000000..db8ef0b --- /dev/null +++ b/PLUGINS/src/dvbhddevice/po/fi_FI.po @@ -0,0 +1,104 @@ +# VDR plugin language source file +# Copyright (C) 2011 Andreas Regel +# This file is distributed under the same license as the dvbhddevice package. +# Christoph Haubrich, 2011 +# +msgid "" +msgstr "" +"Project-Id-Version: VDR \n" +"Report-Msgid-Bugs-To: <see README>\n" +"POT-Creation-Date: 2011-08-21 14:02+0200\n" +"PO-Revision-Date: 2011-04-25 21:44+0200\n" +"Last-Translator: Rolf Ahrenberg\n" +"Language-Team: Finnish <vdr@linuxtv.org>\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "HD Full Featured DVB device" +msgstr "DVB-laite HD-ulostulolla" + +msgid "Off" +msgstr "" + +msgid "Frame rate" +msgstr "" + +msgid "HD Only" +msgstr "" + +msgid "Always" +msgstr "aina" + +msgid "Automatic" +msgstr "automaattinen" + +msgid "Letterbox 16/9" +msgstr "letterbox 16:9" + +msgid "Letterbox 14/9" +msgstr "letterbox 14:9" + +msgid "Pillarbox" +msgstr "pillarbox" + +msgid "CentreCutOut" +msgstr "center cut out" + +msgid "Always 16/9" +msgstr "aina 16:9" + +msgid "Disabled" +msgstr "ei käytössä" + +msgid "Analogue only" +msgstr "vain analoginen" + +msgid "HDMI only" +msgstr "vain HDMI" + +msgid "Follow resolution" +msgstr "resoluution mukaan" + +msgid "none" +msgstr "ei" + +msgid "Resolution" +msgstr "Kuvaresoluutio" + +msgid "Video Mode Adaption" +msgstr "" + +msgid "TV format" +msgstr "Näytön kuvasuhde" + +msgid "Video Conversion" +msgstr "Näyttömuoto" + +msgid "Analogue Video" +msgstr "Analoginen kuvalähtö" + +msgid "Audio Delay (ms)" +msgstr "Äänen viive (ms)" + +msgid "Audio Downmix" +msgstr "Äänen alasmiksaus" + +msgid "OSD Size" +msgstr "Kuvaruutunäytön koko" + +msgid "HDMI CEC" +msgstr "Käytä HDMI CEC-toimintoa" + +msgid "Remote Control Protocol" +msgstr "Kaukosäätimen protokolla" + +msgid "Remote Control Address" +msgstr "Kaukosäätimen osoite" + +msgid "High Level OSD" +msgstr "Käytä korkean tason kuvaruutunäyttöä" + +msgid "Allow True Color OSD" +msgstr "Salli tosivärit kuvaruutunäytölle" diff --git a/PLUGINS/src/dvbhddevice/po/it_IT.po b/PLUGINS/src/dvbhddevice/po/it_IT.po index a328312..bafb2c5 100644 --- a/PLUGINS/src/dvbhddevice/po/it_IT.po +++ b/PLUGINS/src/dvbhddevice/po/it_IT.po @@ -7,11 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: VDR\n" "Report-Msgid-Bugs-To: <see README>\n" -"POT-Creation-Date: 2011-05-05 20:34+0200\n" +"POT-Creation-Date: 2011-08-21 14:02+0200\n" "PO-Revision-Date: 2011-07-10 00:23+0100\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Language-Team: <see README>\n" -"Language: \n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,6 +19,21 @@ msgstr "" "X-Poedit-Country: ITALY\n" "X-Poedit-SourceCharset: utf-8\n" +msgid "HD Full Featured DVB device" +msgstr "" + +msgid "Off" +msgstr "" + +msgid "Frame rate" +msgstr "" + +msgid "HD Only" +msgstr "" + +msgid "Always" +msgstr "Sempre" + msgid "Automatic" msgstr "Automatica" @@ -43,9 +58,6 @@ msgstr "Disabilitata" msgid "Analogue only" msgstr "Solo analogica" -msgid "Always" -msgstr "Sempre" - msgid "HDMI only" msgstr "Solo HDMI" @@ -58,6 +70,9 @@ msgstr "nessuna" msgid "Resolution" msgstr "Risoluzione" +msgid "Video Mode Adaption" +msgstr "" + msgid "TV format" msgstr "Formato TV" @@ -90,4 +105,3 @@ msgstr "OSD alto livello" msgid "Allow True Color OSD" msgstr "Permetti OSD True Color" - diff --git a/PLUGINS/src/dvbhddevice/setup.c b/PLUGINS/src/dvbhddevice/setup.c index 30365e0..6e41860 100644 --- a/PLUGINS/src/dvbhddevice/setup.c +++ b/PLUGINS/src/dvbhddevice/setup.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: setup.c 1.12 2011/05/15 14:47:45 kls Exp $ + * $Id: setup.c 1.13 2011/08/27 09:35:35 kls Exp $ */ #include "setup.h" @@ -20,6 +20,7 @@ cHdffSetup gHdffSetup; cHdffSetup::cHdffSetup(void) { Resolution = kResolution1080i; + VideoModeAdaption = HDFF::videoModeAdaptOff; TvFormat = HDFF::tvFormat16by9; VideoConversion = HDFF::videoConversionPillarbox; AnalogueVideo = HDFF::videoOutCvbsYuv; @@ -35,18 +36,19 @@ cHdffSetup::cHdffSetup(void) bool cHdffSetup::SetupParse(const char *Name, const char *Value) { - if (strcmp(Name, "Resolution") == 0) Resolution = atoi(Value); - else if (strcmp(Name, "TvFormat") == 0) TvFormat = atoi(Value); - else if (strcmp(Name, "VideoConversion") == 0) VideoConversion = atoi(Value); - else if (strcmp(Name, "AnalogueVideo") == 0) AnalogueVideo = atoi(Value); - else if (strcmp(Name, "AudioDelay") == 0) AudioDelay = atoi(Value); - else if (strcmp(Name, "AudioDownmix") == 0) AudioDownmix = atoi(Value); - else if (strcmp(Name, "OsdSize") == 0) OsdSize = atoi(Value); - else if (strcmp(Name, "CecEnabled") == 0) CecEnabled = atoi(Value); - else if (strcmp(Name, "RemoteProtocol") == 0) RemoteProtocol = atoi(Value); - else if (strcmp(Name, "RemoteAddress") == 0) RemoteAddress = atoi(Value); - else if (strcmp(Name, "HighLevelOsd") == 0) HighLevelOsd = atoi(Value); - else if (strcmp(Name, "TrueColorOsd") == 0) TrueColorOsd = atoi(Value); + if (strcmp(Name, "Resolution") == 0) Resolution = atoi(Value); + else if (strcmp(Name, "VideoModeAdaption") == 0) VideoModeAdaption = atoi(Value); + else if (strcmp(Name, "TvFormat") == 0) TvFormat = atoi(Value); + else if (strcmp(Name, "VideoConversion") == 0) VideoConversion = atoi(Value); + else if (strcmp(Name, "AnalogueVideo") == 0) AnalogueVideo = atoi(Value); + else if (strcmp(Name, "AudioDelay") == 0) AudioDelay = atoi(Value); + else if (strcmp(Name, "AudioDownmix") == 0) AudioDownmix = atoi(Value); + else if (strcmp(Name, "OsdSize") == 0) OsdSize = atoi(Value); + else if (strcmp(Name, "CecEnabled") == 0) CecEnabled = atoi(Value); + else if (strcmp(Name, "RemoteProtocol") == 0) RemoteProtocol = atoi(Value); + else if (strcmp(Name, "RemoteAddress") == 0) RemoteAddress = atoi(Value); + else if (strcmp(Name, "HighLevelOsd") == 0) HighLevelOsd = atoi(Value); + else if (strcmp(Name, "TrueColorOsd") == 0) TrueColorOsd = atoi(Value); else return false; return true; } @@ -113,6 +115,7 @@ HDFF::eHdmiVideoMode cHdffSetup::GetVideoMode(void) cHdffSetupPage::cHdffSetupPage(HDFF::cHdffCmdIf * pHdffCmdIf) { const int kResolutions = 4; + const int kVideoModeAdaptions = 4; const int kTvFormats = 2; const int kVideoConversions = 6; const int kAnalogueVideos = 4; @@ -128,6 +131,14 @@ cHdffSetupPage::cHdffSetupPage(HDFF::cHdffCmdIf * pHdffCmdIf) "576i", }; + static const char * VideoModeAdaptionItems[kVideoModeAdaptions] = + { + tr("Off"), + tr("Frame rate"), + tr("HD Only"), + tr("Always") + }; + static const char * TvFormatItems[kTvFormats] = { "4/3", @@ -182,6 +193,7 @@ cHdffSetupPage::cHdffSetupPage(HDFF::cHdffCmdIf * pHdffCmdIf) mNewHdffSetup = gHdffSetup; Add(new cMenuEditStraItem(tr("Resolution"), &mNewHdffSetup.Resolution, kResolutions, ResolutionItems)); + Add(new cMenuEditStraItem(tr("Video Mode Adaption"), &mNewHdffSetup.VideoModeAdaption, kVideoModeAdaptions, VideoModeAdaptionItems)); Add(new cMenuEditStraItem(tr("TV format"), &mNewHdffSetup.TvFormat, kTvFormats, TvFormatItems)); Add(new cMenuEditStraItem(tr("Video Conversion"), &mNewHdffSetup.VideoConversion, kVideoConversions, VideoConversionItems)); Add(new cMenuEditStraItem(tr("Analogue Video"), &mNewHdffSetup.AnalogueVideo, kAnalogueVideos, AnalogueVideoItems)); @@ -202,6 +214,7 @@ cHdffSetupPage::~cHdffSetupPage(void) void cHdffSetupPage::Store(void) { SetupStore("Resolution", mNewHdffSetup.Resolution); + SetupStore("VideoModeAdaption", mNewHdffSetup.VideoModeAdaption); SetupStore("TvFormat", mNewHdffSetup.TvFormat); SetupStore("VideoConversion", mNewHdffSetup.VideoConversion); SetupStore("AnalogueVideo", mNewHdffSetup.AnalogueVideo); @@ -237,6 +250,7 @@ void cHdffSetupPage::Store(void) hdmiConfig.TransmitAudio = true; hdmiConfig.ForceDviMode = false; hdmiConfig.CecEnabled = mNewHdffSetup.CecEnabled; + hdmiConfig.VideoModeAdaption = (HDFF::eVideoModeAdaption) mNewHdffSetup.VideoModeAdaption; mHdffCmdIf->CmdHdmiConfigure(&hdmiConfig); mHdffCmdIf->CmdRemoteSetProtocol((HDFF::eRemoteProtocol) mNewHdffSetup.RemoteProtocol); diff --git a/PLUGINS/src/dvbhddevice/setup.h b/PLUGINS/src/dvbhddevice/setup.h index 07c9d1a..c3fe7a6 100644 --- a/PLUGINS/src/dvbhddevice/setup.h +++ b/PLUGINS/src/dvbhddevice/setup.h @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: setup.h 1.8 2011/04/17 11:20:22 kls Exp $ + * $Id: setup.h 1.9 2011/08/27 09:36:02 kls Exp $ */ #ifndef _HDFF_SETUP_H_ @@ -20,6 +20,7 @@ struct cHdffSetup HDFF::eHdmiVideoMode GetVideoMode(void); int Resolution; + int VideoModeAdaption; int TvFormat; int VideoConversion; int AnalogueVideo; diff --git a/PLUGINS/src/dvbsddevice/HISTORY b/PLUGINS/src/dvbsddevice/HISTORY index 9672f6f..229e35b 100644 --- a/PLUGINS/src/dvbsddevice/HISTORY +++ b/PLUGINS/src/dvbsddevice/HISTORY @@ -19,3 +19,7 @@ VDR Plugin 'dvbsddevice' Revision History 2011-04-17: Version 0.0.4 - Removed an obsolete local variable in dvbsdffosd.c (thanks to Paul Menzel). + +2011-08-27: Version 0.0.5 + +- Added option --outputonly to use the device only for output (thanks to Udo Richter). diff --git a/PLUGINS/src/dvbsddevice/dvbsddevice.c b/PLUGINS/src/dvbsddevice/dvbsddevice.c index 6f042d8..2aa8c77 100644 --- a/PLUGINS/src/dvbsddevice/dvbsddevice.c +++ b/PLUGINS/src/dvbsddevice/dvbsddevice.c @@ -3,13 +3,14 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: dvbsddevice.c 1.4 2011/04/17 12:55:43 kls Exp $ + * $Id: dvbsddevice.c 1.5 2011/08/27 11:34:58 kls Exp $ */ +#include <getopt.h> #include <vdr/plugin.h> #include "dvbsdffdevice.h" -static const char *VERSION = "0.0.4"; +static const char *VERSION = "0.0.5"; static const char *DESCRIPTION = "SD Full Featured DVB device"; class cPluginDvbsddevice : public cPlugin { @@ -20,6 +21,8 @@ public: virtual ~cPluginDvbsddevice(); virtual const char *Version(void) { return VERSION; } virtual const char *Description(void) { return DESCRIPTION; } + virtual const char *CommandLineHelp(void); + virtual bool ProcessArgs(int argc, char *argv[]); }; cPluginDvbsddevice::cPluginDvbsddevice(void) @@ -32,4 +35,27 @@ cPluginDvbsddevice::~cPluginDvbsddevice() delete probe; } +const char *cPluginDvbsddevice::CommandLineHelp(void) +{ + return " -o --outputonly do not receive, just use as output device\n"; +} + +bool cPluginDvbsddevice::ProcessArgs(int argc, char *argv[]) +{ + static struct option long_options[] = { + { "outputonly", no_argument, NULL, 'o' }, + { NULL, no_argument, NULL, 0 } + }; + + int c; + while ((c = getopt_long(argc, argv, "", long_options, NULL)) != -1) { + switch (c) { + case 'o': probe->SetOutputOnly(true); + break; + default: return false; + } + } + return true; +} + VDRPLUGINCREATOR(cPluginDvbsddevice); // Don't touch this! diff --git a/PLUGINS/src/dvbsddevice/dvbsdffdevice.c b/PLUGINS/src/dvbsddevice/dvbsdffdevice.c index 73e55ba..17f842b 100644 --- a/PLUGINS/src/dvbsddevice/dvbsdffdevice.c +++ b/PLUGINS/src/dvbsddevice/dvbsdffdevice.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: dvbsdffdevice.c 2.29 2011/05/22 15:22:14 kls Exp $ + * $Id: dvbsdffdevice.c 2.30 2011/08/27 11:33:57 kls Exp $ */ #include "dvbsdffdevice.h" @@ -23,12 +23,13 @@ int cDvbSdFfDevice::devVideoOffset = -1; -cDvbSdFfDevice::cDvbSdFfDevice(int Adapter, int Frontend) +cDvbSdFfDevice::cDvbSdFfDevice(int Adapter, int Frontend, bool OutputOnly) :cDvbDevice(Adapter, Frontend) { spuDecoder = NULL; digitalAudio = false; playMode = pmNone; + outputOnly = OutputOnly; // Devices that are only present on cards with decoders: @@ -357,6 +358,14 @@ bool cDvbSdFfDevice::SetPid(cPidHandle *Handle, int Type, bool On) return true; } +bool cDvbSdFfDevice::ProvidesSource(int Source) const +{ + if (outputOnly) + return false; + else + return cDvbDevice::ProvidesSource(Source); +} + void cDvbSdFfDevice::TurnOffLiveMode(bool LiveView) { if (LiveView) { @@ -761,6 +770,11 @@ int cDvbSdFfDevice::PlayTsAudio(const uchar *Data, int Length) // --- cDvbSdFfDeviceProbe --------------------------------------------------- +cDvbSdFfDeviceProbe::cDvbSdFfDeviceProbe(void) +{ + outputOnly = false; +} + bool cDvbSdFfDeviceProbe::Probe(int Adapter, int Frontend) { static uint32_t SubsystemIds[] = { @@ -781,7 +795,7 @@ bool cDvbSdFfDeviceProbe::Probe(int Adapter, int Frontend) for (uint32_t *sid = SubsystemIds; *sid; sid++) { if (*sid == SubsystemId) { dsyslog("creating cDvbSdFfDevice"); - new cDvbSdFfDevice(Adapter, Frontend); + new cDvbSdFfDevice(Adapter, Frontend, outputOnly); return true; } } diff --git a/PLUGINS/src/dvbsddevice/dvbsdffdevice.h b/PLUGINS/src/dvbsddevice/dvbsdffdevice.h index afe4727..bd74cde 100644 --- a/PLUGINS/src/dvbsddevice/dvbsdffdevice.h +++ b/PLUGINS/src/dvbsddevice/dvbsdffdevice.h @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: dvbsdffdevice.h 2.12 2011/05/21 12:56:49 kls Exp $ + * $Id: dvbsdffdevice.h 2.13 2011/08/27 11:32:42 kls Exp $ */ #ifndef __DVBSDFFDEVICE_H @@ -17,10 +17,11 @@ class cDvbSdFfDevice : public cDvbDevice { private: int fd_osd, fd_audio, fd_video, fd_stc; + bool outputOnly; protected: virtual void MakePrimaryDevice(bool On); public: - cDvbSdFfDevice(int Adapter, int Frontend); + cDvbSdFfDevice(int Adapter, int Frontend, bool OutputOnly); virtual ~cDvbSdFfDevice(); virtual bool HasDecoder(void) const; virtual bool AvoidRecording(void) const; @@ -34,6 +35,8 @@ public: // Channel facilities +public: + virtual bool ProvidesSource(int Source) const; private: void TurnOffLiveMode(bool LiveView); protected: @@ -101,7 +104,11 @@ public: }; class cDvbSdFfDeviceProbe : public cDvbDeviceProbe { +private: + bool outputOnly; public: + cDvbSdFfDeviceProbe(void); + void SetOutputOnly(bool On) { outputOnly = On; } virtual bool Probe(int Adapter, int Frontend); }; diff --git a/PLUGINS/src/skincurses/skincurses.c b/PLUGINS/src/skincurses/skincurses.c index 11fead5..74166b3 100644 --- a/PLUGINS/src/skincurses/skincurses.c +++ b/PLUGINS/src/skincurses/skincurses.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: skincurses.c 2.6 2011/05/15 21:41:47 kls Exp $ + * $Id: skincurses.c 2.7 2011/08/21 11:04:38 kls Exp $ */ #include <ncurses.h> @@ -436,7 +436,7 @@ void cSkinCursesDisplayMenu::SetRecording(const cRecording *Recording) int y = 2; cTextScroller ts; char t[32]; - snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start)); + snprintf(t, sizeof(t), "%s %s", *DateString(Recording->Start()), *TimeString(Recording->Start())); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground); y += ts.Height(); if (Info->GetEvent()->ParentalRating()) { |