From: Eduard H. <eha...@us...> - 2001-08-14 10:18:01
|
Update of /cvsroot/xine/xine-lib/src/dxr3 In directory usw-pr-cvs1:/tmp/cvs-serv26768 Modified Files: dxr3_decoder.c Log Message: Replaced the dxr3 button event stub with real code. Index: dxr3_decoder.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/dxr3/dxr3_decoder.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- dxr3_decoder.c 2001/08/13 12:53:53 1.9 +++ dxr3_decoder.c 2001/08/14 10:17:58 1.10 @@ -353,21 +353,46 @@ } 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) |