diff options
author | etobi <git@e-tobi.net> | 2010-02-13 00:28:21 +0100 |
---|---|---|
committer | etobi <git@e-tobi.net> | 2013-03-10 13:52:15 +0100 |
commit | 321f443bfd3273602e62ecc5f008a7f2a78bb17d (patch) | |
tree | 20f0bd5ebf4907291365fbf033b8171cfac13b5e /vdrttxtsubshooks.c | |
parent | 0460f10ead868f796e642adf6a3bdc1b6d8ca190 (diff) | |
download | vdr-patches-321f443bfd3273602e62ecc5f008a7f2a78bb17d.tar.gz vdr-patches-321f443bfd3273602e62ecc5f008a7f2a78bb17d.tar.bz2 |
Ttxtsubs plugin hookpatches/ttxtsubs-vdr-1.7.39patches/ttxtsubs-vdr-1.7
Diffstat (limited to 'vdrttxtsubshooks.c')
-rw-r--r-- | vdrttxtsubshooks.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vdrttxtsubshooks.c b/vdrttxtsubshooks.c new file mode 100644 index 0000000..2471788 --- /dev/null +++ b/vdrttxtsubshooks.c @@ -0,0 +1,63 @@ +/* + * vdr-ttxtsubs - A plugin for the Linux Video Disk Recorder + * Copyright (c) 2003 - 2008 Ragnar Sundblad <ragge@nada.kth.se> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include <stdlib.h> +#include <stdio.h> +#include <stdint.h> + +#include "vdrttxtsubshooks.h" + +// XXX Really should be a list... +static cVDRTtxtsubsHookListener *gListener; + +// ------ class cVDRTtxtsubsHookProxy ------ + +class cVDRTtxtsubsHookProxy : public cVDRTtxtsubsHookListener +{ + public: + virtual void HideOSD(void) { if(gListener) gListener->HideOSD(); }; + virtual void ShowOSD(void) { if(gListener) gListener->ShowOSD(); }; + virtual void PlayerTeletextData(uint8_t *p, int length, bool IsPesRecording, const struct tTeletextSubtitlePage teletextSubtitlePages[] = NULL, int pageCount = 0) + { if(gListener) gListener->PlayerTeletextData(p, length, IsPesRecording, teletextSubtitlePages, pageCount); }; + virtual int ManualPageNumber(const cChannel *channel) + { if(gListener) return gListener->ManualPageNumber(channel); else return 0; }; +}; + + +// ------ class cVDRTtxtsubsHookListener ------ + +cVDRTtxtsubsHookListener::~cVDRTtxtsubsHookListener() +{ + gListener = 0; +} + +void cVDRTtxtsubsHookListener::HookAttach(void) +{ + gListener = this; + //printf("cVDRTtxtsubsHookListener::HookAttach\n"); +} + +static cVDRTtxtsubsHookProxy gProxy; + +cVDRTtxtsubsHookListener *cVDRTtxtsubsHookListener::Hook(void) +{ + return &gProxy; +} + |