From deb883ae107df015d5554d815db8b6b031b7c9c0 Mon Sep 17 00:00:00 2001 From: Eduard Hasenleithner Date: Tue, 14 Aug 2001 10:17:58 +0000 Subject: Replaced the dxr3 button event stub with real code. CVS patchset: 426 CVS date: 2001/08/14 10:17:58 --- src/dxr3/dxr3_decoder.c | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/dxr3/dxr3_decoder.c b/src/dxr3/dxr3_decoder.c index f794c50dc..87bf2be13 100644 --- a/src/dxr3/dxr3_decoder.c +++ b/src/dxr3/dxr3_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: dxr3_decoder.c,v 1.9 2001/08/13 12:53:53 ehasenle Exp $ + * $Id: dxr3_decoder.c,v 1.10 2001/08/14 10:17:58 ehasenle Exp $ * * dxr3 video and spu decoder plugin. Accepts the video and spu data * from XINE and sends it directly to the corresponding dxr3 devices. @@ -353,21 +353,46 @@ static void spudec_close (spu_decoder_t *this_gen) } static void spudec_event (spu_decoder_t *this_gen, spu_event_t *event) { -#if 0 spudec_decoder_t *this = (spudec_decoder_t*) this_gen; switch (event->sub_type) { case SPU_EVENT_BUTTON: { - spu_button_t *but = event->data; + spu_button_t *but = event->data; + em8300_button_t btn; + int i; + + if (!but->show) { + ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, NULL); + break; + } + btn.color = btn.contrast = 0; + + for (i = 0; i < 4; i++) { + btn.color |= (but->color[i] & 0xf) << (4*i); + btn.contrast |= (but->trans[i] & 0xf) << (4*i); + } + + btn.left = but->left; + btn.right = but->right; + btn.top = but->top; + btn.bottom = but->bottom; + + if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, &btn)) + fprintf(stderr, "dxr3: failed to set spu button (%s)\n", + strerror(errno)); } break; case SPU_EVENT_CLUT: { - spu_cltbl_t *clut = event->data; + spu_cltbl_t *clut = event->data; + swab_clut(clut->clut); + + if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPALETTE, clut->clut)) + fprintf(stderr, "dxr3: failed to set CLUT (%s)\n", + strerror(errno)); } break; } -#endif } static char *spudec_get_id(void) -- cgit v1.2.3