Version 1.7.34

VDR developer version 1.7.34 is now available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.34.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-1.7.34.diff

and a helper patch for plugin Makefiles can be found at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-pluginmakefile.diff

MD5 checksums:

55d9aba62563efe39ee040e987f7023c  vdr-1.7.34.tar.bz2
019ba806b263f7054dbd0da8956ea73b  vdr-1.7.33-1.7.34.diff
6c2b8efe5eead6822f006bc867ccb324  vdr-1.7.33-pluginmakefile.diff

WARNING:
========

This is a developer version. Even though I use it in my productive
environment. I strongly recommend that you only use it under controlled
conditions and for testing and debugging.

IMPORTANT:
==========

This version comes with revised versions of the Makefiles for VDR itself
and all of its standard plugins. As a result of this, existing plugins
will no longer build with this version of VDR, unless their Makefiles are
properly adapted. To do so, please follow the instructions given below.
There is also a generic patch (see below) that might help you update your
plugin's Makefile. If you do want to build this version of VDR with plugins
that don't have their Makefiles adapted yet, you can simply copy the Makefile,
Make.global and Make.config (if applicable) files from a previous version
of VDR into this source and use them. Note, though, that you cannot mix
old and new Makefiles. All Makefiles for VDR and all plugins must be either
old or new!
PLEASE GIVE THE PLUGIN DEVELOPERS SOME TIME TO ADAPT THEIR MAKEFILES
ACCORDINGLY. AFTER ALL, IT'S CHRISTMAS, SO THEY PROBABLY HAVE BETTER
THINGS TO DO THAN SIT AT THEIR COMPUTERS ;-).

From the HISTORY file:
- Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from
  'int' to 'eTimerEvent' (reported by Christoph Haubrich).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed cOsd::GetBitmap() to always return NULL if a non-exising area is requested.
- Added several missing "`ls $^`" in the calls to xgettext in plugin Makefiles and the
  "newplugin" script.
- Fixed setting the --package-name and --package-version options in the calls to
  xgettext in several plugin Makefiles.
- Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the
  DEFINES in the Makefile (somehow got lost from Make.config.template in version 1.7.13).
- Removed some redundancy in the Makefile/Make.global/Make.config mechanism (suggested
  by Christopher Reimer). The file Make.global is no longer used, and plugin Makefiles
  don't include the file Make.config any more. Instead they now retrieve all necessary
  information through calls to pkg-config.
- The plugin Makefiles now have a separate 'install' target (suggested by Christopher
  Reimer). In order to still allow the normal building of VDR (with all plugins in its
  ./PLUGINS/src subdirectory, the plugin libraries in ./PLUGINS/lib and the i18n files in
  ./locale) the VDR Makefile checks the settings of LIBDIR and LOCDIR when building the
  plugins from within the VDR source directory. If these macros have their default values,
  then the 'install' targets of the plugins' Makefiles are called. Otherwise the 'all'
  targets are called and the plugins are merely built, and will have to be installed by a
  call to 'make install-plugins'. This now also allows a user to copy a plugin source to
  any directory, change into that directory and do 'make' and 'make install' to have the
  plugin installed to wherever the local installation of VDR expects them.
- Plugin Makefiles now use DESTDIR and the 'install' program (thanks to Christopher Reimer).
- Due to the changes to the plugin Makefiles, existing plugins will not build with this
  version of VDR any more. You can either use the new 'newplugin' script to generate a
  dummy plugin directory and use the Makefile from there (adapting it to your particular
  plugin), or apply the patch from
  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-pluginmakefile.diff
  to your Makefile to make the necessary changes (see comments in that file for details).
- Added the new menu categories mcChannelEdit, mcTimerEdit, mcScheduleNow, mcScheduleNext,
  mcRecordingInfo, mcPluginSetup, mcSetupOsd, mcSetupEpg, mcSetupDvb, mcSetupLnb,
  mcSetupCam, mcSetupRecord, mcSetupReplay, mcSetupMisc and mcSetupPlugins.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed replay stuttering close to the end of an ongoing recording (reported by Andreas
  Regel).
- Fixed cIndexFile::GetNextIFrame() to properly handle the case where the very last frame
  is an I-frame (which normally shouldn't occur).
- Fixed replaying ongoing recordings from other VDR instances.
This commit is contained in:
Klaus Schmidinger 2012-12-24 10:39:00 +01:00 committed by Dieter Hametner
parent 5109addf9c
commit 15485a5e06
94 changed files with 691 additions and 818 deletions

View File

@ -1453,6 +1453,7 @@ Andreas Regel <andreas.regel@gmx.de>
for making cDevice::AddPid() store the stream type of the given pid for making cDevice::AddPid() store the stream type of the given pid
for adding cFont::FontName() and cFont::Size() for adding cFont::FontName() and cFont::Size()
for writing the dvbhddevice plugin for writing the dvbhddevice plugin
for reporting replay stuttering close to the end of an ongoing recording
Thomas Bergwinkl <Thomas.Bergwinkl@vr-web.de> Thomas Bergwinkl <Thomas.Bergwinkl@vr-web.de>
for fixing the validity check for channel IDs, because some providers use TIDs for fixing the validity check for channel IDs, because some providers use TIDs
@ -2321,6 +2322,8 @@ Christoph Haubrich <christoph1.haubrich@arcor.de>
for suggesting to check for NULL in cOsd::AddPixmap() for suggesting to check for NULL in cOsd::AddPixmap()
for making modified editing marks be written to disk whenever the replay progress for making modified editing marks be written to disk whenever the replay progress
display gets hidden display gets hidden
for reporting a wrong type ('int' vs. 'eTimerEvent') in the declaration of
cSkinDisplayMenu::SetItemEvent()
Pekka Mauno <pekka.mauno@iki.fi> Pekka Mauno <pekka.mauno@iki.fi>
for fixing cSchedule::GetFollowingEvent() in case there is currently no present for fixing cSchedule::GetFollowingEvent() in case there is currently no present
@ -2807,6 +2810,10 @@ Christopher Reimer <reimer.christopher@freenet.de>
for reporting a problem with external Dolby Digital processing via the '-a' option for reporting a problem with external Dolby Digital processing via the '-a' option
in live mode and with TS recordings in live mode and with TS recordings
for contributing to a patch that implements FHS support for contributing to a patch that implements FHS support
for suggesting to remove some redundancy in the Makefile/Make.global/Make.config
mechanism
for suggesting to give the plugin Makefiles a separate 'install' target
for making plugin Makefiles use DESTDIR and the 'install' program
Stefan Huskamp <coca_cola1@gmx.de> Stefan Huskamp <coca_cola1@gmx.de>
for suggesting to make entering characters via the number keys for suggesting to make entering characters via the number keys

47
HISTORY
View File

@ -7342,8 +7342,8 @@ Video Disk Recorder Revision History
2012-12-08: Version 1.7.33 2012-12-08: Version 1.7.33
- In order to be able to play TS recordings from other sources, in which there is - In order to be able to play TS recordings from other sources, in which there is
more than one PMT PID in the PAT, 'int cPatPmtParser::PatPmt(void)' has been changed more than one PMT PID in the PAT, 'int cPatPmtParser::PmtPid(void)' has been changed
to 'bool cPatPmtParser::IsPatPmt(int Pid)'. to 'bool cPatPmtParser::IsPmtPid(int Pid)'.
- Fixed learning remote control keys with the LCARS skin. - Fixed learning remote control keys with the LCARS skin.
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski). - Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
- Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() (reported - Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() (reported
@ -7416,3 +7416,46 @@ Video Disk Recorder Revision History
SetItemRecording() of the cSkinDisplayMenu class can be reimplemented by skin SetItemRecording() of the cSkinDisplayMenu class can be reimplemented by skin
plugins to display these items in a more elaborate way than just a simple line of plugins to display these items in a more elaborate way than just a simple line of
text. text.
2012-12-24: Version 1.7.34
- Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from
'int' to 'eTimerEvent' (reported by Christoph Haubrich).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed cOsd::GetBitmap() to always return NULL if a non-exising area is requested.
- Added several missing "`ls $^`" in the calls to xgettext in plugin Makefiles and the
"newplugin" script.
- Fixed setting the --package-name and --package-version options in the calls to
xgettext in several plugin Makefiles.
- Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the
DEFINES in the Makefile (somehow got lost from Make.config.template in version 1.7.13).
- Removed some redundancy in the Makefile/Make.global/Make.config mechanism (suggested
by Christopher Reimer). The file Make.global is no longer used, and plugin Makefiles
don't include the file Make.config any more. Instead they now retrieve all necessary
information through calls to pkg-config.
- The plugin Makefiles now have a separate 'install' target (suggested by Christopher
Reimer). In order to still allow the normal building of VDR (with all plugins in its
./PLUGINS/src subdirectory, the plugin libraries in ./PLUGINS/lib and the i18n files in
./locale) the VDR Makefile checks the settings of LIBDIR and LOCDIR when building the
plugins from within the VDR source directory. If these macros have their default values,
then the 'install' targets of the plugins' Makefiles are called. Otherwise the 'all'
targets are called and the plugins are merely built, and will have to be installed by a
call to 'make install-plugins'. This now also allows a user to copy a plugin source to
any directory, change into that directory and do 'make' and 'make install' to have the
plugin installed to wherever the local installation of VDR expects them.
- Plugin Makefiles now use DESTDIR and the 'install' program (thanks to Christopher Reimer).
- Due to the changes to the plugin Makefiles, existing plugins will not build with this
version of VDR any more. You can either use the new 'newplugin' script to generate a
dummy plugin directory and use the Makefile from there (adapting it to your particular
plugin), or apply the patch from
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-pluginmakefile.diff
to your Makefile to make the necessary changes (see comments in that file for details).
- Added the new menu categories mcChannelEdit, mcTimerEdit, mcScheduleNow, mcScheduleNext,
mcRecordingInfo, mcPluginSetup, mcSetupOsd, mcSetupEpg, mcSetupDvb, mcSetupLnb,
mcSetupCam, mcSetupRecord, mcSetupReplay, mcSetupMisc and mcSetupPlugins.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed replay stuttering close to the end of an ongoing recording (reported by Andreas
Regel).
- Fixed cIndexFile::GetNextIFrame() to properly handle the case where the very last frame
is an I-frame (which normally shouldn't occur).
- Fixed replaying ongoing recordings from other VDR instances.

View File

@ -6,7 +6,7 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # how to reach the author.
# #
# $Id: Make.config.template 2.10 2012/10/09 10:32:32 kls Exp $ # $Id: Make.config.template 2.12 2012/12/22 10:54:47 kls Exp $
### The C compiler and options: ### The C compiler and options:
@ -14,12 +14,10 @@ CC = gcc
CFLAGS = -g -O3 -Wall CFLAGS = -g -O3 -Wall
CXX = g++ CXX = g++
CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses CXXFLAGS = $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses
ifdef PLUGIN
CFLAGS += -fPIC CFLAGS += -fPIC
CXXFLAGS += -fPIC CXXFLAGS += -fPIC
endif
# Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine: # Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine:
ifdef M32 ifdef M32
@ -29,15 +27,16 @@ endif
### The directory environment: ### The directory environment:
PREFIX = $(DESTDIR)/usr/local PREFIX = /usr/local
#DVBDIR = /usr/src/v4l-dvb/linux #DVBDIR = /usr/src/v4l-dvb/linux
MANDIR = $(PREFIX)/man MANDIR = $(PREFIX)/man
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
# By default locale and plugin files are built under the source directory: # By default locale and plugin files are built under the source directory:
LOCDIR = ./locale INCDIR = $(CWD)/include
PLUGINDIR = ./PLUGINS LOCDIR = $(CWD)/locale
PLUGINLIBDIR = $(PLUGINDIR)/lib PLUGINDIR = $(CWD)/PLUGINS
LIBDIR = $(PLUGINDIR)/lib
# By default VDR requires only one single directory to operate: # By default VDR requires only one single directory to operate:
VIDEODIR = /video VIDEODIR = /video
# Activate the following line to build VDR according to the FHS ("File system Hierarchy Standard"): # Activate the following line to build VDR according to the FHS ("File system Hierarchy Standard"):
@ -47,8 +46,9 @@ VIDEODIR = /srv/vdr/video
CONFDIR = /var/lib/vdr CONFDIR = /var/lib/vdr
CACHEDIR = /var/cache/vdr CACHEDIR = /var/cache/vdr
RESDIR = $(PREFIX)/share/vdr RESDIR = $(PREFIX)/share/vdr
INCDIR = $(PREFIX)/include
LOCDIR = $(PREFIX)/share/locale LOCDIR = $(PREFIX)/share/locale
PLUGINLIBDIR = $(PREFIX)/lib/vdr LIBDIR = $(PREFIX)/lib/vdr
endif endif
### The remote control: ### The remote control:

View File

@ -1,17 +0,0 @@
#
# Strictly necessary Makefile options for the Video Disk Recorder
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.global 1.1 2010/02/06 14:54:12 kls Exp $
# Plugins need to be compiled with position independent code, otherwise linking
# VDR against it will fail.
ifdef PLUGIN
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE

View File

@ -4,28 +4,39 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # how to reach the author.
# #
# $Id: Makefile 2.30 2012/10/09 08:32:25 kls Exp $ # $Id: Makefile 2.36 2012/12/23 11:28:13 kls Exp $
.DELETE_ON_ERROR: .DELETE_ON_ERROR:
# Compiler flags:
CC ?= gcc CC ?= gcc
CFLAGS ?= -g -O3 -Wall CFLAGS ?= -g -O3 -Wall
CXX ?= g++ CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses CXXFLAGS ?= $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses
CFLAGS += -fPIC
CXXFLAGS += -fPIC
CDEFINES = -D_GNU_SOURCE
CDEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
# Directories:
CWD := $(shell pwd)
LSIDIR = ./libsi LSIDIR = ./libsi
DESTDIR ?= DESTDIR ?=
PREFIX ?= /usr/local PREFIX ?= /usr/local
MANDIR ?= $(PREFIX)/share/man MANDIR ?= $(PREFIX)/share/man
BINDIR ?= $(PREFIX)/bin BINDIR ?= $(PREFIX)/bin
INCDIR ?= $(PREFIX)/include INCDIR ?= $(CWD)/include
LOCDIR ?= ./locale LOCDIR ?= $(CWD)/locale
LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig) LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig)
INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig) INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
PLUGINDIR= ./PLUGINS PLUGINDIR= $(CWD)/PLUGINS
PLUGINLIBDIR= $(PLUGINDIR)/lib LIBDIR = $(PLUGINDIR)/lib
# By default VDR requires only one single directory to operate: # By default VDR requires only one single directory to operate:
VIDEODIR = /video VIDEODIR = /video
@ -36,7 +47,6 @@ DOXYFILE = Doxyfile
PCDIR ?= $(firstword $(subst :, , ${PKG_CONFIG_PATH}:$(shell pkg-config --variable=pc_path pkg-config):$(PREFIX)/lib/pkgconfig)) PCDIR ?= $(firstword $(subst :, , ${PKG_CONFIG_PATH}:$(shell pkg-config --variable=pc_path pkg-config):$(PREFIX)/lib/pkgconfig))
include Make.global
-include Make.config -include Make.config
SILIB = $(LSIDIR)/libsi.a SILIB = $(LSIDIR)/libsi.a
@ -48,6 +58,8 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d
skinclassic.o skinlcars.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\ skinclassic.o skinlcars.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\
timers.o tools.o transfer.o vdr.o videodir.o timers.o tools.o transfer.o vdr.o videodir.o
DEFINES += $(CDEFINES)
ifndef NO_KBD ifndef NO_KBD
DEFINES += -DREMOTE_KBD DEFINES += -DREMOTE_KBD
endif endif
@ -66,14 +78,11 @@ endif
LIRC_DEVICE ?= /var/run/lirc/lircd LIRC_DEVICE ?= /var/run/lirc/lircd
DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\" DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\"
DEFINES += -D_GNU_SOURCE
DEFINES += -DVIDEODIR=\"$(VIDEODIR)\" DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
DEFINES += -DCONFDIR=\"$(CONFDIR)\" DEFINES += -DCONFDIR=\"$(CONFDIR)\"
DEFINES += -DCACHEDIR=\"$(CACHEDIR)\" DEFINES += -DCACHEDIR=\"$(CACHEDIR)\"
DEFINES += -DRESDIR=\"$(RESDIR)\" DEFINES += -DRESDIR=\"$(RESDIR)\"
DEFINES += -DPLUGINDIR=\"$(PLUGINLIBDIR)\" DEFINES += -DPLUGINDIR=\"$(LIBDIR)\"
DEFINES += -DLOCDIR=\"$(LOCDIR)\" DEFINES += -DLOCDIR=\"$(LOCDIR)\"
# Default values for directories: # Default values for directories:
@ -87,7 +96,7 @@ RESDIRDEF = $(firstword $(RESDIR) $(CONFDIRDEF))
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h) VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h) APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
all: vdr i18n vdr.pc all: vdr i18n plugins
# Implicit rules: # Implicit rules:
@ -106,27 +115,27 @@ $(DEPFILE): Makefile
# The main program: # The main program:
vdr: $(OBJS) $(SILIB) vdr: $(OBJS) $(SILIB)
$(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(LIBDIRS) $(SILIB) -o vdr $(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(SILIB) -o vdr
# The libsi library: # The libsi library:
$(SILIB): $(SILIB):
$(MAKE) -C $(LSIDIR) all $(MAKE) --no-print-directory -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all
# pkg-config file: # pkg-config file:
vdr.pc: Makefile Make.global .PHONY: vdr.pc
vdr.pc:
@echo "bindir=$(BINDIR)" > $@ @echo "bindir=$(BINDIR)" > $@
@echo "includedir=$(INCDIR)" >> $@
@echo "configdir=$(CONFDIRDEF)" >> $@ @echo "configdir=$(CONFDIRDEF)" >> $@
@echo "videodir=$(VIDEODIR)" >> $@ @echo "videodir=$(VIDEODIR)" >> $@
@echo "cachedir=$(CACHEDIRDEF)" >> $@ @echo "cachedir=$(CACHEDIRDEF)" >> $@
@echo "resdir=$(RESDIRDEF)" >> $@ @echo "resdir=$(RESDIRDEF)" >> $@
@echo "plugindir=$(PLUGINLIBDIR)" >> $@ @echo "libdir=$(LIBDIR)" >> $@
@echo "localedir=$(LOCDIR)" >> $@ @echo "locdir=$(LOCDIR)" >> $@
@echo "apiversion=$(APIVERSION)" >> $@ @echo "apiversion=$(APIVERSION)" >> $@
@echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@ @echo "cflags=$(CFLAGS) $(CDEFINES) -I$(INCDIR)" >> $@
@echo "plugincflags=\$${cflags} -fPIC" >> $@ @echo "cxxflags=$(CXXFLAGS) $(CDEFINES) -I$(INCDIR)" >> $@
@echo "" >> $@ @echo "" >> $@
@echo "Name: VDR" >> $@ @echo "Name: VDR" >> $@
@echo "Description: Video Disk Recorder" >> $@ @echo "Description: Video Disk Recorder" >> $@
@ -157,7 +166,7 @@ $(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo
cp $< $@ cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) i18n: $(I18Nmsgs) $(I18Npot)
install-i18n: install-i18n:
@mkdir -p $(DESTDIR)$(LOCDIR) @mkdir -p $(DESTDIR)$(LOCDIR)
@ -173,23 +182,27 @@ include-dir:
# Plugins: # Plugins:
plugins: include-dir plugins: include-dir vdr.pc
@failed="";\ @failed="";\
noapiv="";\ noapiv="";\
for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\ for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
echo "Plugin $$i:";\ echo "*** Plugin $$i:";\
if ! grep -q "\$$(LIBDIR)/.*\$$(APIVERSION)" "$(PLUGINDIR)/src/$$i/Makefile" ; then\ if ! grep -q "\$$(LIBDIR)/.*\$$(APIVERSION)" "$(PLUGINDIR)/src/$$i/Makefile" ; then\
echo "ERROR: plugin $$i doesn't honor APIVERSION - not compiled!";\ echo "ERROR: plugin $$i doesn't honor APIVERSION - not compiled!";\
noapiv="$$noapiv $$i";\ noapiv="$$noapiv $$i";\
continue;\ continue;\
fi;\ fi;\
$(MAKE) -C "$(PLUGINDIR)/src/$$i" all || failed="$$failed $$i";\ target=all;\
if [ "$(LIBDIR)" == "$(CWD)/PLUGINS/lib" ] && [ "$(LOCDIR)" == "$(CWD)/locale" ]; then\
target=install;\
fi;\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR=$(CWD) $$target || failed="$$failed $$i";\
done;\ done;\
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\ if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
clean-plugins: clean-plugins:
@for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) -C "$(PLUGINDIR)/src/$$i" clean; done @for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" clean; done
@-rm -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) @-rm -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION)
# Install the files: # Install the files:
@ -225,8 +238,9 @@ install-doc:
# Plugins: # Plugins:
install-plugins: plugins install-plugins: plugins
@mkdir -p $(DESTDIR)$(PLUGINLIBDIR) @for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
@cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR) $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR=$(CWD) DESTDIR=$(DESTDIR) install;\
done
# Includes: # Includes:
@ -253,9 +267,10 @@ srcdoc:
# Housekeeping: # Housekeeping:
clean: clean:
$(MAKE) -C $(LSIDIR) clean @$(MAKE) --no-print-directory -C $(LSIDIR) clean
-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~ @-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~
-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot @-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot
-rm -rf include @-rm -rf include
-rm -rf srcdoc @-rm -rf srcdoc
CLEAN: clean CLEAN: clean
distclean: clean-plugins clean

View File

@ -1,53 +1,50 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 1.13 2012/03/11 15:34:00 kls Exp $ # $Id: Makefile 1.19 2012/12/23 10:01:00 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = dvbhddevice PLUGIN = dvbhddevice
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
LOCDIR = $(DESTDIR)$(call PKGCFG,locdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +52,7 @@ OBJS = $(PLUGIN).o dvbhdffdevice.o hdffcmd.o hdffosd.o menu.o setup.o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE) i18n
### Implicit rules: ### Implicit rules:
@ -74,34 +71,39 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.mo: %.po
msgfmt -c -o $@ $< msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c) $(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) install -D -m644 $< $@
cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot) i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) libhdffcmd $(SOFILE): $(OBJS) libhdffcmd
$(MAKE) -C libhdffcmd all @$(MAKE) --no-print-directory -C libhdffcmd all
$(CXX) $(CXXFLAGS) -shared $(OBJS) libhdffcmd/libhdffcmd.a -o $@ $(CXX) $(CXXFLAGS) -shared $(OBJS) libhdffcmd/libhdffcmd.a -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@ -112,5 +114,6 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
$(MAKE) -C libhdffcmd clean @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
@-$(MAKE) --no-print-directory -C libhdffcmd clean

View File

@ -24,29 +24,17 @@ CFLAGS ?= -g -O2 -fPIC -Wall
AR ?= ar AR ?= ar
ARFLAGS ?= r ARFLAGS ?= r
### The directory environment:
VDRDIR ?= ../../../..
### Make sure that necessary options are included:
include $(VDRDIR)/Make.global
### Allow user defined options to overwrite defaults:
-include $(VDRDIR)/Make.config
### Implicit rules: ### Implicit rules:
%.o: %.c %.o: %.c
$(CC) $(CFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CC) $(CFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CC) -MM -MG MAKEDEP = $(CC) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies
$(DEPFILE): Makefile $(DEPFILE): Makefile
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(LIB_OBJS:%.o=%.c) > $@
-include $(DEPFILE) -include $(DEPFILE)
@ -62,7 +50,7 @@ $(LIB_SHARED): $(LIB_OBJS)
ln -sf $(LIB_SHARED) $(LIB_NAME).so ln -sf $(LIB_SHARED) $(LIB_NAME).so
clean: clean:
rm -f $(LIB_OBJS) $(DEPFILE) $(LIB_STATIC) $(LIB_NAME)*.so @-rm -f $(LIB_OBJS) $(DEPFILE) $(LIB_STATIC) $(LIB_NAME)*.so
install: $(LIB_SHARED) install: $(LIB_SHARED)
chown root $(LIB_SHARED) chown root $(LIB_SHARED)

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR \n" "Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-11-13 20:08+0100\n" "POT-Creation-Date: 2012-11-13 20:08+0100\n"
"PO-Revision-Date: 2011-04-25 21:44+0200\n" "PO-Revision-Date: 2011-04-25 21:44+0200\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR \n" "Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-11-13 20:08+0100\n" "POT-Creation-Date: 2012-11-13 20:08+0100\n"
"PO-Revision-Date: 2011-04-25 21:44+0200\n" "PO-Revision-Date: 2011-04-25 21:44+0200\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR\n" "Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-11-13 20:08+0100\n" "POT-Creation-Date: 2012-11-13 20:08+0100\n"
"PO-Revision-Date: 2011-07-10 00:23+0100\n" "PO-Revision-Date: 2011-07-10 00:23+0100\n"

View File

@ -1,53 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 1.9 2012/03/11 15:34:02 kls Exp $ # $Id: Makefile 1.15 2012/12/23 10:01:12 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = dvbsddevice PLUGIN = dvbsddevice
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +51,7 @@ OBJS = $(PLUGIN).o dvbsdffdevice.o dvbsdffosd.o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE)
### Implicit rules: ### Implicit rules:
@ -71,38 +67,17 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.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 $< $@
.PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)
@ -111,4 +86,4 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -1,53 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 1.2 2012/03/11 15:34:04 kls Exp $ # $Id: Makefile 1.8 2012/12/23 10:01:40 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = epgtableid0 PLUGIN = epgtableid0
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +51,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE)
### Implicit rules: ### Implicit rules:
@ -71,38 +67,17 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -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 $< $@
.PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)
@ -111,4 +86,4 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -1,53 +1,50 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.9 2012/03/11 15:34:06 kls Exp $ # $Id: Makefile 2.15 2012/12/23 10:03:51 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = hello PLUGIN = hello
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
LOCDIR = $(DESTDIR)$(call PKGCFG,locdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +52,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE) i18n
### Implicit rules: ### Implicit rules:
@ -74,33 +71,38 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.mo: %.po
msgfmt -c -o $@ $< msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c) $(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) install -D -m644 $< $@
cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

View File

@ -7,9 +7,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Jordi Vilà <jvila@tinet.org>\n" "Last-Translator: Jordi Vilà <jvila@tinet.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n" "Language-Team: Catalan <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>\n" "Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n" "Language-Team: Czech <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n" "Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n" "Language-Team: Danish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n" "Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n" "Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n" "Language-Team: Greek <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Ruben Nunez Francisco <ruben.nunez@tang-it.com>\n" "Last-Translator: Ruben Nunez Francisco <ruben.nunez@tang-it.com>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n" "Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n" "Language-Team: Estonian <vdr@linuxtv.org>\n"

View File

@ -8,9 +8,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n" "Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"

View File

@ -8,9 +8,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Nicolas Huillard <nhuillard@e-dition.fr>\n" "Last-Translator: Nicolas Huillard <nhuillard@e-dition.fr>\n"
"Language-Team: French <vdr@linuxtv.org>\n" "Language-Team: French <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-03-17 19:52+0100\n" "PO-Revision-Date: 2008-03-17 19:52+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n" "Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n" "Language-Team: Croatian <vdr@linuxtv.org>\n"

View File

@ -6,9 +6,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>\n" "Last-Translator: Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>\n"
"Language-Team: Hungarian <vdr@linuxtv.org>\n" "Language-Team: Hungarian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-01-27 20:11+0100\n" "PO-Revision-Date: 2008-01-27 20:11+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.7.10\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-12-08 12:18+0200\n" "PO-Revision-Date: 2009-12-08 12:18+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n"

View File

@ -7,9 +7,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>\n" "Last-Translator: Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n" "Language-Team: Dutch <vdr@linuxtv.org>\n"

View File

@ -6,9 +6,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n" "Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n" "Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Michael Rakowski <mrak@gmx.de>\n" "Last-Translator: Michael Rakowski <mrak@gmx.de>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n" "Language-Team: Polish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Paulo Lopes <pmml@netvita.pt>\n" "Last-Translator: Paulo Lopes <pmml@netvita.pt>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n" "Language-Team: Portuguese <vdr@linuxtv.org>\n"

View File

@ -6,9 +6,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n" "Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n" "Language-Team: Romanian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Vyacheslav Dikonov <sdiconov@mail.ru>\n" "Last-Translator: Vyacheslav Dikonov <sdiconov@mail.ru>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n" "Language-Team: Russian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-09-30 09:48+0100\n" "PO-Revision-Date: 2009-09-30 09:48+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n" "Language-Team: Slovak <vdr@linuxtv.org>\n"

View File

@ -6,9 +6,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n" "Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n" "Language-Team: Slovenian <vdr@linuxtv.org>\n"

View File

@ -6,9 +6,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n" "PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Tomas Prybil <tomas@prybil.se>\n" "Last-Translator: Tomas Prybil <tomas@prybil.se>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n" "Language-Team: Swedish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-05-12 22:34:4800\n" "PO-Revision-Date: 2008-05-12 22:34:4800\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n" "Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n" "Language-Team: Turkish <vdr@linuxtv.org>\n"

View File

@ -8,9 +8,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-hello 0.2.5\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-01-23 09:48+0800\n" "PO-Revision-Date: 2009-01-23 09:48+0800\n"
"Last-Translator: senin\n" "Last-Translator: senin\n"
"Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n"

View File

@ -1,51 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.5 2012/03/11 15:34:08 kls Exp $ # $Id: Makefile 2.11 2012/12/23 10:04:05 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
#
PLUGIN = osddemo PLUGIN = osddemo
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -53,14 +51,14 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so all: $(SOFILE)
### Implicit rules: ### Implicit rules:
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies
@ -71,9 +69,13 @@ $(DEPFILE): Makefile
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

View File

@ -1,53 +1,50 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.9 2012/03/11 15:34:10 kls Exp $ # $Id: Makefile 2.15 2012/12/23 10:04:13 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = pictures PLUGIN = pictures
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
LOCDIR = $(DESTDIR)$(call PKGCFG,locdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +52,7 @@ OBJS = $(PLUGIN).o entry.o menu.o player.o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE) i18n
### Implicit rules: ### Implicit rules:
@ -74,33 +71,38 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.mo: %.po
msgfmt -c -o $@ $< msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c) $(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) install -D -m644 $< $@
cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot) i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@ -111,4 +113,5 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n" "PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n" "Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n" "PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n" "Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n" "PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Patrice Staudt <ipatrice.staudt@laposte.net>\n" "Last-Translator: Patrice Staudt <ipatrice.staudt@laposte.net>\n"
"Language-Team: French <vdr@linuxtv.org>\n" "Language-Team: French <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-27 20:22+0100\n" "PO-Revision-Date: 2008-01-27 20:22+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.7.10\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2009-12-08 12:41+0100\n" "PO-Revision-Date: 2009-12-08 12:41+0100\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>, 2009\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>, 2009\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-03-14 00:45+0100\n" "PO-Revision-Date: 2008-03-14 00:45+0100\n"
"Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n" "Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n" "Language-Team: Russian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-pictures 0.1.3\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-15 15:08+0200\n" "POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2009-09-30 12:54+0100\n" "PO-Revision-Date: 2009-09-30 12:54+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n" "Language-Team: Slovak <vdr@linuxtv.org>\n"

View File

@ -1,53 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 1.2 2012/03/11 15:34:12 kls Exp $ # $Id: Makefile 1.8 2012/12/23 10:04:15 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = rcu PLUGIN = rcu
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +51,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE)
### Implicit rules: ### Implicit rules:
@ -71,38 +67,17 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -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 $< $@
.PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)
@ -111,4 +86,4 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -1,13 +1,12 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.5 2012/03/11 15:34:13 kls Exp $ # $Id: Makefile 2.9 2012/12/23 10:04:16 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
#
PLUGIN = servicedemo # dummy name for Make.config
PLUGIN1 = svccli PLUGIN1 = svccli
PLUGIN2 = svcsvr PLUGIN2 = svcsvr
@ -15,28 +14,22 @@ PLUGIN2 = svcsvr
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN1).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN1).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +38,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -62,7 +55,7 @@ all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies
@ -75,11 +68,13 @@ $(DEPFILE): Makefile
libvdr-$(PLUGIN1).so: $(PLUGIN1).o libvdr-$(PLUGIN1).so: $(PLUGIN1).o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
libvdr-$(PLUGIN2).so: $(PLUGIN2).o libvdr-$(PLUGIN2).so: $(PLUGIN2).o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
install -D libvdr-$(PLUGIN1).so $(LIBDIR)/libvdr-$(PLUGIN1).so.$(APIVERSION)
install -D libvdr-$(PLUGIN2).so $(LIBDIR)/libvdr-$(PLUGIN2).so.$(APIVERSION)
dist: clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

View File

@ -1,53 +1,50 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.9 2012/03/11 15:34:18 kls Exp $ # $Id: Makefile 2.15 2012/12/23 10:04:18 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = skincurses PLUGIN = skincurses
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
LOCDIR = $(DESTDIR)$(call PKGCFG,locdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -55,7 +52,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: $(SOFILE) i18n
### Implicit rules: ### Implicit rules:
@ -74,33 +71,38 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.mo: %.po
msgfmt -c -o $@ $< msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c) $(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) install -D -m644 $< $@
cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) $(I18Npot) i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@ -111,4 +113,5 @@ dist: $(I18Npo) clean
@echo Distribution package created as $(PACKAGE).tgz @echo Distribution package created as $(PACKAGE).tgz
clean: clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-15 16:07+0200\n" "PO-Revision-Date: 2007-08-15 16:07+0200\n"
"Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n" "Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-14 20:48+0300\n" "PO-Revision-Date: 2007-08-14 20:48+0300\n"
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n" "Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-01-27 20:35+0100\n" "PO-Revision-Date: 2008-01-27 20:35+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.7.12\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2010-02-22 18:18+0200\n" "PO-Revision-Date: 2010-02-22 18:18+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-03-14 00:21+0100\n" "PO-Revision-Date: 2008-03-14 00:21+0100\n"
"Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n" "Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n" "Language-Team: Russian <vdr@linuxtv.org>\n"

View File

@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: vdr-skincurses 0.1.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2011-05-21 14:36+0200\n" "POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-09-30 12:52+0100\n" "PO-Revision-Date: 2009-09-30 12:52+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n" "Language-Team: Slovak <vdr@linuxtv.org>\n"

View File

@ -1,51 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.5 2012/03/11 15:34:20 kls Exp $ # $Id: Makefile 2.10 2012/12/23 10:04:43 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
#
PLUGIN = status PLUGIN = status
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -53,14 +51,14 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so all: $(SOFILE)
### Implicit rules: ### Implicit rules:
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies
@ -71,9 +69,13 @@ $(DEPFILE): Makefile
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

View File

@ -1,51 +1,49 @@
# #
# Makefile for a Video Disk Recorder plugin # Makefile for a Video Disk Recorder plugin
# #
# $Id: Makefile 2.5 2012/03/11 15:34:22 kls Exp $ # $Id: Makefile 2.10 2012/12/23 10:04:47 kls Exp $
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
#
PLUGIN = svdrpdemo PLUGIN = svdrpdemo
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(DESTDIR)$(call PKGCFG,libdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include $(VDRDIR)/Make.global export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include $(VDRDIR)/Make.config APIVERSION = $(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION) ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE) PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -53,14 +51,14 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so all: $(SOFILE)
### Implicit rules: ### Implicit rules:
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies
@ -71,9 +69,13 @@ $(DEPFILE): Makefile
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) $(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.h 2.57 2012/12/05 11:33:20 kls Exp $ * $Id: config.h 2.58 2012/12/11 09:59:16 kls Exp $
*/ */
#ifndef __CONFIG_H #ifndef __CONFIG_H
@ -22,13 +22,13 @@
// VDR's own version number: // VDR's own version number:
#define VDRVERSION "1.7.33" #define VDRVERSION "1.7.34"
#define VDRVERSNUM 10733 // Version * 10000 + Major * 100 + Minor #define VDRVERSNUM 10734 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number: // The plugin API's version number:
#define APIVERSION "1.7.33" #define APIVERSION "1.7.34"
#define APIVERSNUM 10733 // Version * 10000 + Major * 100 + Minor #define APIVERSNUM 10734 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which // When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to // may be smaller than VDRVERSION in case there have been no changes to

View File

@ -1,27 +1,16 @@
# #
# Makefile for a libsi # Makefile for a libsi
# #
# $Id: Makefile 2.3 2012/01/18 12:31:40 kls Exp $ # $Id: Makefile 2.4 2012/12/18 13:35:54 kls Exp $
### The C++ compiler and options: ### The archiver options:
CXX ?= g++
CXXFLAGS ?= -O2 -g -Wall -Woverloaded-virtual
AR ?= ar AR ?= ar
ARFLAGS ?= ru ARFLAGS ?= ru
RANLIB ?= ranlib RANLIB ?= ranlib
include ../Make.global
-include ../Make.config -include ../Make.config
### The directory environment:
INCLUDES +=
DEFINES +=
LIBS +=
### The object files (add further files here): ### The object files (add further files here):
OBJS = util.o si.o section.o descriptor.o OBJS = util.o si.o section.o descriptor.o
@ -31,7 +20,7 @@ OBJS = util.o si.o section.o descriptor.o
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

19
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 2.71 2012/12/07 13:48:15 kls Exp $ * $Id: menu.c 2.72 2012/12/21 11:11:14 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -172,7 +172,7 @@ public:
cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New) cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New)
:cOsdMenu(tr("Edit channel"), 16) :cOsdMenu(tr("Edit channel"), 16)
{ {
SetMenuCategory(mcChannel); SetMenuCategory(mcChannelEdit);
channel = Channel; channel = Channel;
sourceParam = NULL; sourceParam = NULL;
*name = 0; *name = 0;
@ -878,7 +878,7 @@ eOSState cMenuFolder::ProcessKey(eKeys Key)
cMenuEditTimer::cMenuEditTimer(cTimer *Timer, bool New) cMenuEditTimer::cMenuEditTimer(cTimer *Timer, bool New)
:cOsdMenu(tr("Edit timer"), 12) :cOsdMenu(tr("Edit timer"), 12)
{ {
SetMenuCategory(mcTimer); SetMenuCategory(mcTimerEdit);
file = NULL; file = NULL;
day = firstday = NULL; day = firstday = NULL;
timer = Timer; timer = Timer;
@ -1378,7 +1378,7 @@ const cEvent *cMenuWhatsOn::scheduleEvent = NULL;
cMenuWhatsOn::cMenuWhatsOn(const cSchedules *Schedules, bool Now, int CurrentChannelNr) cMenuWhatsOn::cMenuWhatsOn(const cSchedules *Schedules, bool Now, int CurrentChannelNr)
:cOsdMenu(Now ? tr("What's on now?") : tr("What's on next?"), CHNUMWIDTH, CHNAMWIDTH, 6, 4) :cOsdMenu(Now ? tr("What's on now?") : tr("What's on next?"), CHNUMWIDTH, CHNAMWIDTH, 6, 4)
{ {
SetMenuCategory(mcSchedule); SetMenuCategory(Now ? mcScheduleNow : mcScheduleNext);
now = Now; now = Now;
helpKeys = -1; helpKeys = -1;
timerState = 0; timerState = 0;
@ -2120,7 +2120,7 @@ public:
cMenuRecording::cMenuRecording(const cRecording *Recording, bool WithButtons) cMenuRecording::cMenuRecording(const cRecording *Recording, bool WithButtons)
:cOsdMenu(tr("Recording info")) :cOsdMenu(tr("Recording info"))
{ {
SetMenuCategory(mcRecording); SetMenuCategory(mcRecordingInfo);
recording = Recording; recording = Recording;
withButtons = WithButtons; withButtons = WithButtons;
if (withButtons) if (withButtons)
@ -2534,6 +2534,7 @@ public:
cMenuSetupOSD::cMenuSetupOSD(void) cMenuSetupOSD::cMenuSetupOSD(void)
{ {
SetMenuCategory(mcSetupOsd);
osdLanguageIndex = I18nCurrentLanguage(); osdLanguageIndex = I18nCurrentLanguage();
numSkins = Skins.Count(); numSkins = Skins.Count();
skinIndex = originalSkinIndex = Skins.Current()->Index(); skinIndex = originalSkinIndex = Skins.Current()->Index();
@ -2683,6 +2684,7 @@ public:
cMenuSetupEPG::cMenuSetupEPG(void) cMenuSetupEPG::cMenuSetupEPG(void)
{ {
SetMenuCategory(mcSetupEpg);
for (numLanguages = 0; numLanguages < I18nLanguages()->Size() && data.EPGLanguages[numLanguages] >= 0; numLanguages++) for (numLanguages = 0; numLanguages < I18nLanguages()->Size() && data.EPGLanguages[numLanguages] >= 0; numLanguages++)
; ;
originalNumLanguages = numLanguages; originalNumLanguages = numLanguages;
@ -2779,6 +2781,7 @@ public:
cMenuSetupDVB::cMenuSetupDVB(void) cMenuSetupDVB::cMenuSetupDVB(void)
{ {
SetMenuCategory(mcSetupDvb);
for (numAudioLanguages = 0; numAudioLanguages < I18nLanguages()->Size() && data.AudioLanguages[numAudioLanguages] >= 0; numAudioLanguages++) for (numAudioLanguages = 0; numAudioLanguages < I18nLanguages()->Size() && data.AudioLanguages[numAudioLanguages] >= 0; numAudioLanguages++)
; ;
for (numSubtitleLanguages = 0; numSubtitleLanguages < I18nLanguages()->Size() && data.SubtitleLanguages[numSubtitleLanguages] >= 0; numSubtitleLanguages++) for (numSubtitleLanguages = 0; numSubtitleLanguages < I18nLanguages()->Size() && data.SubtitleLanguages[numSubtitleLanguages] >= 0; numSubtitleLanguages++)
@ -2924,6 +2927,7 @@ public:
cMenuSetupLNB::cMenuSetupLNB(void) cMenuSetupLNB::cMenuSetupLNB(void)
:satCableNumbers(MAXDEVICES) :satCableNumbers(MAXDEVICES)
{ {
SetMenuCategory(mcSetupLnb);
satCableNumbers.FromString(data.DeviceBondings); satCableNumbers.FromString(data.DeviceBondings);
SetSection(tr("LNB")); SetSection(tr("LNB"));
Setup(); Setup();
@ -3025,6 +3029,7 @@ public:
cMenuSetupCAM::cMenuSetupCAM(void) cMenuSetupCAM::cMenuSetupCAM(void)
{ {
SetMenuCategory(mcSetupCam);
SetSection(tr("CAM")); SetSection(tr("CAM"));
SetCols(15); SetCols(15);
SetHasHotkeys(); SetHasHotkeys();
@ -3103,6 +3108,7 @@ public:
cMenuSetupRecord::cMenuSetupRecord(void) cMenuSetupRecord::cMenuSetupRecord(void)
{ {
SetMenuCategory(mcSetupRecord);
pauseKeyHandlingTexts[0] = tr("do not pause live video"); pauseKeyHandlingTexts[0] = tr("do not pause live video");
pauseKeyHandlingTexts[1] = tr("confirm pause live video"); pauseKeyHandlingTexts[1] = tr("confirm pause live video");
pauseKeyHandlingTexts[2] = tr("pause live video"); pauseKeyHandlingTexts[2] = tr("pause live video");
@ -3139,6 +3145,7 @@ public:
cMenuSetupReplay::cMenuSetupReplay(void) cMenuSetupReplay::cMenuSetupReplay(void)
{ {
SetMenuCategory(mcSetupReplay);
SetSection(tr("Replay")); SetSection(tr("Replay"));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode)); Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode)); Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode));
@ -3164,6 +3171,7 @@ public:
cMenuSetupMisc::cMenuSetupMisc(void) cMenuSetupMisc::cMenuSetupMisc(void)
{ {
SetMenuCategory(mcSetupMisc);
SetSection(tr("Miscellaneous")); SetSection(tr("Miscellaneous"));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Min. event timeout (min)"), &data.MinEventTimeout)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Min. event timeout (min)"), &data.MinEventTimeout));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Min. user inactivity (min)"), &data.MinUserInactivity)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Min. user inactivity (min)"), &data.MinUserInactivity));
@ -3203,6 +3211,7 @@ public:
cMenuSetupPlugins::cMenuSetupPlugins(void) cMenuSetupPlugins::cMenuSetupPlugins(void)
{ {
SetMenuCategory(mcSetupPlugins);
SetSection(tr("Plugins")); SetSection(tr("Plugins"));
SetHasHotkeys(); SetHasHotkeys();
for (int i = 0; ; i++) { for (int i = 0; ; i++) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menuitems.c 2.14 2012/04/08 11:20:37 kls Exp $ * $Id: menuitems.c 2.15 2012/12/23 13:44:05 kls Exp $
*/ */
#include "menuitems.h" #include "menuitems.h"
@ -1152,6 +1152,7 @@ eOSState cMenuSetupPage::ProcessKey(eKeys Key)
void cMenuSetupPage::SetPlugin(cPlugin *Plugin) void cMenuSetupPage::SetPlugin(cPlugin *Plugin)
{ {
SetMenuCategory(mcPluginSetup);
plugin = Plugin; plugin = Plugin;
SetSection(cString::sprintf("%s '%s'", tr("Plugin"), plugin->Name())); SetSection(cString::sprintf("%s '%s'", tr("Plugin"), plugin->Name()));
} }

View File

@ -12,7 +12,7 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # how to reach the author.
# #
# $Id: newplugin 2.8 2012/03/11 15:34:26 kls Exp $ # $Id: newplugin 2.14 2012/12/23 10:05:22 kls Exp $
$PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n"; $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n";
@ -65,48 +65,45 @@ $MAKEFILE = qq
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin. # This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name. # By default the main source file also carries this name.
# IMPORTANT: the presence of this macro is important for the Make.config
# file. So it must be defined, even if it is not used here!
#
PLUGIN = $PLUGIN_NAME PLUGIN = $PLUGIN_NAME
### The version number of this plugin (taken from the main source file): ### The version number of this plugin (taken from the main source file):
VERSION = \$(shell grep 'static const char \\*VERSION *=' \$(PLUGIN).c | awk '{ print \$\$6 }' | sed -e 's/[";]//g') VERSION = \$(shell grep 'static const char \\*VERSION *=' \$(PLUGIN).c | awk '{ print \$\$6 }' | sed -e 's/[";]//g')
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
### The directory environment: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib PKGCFG = \$(if \$(VDRDIR),\$(shell pkg-config --variable=\$(1) \$(VDRDIR)/vdr.pc),\$(shell pkg-config --variable=\$(1) vdr || pkg-config --variable=\$(1) ../../../vdr.pc))
LIBDIR = \$(DESTDIR)\$(call PKGCFG,libdir)
LOCDIR = \$(DESTDIR)\$(call PKGCFG,locdir)
#
TMPDIR ?= /tmp TMPDIR ?= /tmp
### Make sure that necessary options are included: ### The compiler options:
include \$(VDRDIR)/Make.global export CFLAGS = \$(call PKGCFG,cflags)
export CXXFLAGS = \$(call PKGCFG,cxxflags)
### Allow user defined options to overwrite defaults: ### The version number of VDR's plugin API:
-include \$(VDRDIR)/Make.config APIVERSION = \$(call PKGCFG,apiversion)
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = \$(shell sed -ne '/define APIVERSION/s/^.*"\\(.*\\)".*\$\$/\\1/p' \$(VDRDIR)/config.h)
### The name of the distribution archive: ### The name of the distribution archive:
ARCHIVE = \$(PLUGIN)-\$(VERSION) ARCHIVE = \$(PLUGIN)-\$(VERSION)
PACKAGE = vdr-\$(ARCHIVE) PACKAGE = vdr-\$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-\$(PLUGIN).so
### Includes and Defines (add further entries here): ### Includes and Defines (add further entries here):
INCLUDES += -I\$(VDRDIR)/include INCLUDES +=
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"\$(PLUGIN)"' DEFINES += -DPLUGIN_NAME_I18N='"\$(PLUGIN)"'
### The object files (add further files here): ### The object files (add further files here):
@ -114,7 +111,7 @@ OBJS = \$(PLUGIN).o
### The main target: ### The main target:
all: libvdr-\$(PLUGIN).so i18n all: \$(SOFILE) i18n
### Implicit rules: ### Implicit rules:
@ -133,33 +130,38 @@ DEPFILE = .dependencies
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = \$(VDRDIR)/locale
I18Npo = \$(wildcard \$(PODIR)/*.po) I18Npo = \$(wildcard \$(PODIR)/*.po)
I18Nmsgs = \$(addprefix \$(LOCALEDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\$(PLUGIN).mo, \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file)))))) I18Nmo = \$(addsuffix .mo, \$(foreach file, \$(I18Npo), \$(basename \$(file))))
I18Nmsgs = \$(addprefix \$(LOCDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\$(PLUGIN).mo, \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file))))))
I18Npot = \$(PODIR)/\$(PLUGIN).pot I18Npot = \$(PODIR)/\$(PLUGIN).pot
%.mo: %.po %.mo: %.po
msgfmt -c -o \$\@ \$< msgfmt -c -o \$\@ \$<
\$(I18Npot): \$(wildcard *.c) \$(I18Npot): \$(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='<see README>' -o \$\@ \$^ xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='<see README>' -o \$\@ `ls \$^`
%.po: \$(I18Npot) %.po: \$(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q \$\@ \$< msgmerge -U --no-wrap --no-location --backup=none -q -N \$\@ \$<
\@touch \$\@ \@touch \$\@
\$(I18Nmsgs): \$(LOCALEDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo \$(I18Nmsgs): \$(LOCDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo
\@mkdir -p \$(dir \$@) install -D -m644 \$< \$\@
cp \$< \$\@
.PHONY: i18n .PHONY: i18n
i18n: \$(I18Nmsgs) \$(I18Npot) i18n: \$(I18Nmo) \$(I18Npot)
install-i18n: \$(I18Nmsgs)
### Targets: ### Targets:
libvdr-\$(PLUGIN).so: \$(OBJS) \$(SOFILE): \$(OBJS)
\$(CXX) \$(CXXFLAGS) \$(LDFLAGS) -shared \$(OBJS) -o \$\@ \$(CXX) \$(CXXFLAGS) \$(LDFLAGS) -shared \$(OBJS) -o \$\@
\@cp --remove-destination \$\@ \$(LIBDIR)/\$\@.\$(APIVERSION)
install-lib: \$(SOFILE)
install -D \$^ \$(LIBDIR)/\$^.\$(APIVERSION)
install: install-lib install-i18n
dist: \$(I18Npo) clean dist: \$(I18Npo) clean
\@-rm -rf \$(TMPDIR)/\$(ARCHIVE) \@-rm -rf \$(TMPDIR)/\$(ARCHIVE)
@ -170,7 +172,8 @@ dist: \$(I18Npo) clean
\@echo Distribution package created as \$(PACKAGE).tgz \@echo Distribution package created as \$(PACKAGE).tgz
clean: clean:
\@-rm -f \$(OBJS) \$(DEPFILE) *.so *.tgz core* *~ \$(PODIR)/*.mo \$(PODIR)/*.pot \@-rm -f \$(PODIR)/*.mo \$(PODIR)/*.pot
\@-rm -f \$(OBJS) \$(DEPFILE) *.so *.tgz core* *~
}; };
$MAIN = qq $MAIN = qq
@ -349,4 +352,3 @@ sub CreateFile
print FILE $Content; print FILE $Content;
close(FILE); close(FILE);
} }

6
osd.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: osd.c 2.32 2012/06/09 14:37:24 kls Exp $ * $Id: osd.c 2.33 2012/12/15 11:16:41 kls Exp $
*/ */
#include "osd.h" #include "osd.h"
@ -1683,9 +1683,7 @@ void cOsd::SetAntiAliasGranularity(uint FixedColors, uint BlendColors)
cBitmap *cOsd::GetBitmap(int Area) cBitmap *cOsd::GetBitmap(int Area)
{ {
if (isTrueColor) return Area < numBitmaps ? (isTrueColor ? bitmaps[0] : bitmaps[Area]) : NULL;
Area = 0; // returns the dummy bitmap
return Area < numBitmaps ? bitmaps[Area] : NULL;
} }
cPixmap *cOsd::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort) cPixmap *cOsd::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort)

View File

@ -1418,6 +1418,3 @@ msgstr "القرص الصلب"
msgid "free" msgid "free"
msgstr "مساحة حرة" msgstr "مساحة حرة"
#~ msgid "Error while accessing recording!"
#~ msgstr "حدث خطاء عند محاولة الوصول لتسجيلات"

View File

@ -1392,6 +1392,3 @@ msgstr "Disc"
msgid "free" msgid "free"
msgstr "lliure" msgstr "lliure"
#~ msgid "Error while accessing recording!"
#~ msgstr "Error a l'accedir a la gravació!"

View File

@ -1391,6 +1391,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "volno" msgstr "volno"
#~ msgid "Error while accessing recording!"
#~ msgstr "Chyba při přístupu k nahrávkám!"

View File

@ -1389,6 +1389,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "fri" msgstr "fri"
#~ msgid "Error while accessing recording!"
#~ msgstr "Fejl ved læsning af optagelse!"

View File

@ -1389,6 +1389,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "frei" msgstr "frei"
#~ msgid "Error while accessing recording!"
#~ msgstr "Fehler beim Ansprechen der Aufzeichnung!"

View File

@ -1389,6 +1389,3 @@ msgstr "
msgid "free" msgid "free"
msgstr "Åëåýèåñïò" msgstr "Åëåýèåñïò"
#~ msgid "Error while accessing recording!"
#~ msgstr "Ðñüâëçìá óôÞí ðñïóðÝëáóç åããñáöÞò!"

View File

@ -1390,6 +1390,3 @@ msgstr "Disco"
msgid "free" msgid "free"
msgstr "libre" msgstr "libre"
#~ msgid "Error while accessing recording!"
#~ msgstr "¡Error al acceder a la grabación!"

View File

@ -23,7 +23,7 @@ msgid "Channel not available!"
msgstr "Kanal ei ole kättesaadav!" msgstr "Kanal ei ole kättesaadav!"
msgid "Can't start Transfer Mode!" msgid "Can't start Transfer Mode!"
msgstr "Siirderežiimi start nurjus!" msgstr "Siirderežiimi start ebaõnnestus!"
msgid "off" msgid "off"
msgstr "väljas" msgstr "väljas"
@ -411,7 +411,7 @@ msgid "Key$Info"
msgstr "Info" msgstr "Info"
msgid "Key$Play/Pause" msgid "Key$Play/Pause"
msgstr "" msgstr "Start/Paus"
msgid "Key$Play" msgid "Key$Play"
msgstr "Start" msgstr "Start"
@ -748,7 +748,7 @@ msgid "Recording is being edited - really delete?"
msgstr "Salvestust on muudetud - kas kustutada?" msgstr "Salvestust on muudetud - kas kustutada?"
msgid "Error while deleting recording!" msgid "Error while deleting recording!"
msgstr "Salvestuse kustutamine nurjus!" msgstr "Salvestuse kustutamine ebaõnnestus!"
msgid "Recording commands" msgid "Recording commands"
msgstr "Salvestuse käsud" msgstr "Salvestuse käsud"
@ -850,16 +850,16 @@ msgid "Setup.OSD$Number keys for characters"
msgstr "Teksti sisestamine numbriklahvidega" msgstr "Teksti sisestamine numbriklahvidega"
msgid "Setup.OSD$Color key 0" msgid "Setup.OSD$Color key 0"
msgstr "" msgstr "Värviklahv 0"
msgid "Setup.OSD$Color key 1" msgid "Setup.OSD$Color key 1"
msgstr "" msgstr "Värviklahv 1"
msgid "Setup.OSD$Color key 2" msgid "Setup.OSD$Color key 2"
msgstr "" msgstr "Värviklahv 2"
msgid "Setup.OSD$Color key 3" msgid "Setup.OSD$Color key 3"
msgstr "" msgstr "Värviklahv 3"
msgid "EPG" msgid "EPG"
msgstr "EPG" msgstr "EPG"
@ -930,7 +930,7 @@ msgid "Setup.DVB$Primary DVB interface"
msgstr "Esmane DVB seade" msgstr "Esmane DVB seade"
msgid "Setup.DVB$Standard compliance" msgid "Setup.DVB$Standard compliance"
msgstr "" msgstr "Standardivastavavus"
msgid "Setup.DVB$Video format" msgid "Setup.DVB$Video format"
msgstr "TV külgsuhe" msgstr "TV külgsuhe"
@ -1018,7 +1018,7 @@ msgid "CAM is in use - really reset?"
msgstr "CAM on kasutuses - taaskäivitada?" msgstr "CAM on kasutuses - taaskäivitada?"
msgid "Can't reset CAM!" msgid "Can't reset CAM!"
msgstr "CAM mooduli taaskäivitus nurjus!" msgstr "CAM mooduli taaskäivitus ebaõnnestus!"
msgid "do not pause live video" msgid "do not pause live video"
msgstr "mitte peatada" msgstr "mitte peatada"
@ -1078,16 +1078,16 @@ msgid "Setup.Recording$Instant rec. time (min)"
msgstr "Kiirsalvestuse kestus (min)" msgstr "Kiirsalvestuse kestus (min)"
msgid "Setup.Recording$present event" msgid "Setup.Recording$present event"
msgstr "" msgstr "hetkesündmus"
msgid "Setup.Recording$Max. video file size (MB)" msgid "Setup.Recording$Max. video file size (MB)"
msgstr "Maks. failisuurus (MB)" msgstr "Maks. failisuurus (MB)"
msgid "Setup.Recording$Split edited files" msgid "Setup.Recording$Split edited files"
msgstr "Failide jupitamine" msgstr "Redigeeritud failide tükeldamine"
msgid "Setup.Recording$Delete timeshift recording" msgid "Setup.Recording$Delete timeshift recording"
msgstr "Kustutada ajanihke salvestus" msgstr "Ajanihke salvestuse kustutamine"
msgid "Replay" msgid "Replay"
msgstr "Taasesitus" msgstr "Taasesitus"
@ -1102,10 +1102,10 @@ msgid "Setup.Replay$Show remaining time"
msgstr "Järelejäänud aja kuvamine" msgstr "Järelejäänud aja kuvamine"
msgid "Setup.Replay$Progress display time (s)" msgid "Setup.Replay$Progress display time (s)"
msgstr "" msgstr "Edenemiseriba kuvamise aeg (s)"
msgid "Setup.Replay$Pause replay when setting mark" msgid "Setup.Replay$Pause replay when setting mark"
msgstr "" msgstr "Taasesituse peatamine markeri seadmisel"
msgid "Setup.Replay$Resume ID" msgid "Setup.Replay$Resume ID"
msgstr "Jätkamise ID" msgstr "Jätkamise ID"
@ -1141,7 +1141,7 @@ msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Kanalite ringkerimine" msgstr "Kanalite ringkerimine"
msgid "Setup.Miscellaneous$Show channel names with source" msgid "Setup.Miscellaneous$Show channel names with source"
msgstr "" msgstr "Kanalinimed allikaga"
msgid "Setup.Miscellaneous$Emergency exit" msgid "Setup.Miscellaneous$Emergency exit"
msgstr "Hädaväljumine" msgstr "Hädaväljumine"
@ -1220,10 +1220,10 @@ msgid "No editing marks defined!"
msgstr "Redigeerimise markerid puuduvad!" msgstr "Redigeerimise markerid puuduvad!"
msgid "No editing sequences defined!" msgid "No editing sequences defined!"
msgstr "" msgstr "Redigeerimise järjestus puudub!"
msgid "Can't start editing process!" msgid "Can't start editing process!"
msgstr "Redigeerimise start nurjus!" msgstr "Redigeerimise start ebaõnnestus!"
msgid "Editing process started" msgid "Editing process started"
msgstr "Redigeerimine käivitatud" msgstr "Redigeerimine käivitatud"
@ -1265,10 +1265,10 @@ msgid "Index file regeneration complete"
msgstr "Indeksfaili regenereerimine lõpetatud" msgstr "Indeksfaili regenereerimine lõpetatud"
msgid "Index file regeneration failed!" msgid "Index file regeneration failed!"
msgstr "" msgstr "Indeksfaili regenereerimine ebaõnnestus!"
msgid "Can't shutdown - option '-s' not given!" msgid "Can't shutdown - option '-s' not given!"
msgstr "Väljalülitamine nurjus - '-s' parameeter puudub!" msgstr "Väljalülitamine ebaõnnestus - '-s' parameeter puudub!"
msgid "Editing - shut down anyway?" msgid "Editing - shut down anyway?"
msgstr "Redigeerimine aktiive - lülitada välja?" msgstr "Redigeerimine aktiive - lülitada välja?"
@ -1304,22 +1304,22 @@ msgid "Classic VDR"
msgstr "Classic VDR" msgstr "Classic VDR"
msgid "DISK" msgid "DISK"
msgstr "" msgstr "KETAS"
msgid "LOAD" msgid "LOAD"
msgstr "" msgstr "KOORMUS"
msgid "TIMERS" msgid "TIMERS"
msgstr "" msgstr "TAIMERID"
msgid "DEVICES" msgid "DEVICES"
msgstr "" msgstr "SEADMED"
msgid "LIVE" msgid "LIVE"
msgstr "" msgstr "LIVE"
msgid "PLAY" msgid "PLAY"
msgstr "" msgstr "ESITUS"
msgid "ST:TNG Panels" msgid "ST:TNG Panels"
msgstr "ST:TNG Panels" msgstr "ST:TNG Panels"
@ -1372,7 +1372,7 @@ msgid "Switching primary DVB..."
msgstr "Esmase DVB seadme ümberlülitus..." msgstr "Esmase DVB seadme ümberlülitus..."
msgid "Editing process failed!" msgid "Editing process failed!"
msgstr "Redigeerimine nurjus" msgstr "Redigeerimine ebaõnnestus!"
msgid "Editing process finished" msgid "Editing process finished"
msgstr "Redigeerimine lõpetatud" msgstr "Redigeerimine lõpetatud"
@ -1389,6 +1389,3 @@ msgstr "Ketas"
msgid "free" msgid "free"
msgstr "vaba" msgstr "vaba"
#~ msgid "Error while accessing recording!"
#~ msgstr "Salvestuse taasesitus nurjus!"

View File

@ -1392,6 +1392,3 @@ msgstr "Levy"
msgid "free" msgid "free"
msgstr "vapaana" msgstr "vapaana"
#~ msgid "Error while accessing recording!"
#~ msgstr "Tallenteen toistaminen epäonnistui!"

View File

@ -1395,6 +1395,3 @@ msgstr "Disque"
msgid "free" msgid "free"
msgstr "restant" msgstr "restant"
#~ msgid "Error while accessing recording!"
#~ msgstr "Impossible d'accéder à l'enregistrement"

View File

@ -1391,6 +1391,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "slobodno" msgstr "slobodno"
#~ msgid "Error while accessing recording!"
#~ msgstr "Gre¹ka pri pristupanju snimke!"

View File

@ -1393,6 +1393,3 @@ msgstr "Lemez"
msgid "free" msgid "free"
msgstr "szabad" msgstr "szabad"
#~ msgid "Error while accessing recording!"
#~ msgstr "Hiba a felvétel hozzáférésénél"

View File

@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2012-12-07 14:59+0100\n" "POT-Creation-Date: 2012-12-07 14:59+0100\n"
"PO-Revision-Date: 2012-06-06 22:50+0100\n" "PO-Revision-Date: 2012-12-22 19:00+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n" "Language: it\n"
@ -418,7 +418,7 @@ msgid "Key$Info"
msgstr "Info" msgstr "Info"
msgid "Key$Play/Pause" msgid "Key$Play/Pause"
msgstr "" msgstr "Riproduci/Pausa"
msgid "Key$Play" msgid "Key$Play"
msgstr "Riproduci" msgstr "Riproduci"
@ -857,16 +857,16 @@ msgid "Setup.OSD$Number keys for characters"
msgstr "Tasti numerici per i caratteri" msgstr "Tasti numerici per i caratteri"
msgid "Setup.OSD$Color key 0" msgid "Setup.OSD$Color key 0"
msgstr "" msgstr "Tasto colore 0"
msgid "Setup.OSD$Color key 1" msgid "Setup.OSD$Color key 1"
msgstr "" msgstr "Tasto colore 1"
msgid "Setup.OSD$Color key 2" msgid "Setup.OSD$Color key 2"
msgstr "" msgstr "Tasto colore 2"
msgid "Setup.OSD$Color key 3" msgid "Setup.OSD$Color key 3"
msgstr "" msgstr "Tasto colore 3"
msgid "EPG" msgid "EPG"
msgstr "Guida programmi EPG" msgstr "Guida programmi EPG"
@ -1085,7 +1085,7 @@ msgid "Setup.Recording$Instant rec. time (min)"
msgstr "Durata reg. immediata (min)" msgstr "Durata reg. immediata (min)"
msgid "Setup.Recording$present event" msgid "Setup.Recording$present event"
msgstr "" msgstr "evento attuale"
msgid "Setup.Recording$Max. video file size (MB)" msgid "Setup.Recording$Max. video file size (MB)"
msgstr "Dim. massima file video (MB)" msgstr "Dim. massima file video (MB)"
@ -1109,10 +1109,10 @@ msgid "Setup.Replay$Show remaining time"
msgstr "Mostra tempo rimanente" msgstr "Mostra tempo rimanente"
msgid "Setup.Replay$Progress display time (s)" msgid "Setup.Replay$Progress display time (s)"
msgstr "" msgstr "Mostra tempo elaborazione (s)"
msgid "Setup.Replay$Pause replay when setting mark" msgid "Setup.Replay$Pause replay when setting mark"
msgstr "" msgstr "Pausa riproduzione durante impostazione segni"
msgid "Setup.Replay$Resume ID" msgid "Setup.Replay$Resume ID"
msgstr "ID di ripristino" msgstr "ID di ripristino"
@ -1148,7 +1148,7 @@ msgid "Setup.Miscellaneous$Channels wrap"
msgstr "Riavvolgimento canali" msgstr "Riavvolgimento canali"
msgid "Setup.Miscellaneous$Show channel names with source" msgid "Setup.Miscellaneous$Show channel names with source"
msgstr "" msgstr "Mostra nomi canali con la sorgente"
msgid "Setup.Miscellaneous$Emergency exit" msgid "Setup.Miscellaneous$Emergency exit"
msgstr "Uscita di emergenza" msgstr "Uscita di emergenza"
@ -1227,7 +1227,7 @@ msgid "No editing marks defined!"
msgstr "Nessun marcatore di modifica definito!" msgstr "Nessun marcatore di modifica definito!"
msgid "No editing sequences defined!" msgid "No editing sequences defined!"
msgstr "" msgstr "Nessuna sequenza di modifica definita!"
msgid "Can't start editing process!" msgid "Can't start editing process!"
msgstr "Impossibile avviare il processo di modifica!" msgstr "Impossibile avviare il processo di modifica!"
@ -1272,7 +1272,7 @@ msgid "Index file regeneration complete"
msgstr "Rigenerazione file indice completata" msgstr "Rigenerazione file indice completata"
msgid "Index file regeneration failed!" msgid "Index file regeneration failed!"
msgstr "" msgstr "Rigenerazione file indice fallita!"
msgid "Can't shutdown - option '-s' not given!" msgid "Can't shutdown - option '-s' not given!"
msgstr "Impossibile spegnere - parametro '-s' non assegnato!" msgstr "Impossibile spegnere - parametro '-s' non assegnato!"
@ -1396,6 +1396,3 @@ msgstr "Disco"
msgid "free" msgid "free"
msgstr "disponibili" msgstr "disponibili"
#~ msgid "Error while accessing recording!"
#~ msgstr "Errore accesso alla registrazione!"

View File

@ -1389,6 +1389,3 @@ msgstr "Diskas"
msgid "free" msgid "free"
msgstr "laisva" msgstr "laisva"
#~ msgid "Error while accessing recording!"
#~ msgstr "Klaida atidarant įrašą!"

View File

@ -1390,6 +1390,3 @@ msgstr "Диск"
msgid "free" msgid "free"
msgstr "слободен" msgstr "слободен"
#~ msgid "Error while accessing recording!"
#~ msgstr "Грешка при пристап до снимката!"

View File

@ -1393,6 +1393,3 @@ msgstr "Schijf"
msgid "free" msgid "free"
msgstr "vrij" msgstr "vrij"
#~ msgid "Error while accessing recording!"
#~ msgstr "Fout bij lezen opname!"

View File

@ -1390,6 +1390,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "ledig" msgstr "ledig"
#~ msgid "Error while accessing recording!"
#~ msgstr "Feil under lesing av opptak!"

View File

@ -1390,6 +1390,3 @@ msgstr "Dysk"
msgid "free" msgid "free"
msgstr "wolnego" msgstr "wolnego"
#~ msgid "Error while accessing recording!"
#~ msgstr "Bl±d podczas dostêpu do nagrania!"

View File

@ -1390,6 +1390,3 @@ msgstr "Disco"
msgid "free" msgid "free"
msgstr "livre" msgstr "livre"
#~ msgid "Error while accessing recording!"
#~ msgstr "Erro a aceder às gravações!"

View File

@ -1392,6 +1392,3 @@ msgstr "Disc"
msgid "free" msgid "free"
msgstr "liber" msgstr "liber"
#~ msgid "Error while accessing recording!"
#~ msgstr "Eroare la accesarea înregistrării"

View File

@ -1390,6 +1390,3 @@ msgstr "
msgid "free" msgid "free"
msgstr "áÒÞÑÞÔÝÞ" msgstr "áÒÞÑÞÔÝÞ"
#~ msgid "Error while accessing recording!"
#~ msgstr "¾èØÑÚÐ ÔÞáâãßÐ Ú ×ÐߨáØ!"

View File

@ -1389,6 +1389,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "volne" msgstr "volne"
#~ msgid "Error while accessing recording!"
#~ msgstr "Chyba pri prístupe k nahrávkam!"

View File

@ -1390,6 +1390,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "prosto" msgstr "prosto"
#~ msgid "Error while accessing recording!"
#~ msgstr "Napaka pri dostopu do posnetka!"

View File

@ -1416,6 +1416,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "slobodno" msgstr "slobodno"
#~ msgid "Error while accessing recording!"
#~ msgstr "Gre¹ka prilikom pristupa snimanju!"

View File

@ -1392,6 +1392,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "ledigt" msgstr "ledigt"
#~ msgid "Error while accessing recording!"
#~ msgstr "Inspelningen går inte att läsa!"

View File

@ -1389,6 +1389,3 @@ msgstr "Disk"
msgid "free" msgid "free"
msgstr "boþ" msgstr "boþ"
#~ msgid "Error while accessing recording!"
#~ msgstr "Kayýt okuma hatasý!"

View File

@ -1389,6 +1389,3 @@ msgstr "Диск"
msgid "free" msgid "free"
msgstr "вільно" msgstr "вільно"
#~ msgid "Error while accessing recording!"
#~ msgstr "Помилка доступу до запису!"

View File

@ -1392,6 +1392,3 @@ msgstr "硬盘已使用"
msgid "free" msgid "free"
msgstr "可录像时间" msgstr "可录像时间"
#~ msgid "Error while accessing recording!"
#~ msgstr "存取录像错误!"

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 2.78 2012/12/06 09:35:13 kls Exp $ * $Id: recording.c 2.81 2012/12/23 15:11:28 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -1666,7 +1666,8 @@ void cIndexFileGenerator::Action(void)
#define INDEXFILESUFFIX "/index" #define INDEXFILESUFFIX "/index"
// The maximum time to wait before giving up while catching up on an index file: // The maximum time to wait before giving up while catching up on an index file:
#define MAXINDEXCATCHUP 8 // seconds #define MAXINDEXCATCHUP 8 // number of retries
#define INDEXCATCHUPWAIT 100 // milliseconds
struct tIndexPes { struct tIndexPes {
uint32_t offset; uint32_t offset;
@ -1693,9 +1694,6 @@ struct tIndexTs {
#define INDEXFILECHECKINTERVAL 500 // ms between checks for existence of the regenerated index file #define INDEXFILECHECKINTERVAL 500 // ms between checks for existence of the regenerated index file
#define INDEXFILETESTINTERVAL 10 // ms between tests for the size of the index file in case of pausing live video #define INDEXFILETESTINTERVAL 10 // ms between tests for the size of the index file in case of pausing live video
cMutex cIndexFile::indexListMutex;
cVector<const cIndexFile *> cIndexFile::indexList;
cIndexFile::cIndexFile(const char *FileName, bool Record, bool IsPesRecording, bool PauseLive) cIndexFile::cIndexFile(const char *FileName, bool Record, bool IsPesRecording, bool PauseLive)
:resumeFile(FileName, IsPesRecording) :resumeFile(FileName, IsPesRecording)
{ {
@ -1776,13 +1774,10 @@ cIndexFile::cIndexFile(const char *FileName, bool Record, bool IsPesRecording, b
LOG_ERROR_STR(*fileName); LOG_ERROR_STR(*fileName);
} }
} }
if (Record)
AddToIndexList(this);
} }
cIndexFile::~cIndexFile() cIndexFile::~cIndexFile()
{ {
RemoveFromIndexList(this);
if (f >= 0) if (f >= 0)
close(f); close(f);
free(index); free(index);
@ -1824,14 +1819,11 @@ bool cIndexFile::CatchUp(int Index)
// returns true unless something really goes wrong, so that 'index' becomes NULL // returns true unless something really goes wrong, so that 'index' becomes NULL
if (index && f >= 0) { if (index && f >= 0) {
cMutexLock MutexLock(&mutex); cMutexLock MutexLock(&mutex);
for (int i = 0; i <= MAXINDEXCATCHUP && (Index < 0 || Index > last); i++) { // Note that CatchUp() is triggered even if Index is 'last' (and thus valid).
// This is done to make absolutely sure we don't miss any data at the very end.
for (int i = 0; i <= MAXINDEXCATCHUP && (Index < 0 || Index >= last); i++) {
struct stat buf; struct stat buf;
if (fstat(f, &buf) == 0) { if (fstat(f, &buf) == 0) {
if (!IsInIndexList(this)) {
close(f);
f = -1;
break;
}
int newLast = int(buf.st_size / sizeof(tIndexTs) - 1); int newLast = int(buf.st_size / sizeof(tIndexTs) - 1);
if (newLast > last) { if (newLast > last) {
int NewSize = size; int NewSize = size;
@ -1869,9 +1861,9 @@ bool cIndexFile::CatchUp(int Index)
} }
else else
LOG_ERROR_STR(*fileName); LOG_ERROR_STR(*fileName);
if (Index <= last) if (Index < last)
break; break;
cCondWait::SleepMs(1000); cCondWait::SleepMs(INDEXCATCHUPWAIT);
} }
} }
return index != NULL; return index != NULL;
@ -1937,15 +1929,16 @@ int cIndexFile::GetNextIFrame(int Index, bool Forward, uint16_t *FileNumber, off
*FileNumber = index[Index].number; *FileNumber = index[Index].number;
*FileOffset = index[Index].offset; *FileOffset = index[Index].offset;
if (Length) { if (Length) {
// all recordings end with a non-independent frame, so the following should be safe: if (Index < last) {
uint16_t fn = index[Index + 1].number; uint16_t fn = index[Index + 1].number;
off_t fo = index[Index + 1].offset; off_t fo = index[Index + 1].offset;
if (fn == *FileNumber) if (fn == *FileNumber)
*Length = int(fo - *FileOffset); *Length = int(fo - *FileOffset);
else { else
esyslog("ERROR: 'I' frame at end of file #%d", *FileNumber); *Length = -1; // this means "everything up to EOF" (the buffer's Read function will act accordingly)
*Length = -1;
} }
else
*Length = -1;
} }
return Index; return Index;
} }
@ -2025,39 +2018,6 @@ int cIndexFile::GetLength(const char *FileName, bool IsPesRecording)
return -1; return -1;
} }
void cIndexFile::AddToIndexList(const cIndexFile *IndexFile)
{
cMutexLock MutexLock(&indexListMutex);
for (int i = 0; i < indexList.Size(); i++) {
if (!indexList[i]) {
indexList[i] = IndexFile;
return;
}
}
indexList.Append(IndexFile);
}
void cIndexFile::RemoveFromIndexList(const cIndexFile *IndexFile)
{
cMutexLock MutexLock(&indexListMutex);
for (int i = 0; i < indexList.Size(); i++) {
if (indexList[i] == IndexFile) {
indexList[i] = NULL;
return;
}
}
}
bool cIndexFile::IsInIndexList(const cIndexFile *IndexFile)
{
cMutexLock MutexLock(&indexListMutex);
for (int i = 0; i < indexList.Size(); i++) {
if (indexList[i] && !strcmp(indexList[i]->fileName, IndexFile->fileName))
return true;
}
return false;
}
bool GenerateIndex(const char *FileName) bool GenerateIndex(const char *FileName)
{ {
if (DirectoryOk(FileName)) { if (DirectoryOk(FileName)) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.h 2.40 2012/11/13 11:43:59 kls Exp $ * $Id: recording.h 2.41 2012/12/23 15:11:53 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -292,11 +292,6 @@ private:
cResumeFile resumeFile; cResumeFile resumeFile;
cIndexFileGenerator *indexFileGenerator; cIndexFileGenerator *indexFileGenerator;
cMutex mutex; cMutex mutex;
static cMutex indexListMutex;
static cVector<const cIndexFile *> indexList;
static void AddToIndexList(const cIndexFile *IndexFile);
static void RemoveFromIndexList(const cIndexFile *IndexFile);
static bool IsInIndexList(const cIndexFile *IndexFile);
void ConvertFromPes(tIndexTs *IndexTs, int Count); void ConvertFromPes(tIndexTs *IndexTs, int Count);
void ConvertToPes(tIndexTs *IndexTs, int Count); void ConvertToPes(tIndexTs *IndexTs, int Count);
bool CatchUp(int Index = -1); bool CatchUp(int Index = -1);

36
skins.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skins.h 2.7 2012/12/07 17:18:44 kls Exp $ * $Id: skins.h 2.9 2012/12/21 11:09:13 kls Exp $
*/ */
#ifndef __SKINS_H #ifndef __SKINS_H
@ -73,7 +73,37 @@ public:
*/ */
}; };
enum eMenuCategory { mcUndefined = -1, mcUnknown = 0, mcMain, mcSchedule, mcChannel, mcTimer, mcRecording, mcPlugin, mcSetup, mcCommand, mcEvent, mcText, mcFolder, mcCam }; enum eMenuCategory {
mcUndefined = -1,
mcUnknown = 0,
mcMain,
mcSchedule,
mcScheduleNow,
mcScheduleNext,
mcChannel,
mcChannelEdit,
mcTimer,
mcTimerEdit,
mcRecording,
mcRecordingInfo,
mcPlugin,
mcPluginSetup,
mcSetup,
mcSetupOsd,
mcSetupEpg,
mcSetupDvb,
mcSetupLnb,
mcSetupCam,
mcSetupRecord,
mcSetupReplay,
mcSetupMisc,
mcSetupPlugins,
mcCommand,
mcEvent,
mcText,
mcFolder,
mcCam
};
class cSkinDisplayMenu : public cSkinDisplay { class cSkinDisplayMenu : public cSkinDisplay {
///< This class implements the general purpose menu display, which is ///< This class implements the general purpose menu display, which is
@ -153,7 +183,7 @@ public:
///< this function will be first called for the old current item ///< this function will be first called for the old current item
///< with Current set to false, and then for the new current item ///< with Current set to false, and then for the new current item
///< with Current set to true. ///< with Current set to true.
virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, int TimerMatch) { return false; } virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch) { return false; }
///< Sets the item at the given Index to Event. See SetItem() for more information. ///< Sets the item at the given Index to Event. See SetItem() for more information.
///< If a derived skin class implements this function, it can display an Event item ///< If a derived skin class implements this function, it can display an Event item
///< in a more elaborate way than just a simple line of text. ///< in a more elaborate way than just a simple line of text.