diff options
author | schmirl <schmirl> | 2008-04-08 14:18:15 +0000 |
---|---|---|
committer | schmirl <schmirl> | 2008-04-08 14:18:15 +0000 |
commit | 34a62eb2ef9ba0c9e5d269162772c4223bf5fa3b (patch) | |
tree | 0cb0bc89b73cbb62cfda77aa5a06f7b80691e9d4 | |
parent | 9c60fb4e42bce2fd3b6d7d9c011f1688cddd4394 (diff) | |
download | vdr-plugin-streamdev-34a62eb2ef9ba0c9e5d269162772c4223bf5fa3b.tar.gz vdr-plugin-streamdev-34a62eb2ef9ba0c9e5d269162772c4223bf5fa3b.tar.bz2 |
- added gettext support (thanks to Rolf Ahrenberg)
- added vdr-1.6.0-ignore_missing_cam patch
- dropped obsolete respect_ca patch
- removed legacy code for < VDR 1.5.9 (thanks to Rolf Ahrenberg)
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 5 | ||||
-rw-r--r-- | Makefile | 34 | ||||
-rw-r--r-- | README | 39 | ||||
-rw-r--r-- | client/device.c | 7 | ||||
-rw-r--r-- | client/setup.c | 3 | ||||
-rw-r--r-- | client/socket.c | 3 | ||||
-rw-r--r-- | common.c | 11 | ||||
-rw-r--r-- | i18n.c | 786 | ||||
-rw-r--r-- | i18n.h | 16 | ||||
-rw-r--r-- | patches/respect_ca.diff | 43 | ||||
-rw-r--r-- | patches/vdr-1.6.0-ignore_missing_cam.diff | 13 | ||||
-rw-r--r-- | po/de_DE.po | 100 | ||||
-rw-r--r-- | po/fi_FI.po | 100 | ||||
-rw-r--r-- | server/connection.c | 10 | ||||
-rw-r--r-- | server/livestreamer.c | 14 | ||||
-rw-r--r-- | server/menuHTTP.c | 10 | ||||
-rw-r--r-- | server/menuHTTP.h | 2 | ||||
-rw-r--r-- | server/setup.c | 3 | ||||
-rw-r--r-- | streamdev-client.c | 16 | ||||
-rw-r--r-- | streamdev-server.c | 13 |
21 files changed, 304 insertions, 925 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c6f4e0a..5e5bc99 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -25,6 +25,7 @@ Rolf Ahrenberg for a TS PAT repacker based on Petri Laine's VDR TS recording patch for making it possible to pass parameters to externremux.sh for removing pre VDR 1.4 legacy code + for adding gettext support Rantanen Teemu for providing vdr-incompletesections.diff @@ -1,6 +1,11 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- added gettext support (thanks to Rolf Ahrenberg) +- added vdr-1.6.0-ignore_missing_cam patch +- dropped obsolete respect_ca patch +- removed legacy code for < VDR 1.5.9 (thanks to Rolf Ahrenberg) + 2008-04-07: Branched v0_4 - changed location of streamdevhosts.conf to VDRCONFDIR/plugins/streamdev @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile,v 1.15 2008/04/07 14:50:32 schmirl Exp $ +# $Id: Makefile,v 1.16 2008/04/08 14:18:15 schmirl Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -45,7 +45,7 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): -COMMONOBJS = common.o i18n.o \ +COMMONOBJS = common.o \ \ tools/source.o tools/select.o tools/socket.o tools/tools.o @@ -70,8 +70,8 @@ endif ### The main target: -.PHONY: all dist clean -all: libvdr-$(PLUGIN)-client.so libvdr-$(PLUGIN)-server.so +.PHONY: all i18n dist clean +all: libvdr-$(PLUGIN)-client.so libvdr-$(PLUGIN)-server.so i18n ### Implicit rules: @@ -96,6 +96,30 @@ endif -include $(DEPFILE) +### Internationalization (I18N): + +PODIR = po +LOCALEDIR = $(VDRDIR)/locale +I18Npo = $(wildcard $(PODIR)/*.po) +I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Npot = $(PODIR)/$(PLUGIN).pot + +%.mo: %.po + msgfmt -c -o $@ $< + +$(I18Npot): $(CLIENTOBJS:%.o=%.c) $(SERVEROBJS:%.o=%.c) $(COMMONOBJS:%.o=%.c) + xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<http://www.vdr-developer.org/mantisbt/>' -o $@ $^ + +%.po: $(I18Npot) + msgmerge -U --no-wrap --no-location --backup=none -q $@ $< + @touch $@ + +$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo + @mkdir -p $(dir $@) + cp $< $@ + +i18n: $(I18Nmsgs) + ### Targets: libdvbmpeg/libdvbmpegtools.a: libdvbmpeg/*.c libdvbmpeg/*.h @@ -117,5 +141,5 @@ dist: clean @echo Distribution package created as $(PACKAGE).tgz clean: - @-rm -f $(COMMONOBJS) $(CLIENTOBJS) $(SERVEROBJS) $(DEPFILE) *.so *.tgz core* *~ + @-rm -f $(COMMONOBJS) $(CLIENTOBJS) $(SERVEROBJS) $(DEPFILE) $(PODIR)/*.mo $(PODIR)/*.pot *.so *.tgz core* *~ $(MAKE) -C ./libdvbmpeg clean @@ -15,8 +15,8 @@ Contents: 1. Description 2. Installation -2.1 VDR 1.3.X and older -2.2 VDR 1.4.X and above +2.1 VDR 1.4.x and older +2.2 VDR 1.6.0 and above 2.3 Updating from streamdev 0.3.x 3. Usage 3.1 Usage HTTP server @@ -96,13 +96,14 @@ location with the -r parameter. The VDR commandline would then include a as otherwise -r will be passed to VDR and not to streamdev. -2.1 VDR 1.3.X and older: +2.1 VDR 1.4.x and older: ------------------------ -This version is not compatible to VDR releases older than 1.4.0. You will -probably need one of the streamdev-0.3.x releases. +This version is not compatible to VDR releases older than 1.5.9. Take one of +the streamdev-0.4.x releases if you are running at least VDR 1.4.x. For older +VDRs you will probably need one of the streamdev-0.3.x releases. -2.2 VDR 1.4.X and above: +2.2 VDR 1.6.0 and above: ------------------------ cd vdr-1.X.X/PLUGINS/src @@ -319,3 +320,29 @@ priority than the actual channel switch. The later always uses priority 0. Usually a channel switch for live TV has priority 0 anyway, so it is not a problem here. However timers usually have a higher priority. Either avoid client side recordings or set the priority of client side timers to 0. + +* There have been reports that channel switching with VDR 1.5.x/1.6.x clients +sometimes fails. Current version includes a workaround which seems to work, but +YMMV ;) + +* Viewing encrypted channels became an issue with VDR's new CAM handling code. +Streamdev doesn't provide a (dummy) CAM, so out of the box, VDR won't ever try +to receive encrypted channels from streamdev. Pick one of the following +solutions to work around the problem: + +1. Force VDR to use streamdev. Open the channels menu on the client (or edit its +channels.conf if you know how to do this) and set the CA field of all channels +that only the server can decrypt to streamdev's device index. Usually streamdev +will get number 9 or 10. Streamdev logs the actual device number when starting +up. So please consider the logs for the correct value. Remember to fill in +hexadecimal values if you are using an editor to modify your channels.conf +(number 10 becomes an "a", number 11 a "b", ...). + +2. Turn encrypted channels into Free-to-Air channels on the client. Again, +either enter the channels menu or edit the client's channels.conf. You will +also have to disable automatic channel updates on the client or (if streamdev +is the only DVB source) disable streamdev's filter streaming feature. Otherwise +VDR will revert the channel into an encrypted one. + +3. Apply the patch "patches/vdr-1.6.0-ignore_missing_cam.diff" to your +client VDR. diff --git a/client/device.c b/client/device.c index 570bab2..54d4034 100644 --- a/client/device.c +++ b/client/device.c @@ -1,5 +1,5 @@ /* - * $Id: device.c,v 1.18 2008/04/07 14:50:32 schmirl Exp $ + * $Id: device.c,v 1.19 2008/04/08 14:18:16 schmirl Exp $ */ #include "client/device.h" @@ -190,16 +190,11 @@ void cStreamdevDevice::CloseDvrInt(void) { } Dprintf("cStreamdevDevice::CloseDvrInt(): Closing DVR connection\n"); -#if VDRVERSNUM < 10500 - DELETENULL(m_TSBuffer); - ClientSocket.CloseDvr(); -#else // Hack for VDR 1.5.x clients (sometimes sending ABRT after TUNE) // TODO: Find a clean solution to fix this ClientSocket.SetChannelDevice(m_Channel); ClientSocket.CloseDvr(); DELETENULL(m_TSBuffer); -#endif } void cStreamdevDevice::CloseDvr(void) { diff --git a/client/setup.c b/client/setup.c index 5c04c61..6336154 100644 --- a/client/setup.c +++ b/client/setup.c @@ -1,12 +1,11 @@ /* - * $Id: setup.c,v 1.5 2008/04/07 14:50:32 schmirl Exp $ + * $Id: setup.c,v 1.6 2008/04/08 14:18:16 schmirl Exp $ */ #include <vdr/menuitems.h> #include "client/setup.h" #include "client/device.h" -#include "i18n.h" cStreamdevClientSetup StreamdevClientSetup; diff --git a/client/socket.c b/client/socket.c index 569fd43..02f501d 100644 --- a/client/socket.c +++ b/client/socket.c @@ -1,5 +1,5 @@ /* - * $Id: socket.c,v 1.11 2008/04/07 14:40:40 schmirl Exp $ + * $Id: socket.c,v 1.12 2008/04/08 14:18:16 schmirl Exp $ */ #include <tools/select.h> @@ -14,7 +14,6 @@ #include "client/socket.h" #include "client/setup.h" #include "common.h" -#include "i18n.h" cClientSocket ClientSocket; @@ -1,5 +1,5 @@ /* - * $Id: common.c,v 1.7 2008/04/07 14:27:27 schmirl Exp $ + * $Id: common.c,v 1.8 2008/04/08 14:18:15 schmirl Exp $ */ #include <vdr/channels.h> @@ -7,11 +7,10 @@ #include "common.h" #include "tools/select.h" -#include "i18n.h" using namespace std; -const char *VERSION = "0.4.0-pre"; +const char *VERSION = "0.5.0-pre"; const char *StreamTypes[st_Count] = { "TS", @@ -23,9 +22,9 @@ const char *StreamTypes[st_Count] = { }; const char *SuspendModes[sm_Count] = { - "Offer suspend mode", - "Always suspended", - "Never suspended" + trNOOP("Offer suspend mode"), + trNOOP("Always suspended"), + trNOOP("Never suspended") }; const char IpCharacters[] = "0123456789."; @@ -1,786 +0,0 @@ -/* - * $Id: i18n.c,v 1.8 2008/04/07 14:50:32 schmirl Exp $ - */ - -#include "i18n.h" - -const char *i18n_name = NULL; - -const tI18nPhrase Phrases[] = { - { "VDR Streaming Server", // English - "VDR Streaming Server", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "VDR-suoratoistopalvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika / Greek - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "VTP Streaming Client", // English - "VTP Streaming Client", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "VTP-suoratoistoasiakas ", // suomi - "", // Polski - "", // Español - "", // Ellinika / Greek - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Start VDR-to-VDR Server", // English - "VDR-zu-VDR Server starten", // Deutsch - "", // Slovenski - "Avvia il Server VDR-toVDR", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Käynnistä VDR-palvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika / Greek - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Start HTTP Server", // English - "HTTP Server starten", // Deutsch - "", // Slovenski - "Avvia il Server HTTP", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Käynnistä HTTP-palvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "HTTP Streamtype", // English - "HTTP Streamtyp", // Deutsch - "", // Slovenski - "Tipo di Stream HTTP", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "HTTP-lähetysmuoto", // Suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Start Client", // English - "Client starten", // Deutsch - "", // Slovenski - "Avvia il Client", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Käynnistä VDR-asiakas", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "VDR-to-VDR Server Port", // English - "Port des VDR-zu-VDR Servers", // Deutsch - "", // Slovenski - "Porta del Server VDR-to-VDR", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "VDR-palvelimen portti", // Suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "HTTP Server Port", // English - "Port des HTTP Servers", // Deutsch - "", // Slovenski - "Porta del Server HTTP", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "HTTP-palvelimen portti", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Maximum Number of Clients", // English - "Maximalanzahl an Clients", // Deutsch - "", // Slovenski - "Numero Massimo di Client", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Suurin sallittu asiakkaiden määrä", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Remote IP", // English - "IP der Gegenseite", // Deutsch - "", // Slovenski - "Indirizzo IP del Server", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Etäkoneen IP-osoite", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Remote Port", // English - "Port der Gegenseite", // Deutsch - "", // Slovenski - "Porta del Server Remoto", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Etäkoneen portti", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Remote Streamtype", // English - "Streamtyp von Gegenseite", // Deutsch - "", // Slovenski - "Tipo di Stream", // Italiano (oppure Flusso ?) - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Etäkoneen lähetysmuoto", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Common Settings", // English - "Allgemeines", // Deutsch - "", // Slovenski - "Settaggi Comuni", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Yleiset asetukset", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "VDR-to-VDR Server", // English - "VDR-zu-VDR Server", // Deutsch - "", // Slovenski - "Server VDR-to-VDR", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "VDR-palvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "HTTP Server", // English - "HTTP Server", // Deutsch - "", // Slovenski - "Server HTTP", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "HTTP-palvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "VDR-to-VDR Client", // English - "VDR-zu-VDR Client", // Deutsch - "", // Slovenski - "Client VDR-to-VDR", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "VDR-asiakas", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Please restart VDR to activate changes", // English - "Bitte starten Sie für die Änderungen VDR neu", // Deutsch - "", // Slovenski - "Riavviare VDR per attivare i cambiamenti", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Aktivoi muutokset käynnistämällä VDR uudelleen", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Synchronize EPG", // English - "EPG synchronisieren", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Päivitä ohjelmaopas", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Suspend Live TV", // English - "Live-TV pausieren", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Pysäytä suora TV-lähetys", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Suspend behaviour", // English - "Pausierverhalten", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Pysäytystoiminto", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Offer suspend mode", // English - "Pausieren anbieten", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "tyrkytä", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Always suspended", // English - "Immer pausiert", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "aina", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Never suspended", // English - "Nie pausiert", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "ei koskaan", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Suspend Server", // English - "Server pausieren", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Pysäytä palvelin", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Server is suspended", // English - "Server ist pausiert", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Palvelin on pysäytetty", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Couldn't suspend Server!", // English - "Konnte Server nicht pausieren!", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Palvelinta ei onnistuttu pysäyttämään!", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Client may suspend", // English - "Client darf pausieren", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Asiakas saa pysäyttää palvelimen", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Bind to IP", // English - "", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Sido osoitteeseen", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Filter Streaming", // English - "", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Suodatetun tiedon suoratoisto", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Streaming active", // English - "Streamen im Gange", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Suoratoistopalvelin aktiivinen", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { "Hide Mainmenu Entry", // English - "Hauptmenüeintrag verstecken", // Deutsch - "", // Slovenski - "", // Italiano - "", // Nederlands - "", // Português - "", // Français - "", // Norsk - "Piilota valinta päävalikosta", // suomi - "", // Polski - "", // Español - "", // Ellinika - "", // Svenska - "", // Romaneste - "", // Magyar - "", // Catala - "", // Russian - "", // Hrvatski - "", // Eesti - "", // Dansk - "", // Czech -#if VDRVERSNUM >= 10502 - "", // Türkçe -#endif - }, - { NULL } -}; @@ -1,16 +0,0 @@ -/* - * $Id: i18n.h,v 1.1 2004/12/30 22:43:58 lordjaxom Exp $ - */ - -#ifndef VDR_STREAMDEV_I18N_H -#define VDR_STREAMDEV_I18N_H - -#include <vdr/i18n.h> - -extern const char *i18n_name; -extern const tI18nPhrase Phrases[]; - -#undef tr -#define tr(s) I18nTranslate(s, i18n_name) - -#endif // VDR_STREAMDEV_I18N_H diff --git a/patches/respect_ca.diff b/patches/respect_ca.diff deleted file mode 100644 index 8240b19..0000000 --- a/patches/respect_ca.diff +++ /dev/null @@ -1,43 +0,0 @@ -# The cannels.conf ca field can be used to bind a channel to a specific -# device. The streamdev-client does not consider this information, so -# there's no way to keep VDR from using streamdev for a specific -# channel. Apply this patch if you need this feature. -# -# This fix should probably become part of streamdev. However as it -# changes the behaviour of streamdev, I decided to keep it as a separate -# patch until there is something like a new official streamdev release. -# ---- client/device.h.bak 2006-11-09 12:25:21.000000000 +0100 -+++ client/device.h 2006-11-09 12:26:57.000000000 +0100 -@@ -50,6 +50,7 @@ - cStreamdevDevice(void); - virtual ~cStreamdevDevice(); - -+ virtual int ProvidesCa(const cChannel *Channel) const; - virtual bool ProvidesSource(int Source) const; - virtual bool ProvidesTransponder(const cChannel *Channel) const; - virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, ---- client/device.c.bak 2006-11-09 12:23:24.000000000 +0100 -+++ client/device.c 2006-11-09 12:35:48.000000000 +0100 -@@ -57,6 +57,12 @@ - #endif - } - -+int cStreamdevDevice::ProvidesCa(const cChannel *Channel) const -+{ -+ // Encrypted is acceptable for now. Will ask the server later. -+ return Channel->Ca() <= CA_DVB_MAX ? cDevice::ProvidesCa(Channel) : 1; -+} -+ - bool cStreamdevDevice::ProvidesSource(int Source) const { - Dprintf("ProvidesSource, Source=%d\n", Source); - return false; -@@ -78,7 +84,7 @@ - if (ClientSocket.DataSocket(siLive) != NULL - && TRANSPONDER(Channel, m_Channel)) - res = true; -- else { -+ else if (ProvidesCa(Channel)) { - res = prio && ClientSocket.ProvidesChannel(Channel, Priority); - ndr = true; - } diff --git a/patches/vdr-1.6.0-ignore_missing_cam.diff b/patches/vdr-1.6.0-ignore_missing_cam.diff new file mode 100644 index 0000000..60d93bd --- /dev/null +++ b/patches/vdr-1.6.0-ignore_missing_cam.diff @@ -0,0 +1,13 @@ +--- device.c.orig 2008-03-28 11:47:25.000000000 +0100 ++++ device.c 2008-03-28 11:47:09.000000000 +0100 +@@ -375,8 +375,8 @@ + } + } + } +- if (!NumUsableSlots) +- return NULL; // no CAM is able to decrypt this channel ++// if (!NumUsableSlots) ++// return NULL; // no CAM is able to decrypt this channel + } + + bool NeedsDetachReceivers = false; diff --git a/po/de_DE.po b/po/de_DE.po new file mode 100644 index 0000000..6f723ae --- /dev/null +++ b/po/de_DE.po @@ -0,0 +1,100 @@ +# VDR streamdev plugin language source file. +# Copyright (C) 2008 streamdev development team. See http://streamdev.vdr-developer.org +# This file is distributed under the same license as the VDR streamdev package. +# Frank Schmirler <vdrdev@schmirler.de>, 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: streamdev 0.5.0\n" +"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" +"POT-Creation-Date: 2008-04-01 17:05+0200\n" +"PO-Revision-Date: 2008-03-30 02:11+0200\n" +"Last-Translator: Frank Schmirler <vdrdev@schmirler.de>\n" +"Language-Team: <vdr@linuxtv.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "VTP Streaming Client" +msgstr "VTP Streaming Client" + +msgid "Suspend Server" +msgstr "Server pausieren" + +msgid "Server is suspended" +msgstr "Server ist pausiert" + +msgid "Couldn't suspend Server!" +msgstr "Konnte Server nicht pausieren!" + +msgid "Start Client" +msgstr "Client starten" + +msgid "Remote IP" +msgstr "IP der Gegenseite" + +msgid "Remote Port" +msgstr "Port der Gegenseite" + +msgid "Filter Streaming" +msgstr "Metainformationen streamen" + +msgid "Synchronize EPG" +msgstr "EPG synchronisieren" + +msgid "Hide Mainmenu Entry" +msgstr "Hauptmenüeintrag verstecken" + +msgid "VDR Streaming Server" +msgstr "VDR Streaming Server" + +msgid "Streaming active" +msgstr "Streamen im Gange" + +msgid "Suspend Live TV" +msgstr "Live-TV pausieren" + +msgid "Common Settings" +msgstr "Allgemeines" + +msgid "Maximum Number of Clients" +msgstr "Maximalanzahl an Clients" + +msgid "Suspend behaviour" +msgstr "Pausierverhalten" + +msgid "Client may suspend" +msgstr "Client darf pausieren" + +msgid "VDR-to-VDR Server" +msgstr "VDR-zu-VDR Server" + +msgid "Start VDR-to-VDR Server" +msgstr "VDR-zu-VDR Server starten" + +msgid "VDR-to-VDR Server Port" +msgstr "Port des VDR-zu-VDR Servers" + +msgid "Bind to IP" +msgstr "An bestimmte IP binden" + +msgid "HTTP Server" +msgstr "HTTP Server" + +msgid "Start HTTP Server" +msgstr "HTTP Server starten" + +msgid "HTTP Server Port" +msgstr "Port des HTTP Servers" + +msgid "HTTP Streamtype" +msgstr "HTTP Streamtyp" + +msgid "Offer suspend mode" +msgstr "Pausieren anbieten" + +msgid "Always suspended" +msgstr "Immer pausiert" + +msgid "Never suspended" +msgstr "Nie pausiert" diff --git a/po/fi_FI.po b/po/fi_FI.po new file mode 100644 index 0000000..6a5a157 --- /dev/null +++ b/po/fi_FI.po @@ -0,0 +1,100 @@ +# VDR streamdev plugin language source file. +# Copyright (C) 2008 streamdev development team. See http://streamdev.vdr-developer.org +# This file is distributed under the same license as the VDR streamdev package. +# Rolf Ahrenberg <rahrenbe@cc.hut.fi>, 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: streamdev 0.5.0\n" +"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" +"POT-Creation-Date: 2008-04-01 17:05+0200\n" +"PO-Revision-Date: 2008-03-30 02:11+0200\n" +"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n" +"Language-Team: <vdr@linuxtv.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "VTP Streaming Client" +msgstr "VTP-suoratoistoasiakas" + +msgid "Suspend Server" +msgstr "Pysäytä palvelin" + +msgid "Server is suspended" +msgstr "Palvelin on pysäytetty" + +msgid "Couldn't suspend Server!" +msgstr "Palvelinta ei onnistuttu pysäyttämään!" + +msgid "Start Client" +msgstr "Käynnistä VDR-asiakas" + +msgid "Remote IP" +msgstr "Etäkoneen IP-osoite" + +msgid "Remote Port" +msgstr "Etäkoneen portti" + +msgid "Filter Streaming" +msgstr "Suodatetun tiedon suoratoisto" + +msgid "Synchronize EPG" +msgstr "Päivitä ohjelmaopas" + +msgid "Hide Mainmenu Entry" +msgstr "Piilota valinta päävalikosta" + +msgid "VDR Streaming Server" +msgstr "VDR-suoratoistopalvelin" + +msgid "Streaming active" +msgstr "Suoratoistopalvelin aktiivinen" + +msgid "Suspend Live TV" +msgstr "Pysäytä suora TV-lähetys" + +msgid "Common Settings" +msgstr "Yleiset asetukset" + +msgid "Maximum Number of Clients" +msgstr "Suurin sallittu asiakkaiden määrä" + +msgid "Suspend behaviour" +msgstr "Pysäytystoiminto" + +msgid "Client may suspend" +msgstr "Asiakas saa pysäyttää palvelimen" + +msgid "VDR-to-VDR Server" +msgstr "VDR-palvelin" + +msgid "Start VDR-to-VDR Server" +msgstr "Käynnistä VDR-palvelin" + +msgid "VDR-to-VDR Server Port" +msgstr "VDR-palvelimen portti" + +msgid "Bind to IP" +msgstr "Sido osoitteeseen" + +msgid "HTTP Server" +msgstr "HTTP-palvelin" + +msgid "Start HTTP Server" +msgstr "Käynnistä HTTP-palvelin" + +msgid "HTTP Server Port" +msgstr "HTTP-palvelimen portti" + +msgid "HTTP Streamtype" +msgstr "HTTP-lähetysmuoto" + +msgid "Offer suspend mode" +msgstr "tyrkytä" + +msgid "Always suspended" +msgstr "aina" + +msgid "Never suspended" +msgstr "ei koskaan" diff --git a/server/connection.c b/server/connection.c index 629ed1d..3e00aa7 100644 --- a/server/connection.c +++ b/server/connection.c @@ -1,5 +1,5 @@ /* - * $Id: connection.c,v 1.10 2007/05/07 12:25:11 schmirl Exp $ + * $Id: connection.c,v 1.11 2008/04/08 14:18:18 schmirl Exp $ */ #include "server/connection.h" @@ -139,11 +139,7 @@ cDevice *cServerConnection::GetDevice(const cChannel *Channel, int Priority) Dprintf(" * GetDevice(const cChannel*, int)\n"); Dprintf(" * -------------------------------\n"); -#if VDRVERSNUM < 10500 - device = cDevice::GetDevice(Channel, Priority); -#else device = cDevice::GetDevice(Channel, Priority, false); -#endif Dprintf(" * Found following device: %p (%d)\n", device, device ? device->CardIndex() + 1 : 0); @@ -161,11 +157,7 @@ cDevice *cServerConnection::GetDevice(const cChannel *Channel, int Priority) const cChannel *current = Channels.GetByNumber(cDevice::CurrentChannel()); isyslog("streamdev-server: Detaching current receiver"); Detach(); -#if VDRVERSNUM < 10500 - device = cDevice::GetDevice(Channel, Priority); -#else device = cDevice::GetDevice(Channel, Priority, false); -#endif Attach(); Dprintf(" * Found following device: %p (%d)\n", device, device ? device->CardIndex() + 1 : 0); diff --git a/server/livestreamer.c b/server/livestreamer.c index 63a0738..dd65e65 100644 --- a/server/livestreamer.c +++ b/server/livestreamer.c @@ -27,23 +27,13 @@ protected: virtual void Receive(uchar *Data, int Length); public: -#if VDRVERSNUM < 10500 - cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, int Ca, int Priority, const int *Pids); -#else cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids); -#endif virtual ~cStreamdevLiveReceiver(); }; -#if VDRVERSNUM < 10500 -cStreamdevLiveReceiver::cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, int Ca, - int Priority, const int *Pids): - cReceiver(Ca, Priority, 0, Pids), -#else cStreamdevLiveReceiver::cStreamdevLiveReceiver(cStreamdevStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids): cReceiver(ChannelID, Priority, 0, Pids), -#endif m_Streamer(Streamer) { } @@ -434,11 +424,7 @@ void cStreamdevLiveStreamer::StartReceiver(void) DELETENULL(m_Receiver); if (m_NumPids > 0) { Dprintf("Creating Receiver to respect changed pids\n"); -#if VDRVERSNUM < 10500 - m_Receiver = new cStreamdevLiveReceiver(this, m_Channel->Ca(), m_Priority, m_Pids); -#else m_Receiver = new cStreamdevLiveReceiver(this, m_Channel->GetChannelID(), m_Priority, m_Pids); -#endif if (IsRunning() && m_Device != NULL) { Dprintf("Attaching new receiver\n"); Attach(); diff --git a/server/menuHTTP.c b/server/menuHTTP.c index b5bb299..89ca070 100644 --- a/server/menuHTTP.c +++ b/server/menuHTTP.c @@ -364,10 +364,8 @@ std::string cHtmlChannelList::ItemText() // ******************** cM3uChannelList ****************** cM3uChannelList::cM3uChannelList(cChannelIterator *Iterator, const char* Base) -: cChannelList(Iterator) -#if defined(APIVERSNUM) && APIVERSNUM >= 10503 - , m_IConv(cCharSetConv::SystemCharacterTable(), "UTF-8") -#endif +: cChannelList(Iterator), + m_IConv(cCharSetConv::SystemCharacterTable(), "UTF-8") { base = strdup(Base); m3uState = msFirst; @@ -398,11 +396,7 @@ std::string cM3uChannelList::Next() return ""; } -#if defined(APIVERSNUM) && APIVERSNUM >= 10503 std::string name = (std::string) m_IConv.Convert(channel->Name()); -#else - std::string name = channel->Name(); -#endif if (channel->GroupSep()) { diff --git a/server/menuHTTP.h b/server/menuHTTP.h index 8be613b..fa699b9 100644 --- a/server/menuHTTP.h +++ b/server/menuHTTP.h @@ -126,9 +126,7 @@ class cM3uChannelList: public cChannelList char *base; enum eM3uState { msFirst, msContinue, msLast }; eM3uState m3uState; -#if defined(APIVERSNUM) && APIVERSNUM >= 10503 cCharSetConv m_IConv; -#endif public: virtual std::string HttpHeader() { return cChannelList::HttpHeader() + "Content-type: audio/x-mpegurl\r\n"; }; virtual bool HasNext(); diff --git a/server/setup.c b/server/setup.c index 4b43adf..8af8920 100644 --- a/server/setup.c +++ b/server/setup.c @@ -1,12 +1,11 @@ /* - * $Id: setup.c,v 1.3 2008/04/07 14:50:33 schmirl Exp $ + * $Id: setup.c,v 1.4 2008/04/08 14:18:18 schmirl Exp $ */ #include <vdr/menuitems.h> #include "server/setup.h" #include "server/server.h" -#include "i18n.h" cStreamdevServerSetup StreamdevServerSetup; diff --git a/streamdev-client.c b/streamdev-client.c index 340ff52..bc9403c 100644 --- a/streamdev-client.c +++ b/streamdev-client.c @@ -3,19 +3,18 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: streamdev-client.c,v 1.5 2008/04/07 14:50:32 schmirl Exp $ + * $Id: streamdev-client.c,v 1.6 2008/04/08 14:18:15 schmirl Exp $ */ #include "streamdev-client.h" #include "client/device.h" #include "client/setup.h" -#include "i18n.h" -#if VDRVERSNUM < 10400 -#error "VDR-1.4.0 or greater is required" +#if !defined(APIVERSNUM) || APIVERSNUM < 10509 +#error "VDR-1.5.9 API version or greater is required!" #endif -const char *cPluginStreamdevClient::DESCRIPTION = "VTP Streaming Client"; +const char *cPluginStreamdevClient::DESCRIPTION = trNOOP("VTP Streaming Client"); cPluginStreamdevClient::cPluginStreamdevClient(void) { } @@ -28,12 +27,9 @@ const char *cPluginStreamdevClient::Description(void) { } bool cPluginStreamdevClient::Start(void) { - i18n_name = Name(); - RegisterI18n(Phrases); - + I18nRegister(PLUGIN_NAME_I18N); cStreamdevDevice::Init(); - - return true; + return true; } void cPluginStreamdevClient::Housekeeping(void) { diff --git a/streamdev-server.c b/streamdev-server.c index 2faca73..40ba309 100644 --- a/streamdev-server.c +++ b/streamdev-server.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: streamdev-server.c,v 1.7 2008/04/07 14:27:27 schmirl Exp $ + * $Id: streamdev-server.c,v 1.8 2008/04/08 14:18:15 schmirl Exp $ */ #include <getopt.h> @@ -12,13 +12,12 @@ #include "server/server.h" #include "server/suspend.h" #include "remux/extern.h" -#include "i18n.h" -#if VDRVERSNUM < 10400 -#error "VDR-1.4.0 or greater is required" +#if !defined(APIVERSNUM) || APIVERSNUM < 10509 +#error "VDR-1.5.9 API version or greater is required!" #endif -const char *cPluginStreamdevServer::DESCRIPTION = "VDR Streaming Server"; +const char *cPluginStreamdevServer::DESCRIPTION = trNOOP("VDR Streaming Server"); cPluginStreamdevServer::cPluginStreamdevServer(void) { @@ -62,9 +61,7 @@ bool cPluginStreamdevServer::ProcessArgs(int argc, char *argv[]) bool cPluginStreamdevServer::Start(void) { - i18n_name = Name(); - RegisterI18n(Phrases); - + I18nRegister(PLUGIN_NAME_I18N); if (!StreamdevHosts.Load(STREAMDEVHOSTSPATH, true, true)) { esyslog("streamdev-server: error while loading %s", STREAMDEVHOSTSPATH); fprintf(stderr, "streamdev-server: error while loading %s\n", STREAMDEVHOSTSPATH); |