From 1669fc9f4496775a73d88b130844ad5a3ff34ee7 Mon Sep 17 00:00:00 2001 From: Eduard Hasenleithner Date: Sat, 25 Aug 2001 21:21:01 +0000 Subject: Used the patch from Mike Lampard to adopt the new set_speed syntax. CVS patchset: 494 CVS date: 2001/08/25 21:21:01 --- src/dxr3/dxr3_decoder.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/dxr3/dxr3_decoder.c b/src/dxr3/dxr3_decoder.c index c27c60ef0..66b4df47d 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.13 2001/08/17 13:34:25 heikos Exp $ + * $Id: dxr3_decoder.c,v 1.14 2001/08/25 21:21:01 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. @@ -94,13 +94,36 @@ static int dxr3scr_get_priority (scr_plugin_t *scr) { return self->priority; } -static void dxr3scr_set_speed (scr_plugin_t *scr, float ticks_ps) { +static int dxr3scr_set_speed (scr_plugin_t *scr, int speed) { dxr3scr_t *self = (dxr3scr_t*) scr; - int em_speed = ticks_ps * 2304.0 / 90e3; /* 2304.0 == 0x900 */ + uint32_t em_speed; + switch(speed){ + case SPEED_PAUSE: + em_speed = 0; + break; + case SPEED_SLOW_4: + em_speed = 0x900/4; + break; + case SPEED_SLOW_2: + em_speed = 0x900/2; + break; + case SPEED_NORMAL: + em_speed = 0x900; + break; + case SPEED_FAST_2: + em_speed = 0x900*2; + break; + case SPEED_FAST_4: + em_speed = 0x900*4; + break; + default: + em_speed = 0x900; + } if (ioctl(self->fd_control, EM8300_IOCTL_SCR_SETSPEED, &em_speed)) fprintf(stderr, "dxr3scr: failed to set speed (%s)\n", strerror(errno)); - printf("dxr3scr: set speed to %x\n", em_speed); + + return speed; } static void dxr3scr_adjust (scr_plugin_t *scr, uint32_t vpts) { @@ -138,7 +161,7 @@ static scr_plugin_t* dxr3scr_init (dxr3_decoder_t *dxr3) { self = malloc(sizeof(*self)); memset(self, 0, sizeof(*self)); - self->scr.interface_version = 1; + self->scr.interface_version = 2; self->scr.get_priority = dxr3scr_get_priority; self->scr.set_speed = dxr3scr_set_speed; self->scr.adjust = dxr3scr_adjust; -- cgit v1.2.3