From 7fd9eb52916dd8a0e79f0b5dfdd897f38e68613f Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 5 Mar 2005 22:10:20 +0000 Subject: [PATCH] Correct getting audio subchannel info. --- lib/driver/MSWindows/win32_ioctl.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/driver/MSWindows/win32_ioctl.c b/lib/driver/MSWindows/win32_ioctl.c index 72169fee..68704aa0 100644 --- a/lib/driver/MSWindows/win32_ioctl.c +++ b/lib/driver/MSWindows/win32_ioctl.c @@ -1,5 +1,5 @@ /* - $Id: win32_ioctl.c,v 1.16 2005/03/05 09:11:44 rocky Exp $ + $Id: win32_ioctl.c,v 1.17 2005/03/05 22:10:20 rocky Exp $ Copyright (C) 2004, 2005 Rocky Bernstein @@ -26,7 +26,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.16 2005/03/05 09:11:44 rocky Exp $"; +static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.17 2005/03/05 22:10:20 rocky Exp $"; #ifdef HAVE_WIN32_CDROM @@ -180,6 +180,7 @@ audio_read_subchannel_win32ioctl (void *p_user_data, const _img_private_t *p_env = p_user_data; DWORD dw_bytes_returned; CDROM_SUB_Q_DATA_FORMAT q_data_format; + SUB_Q_CHANNEL_DATA q_subchannel_data; q_data_format.Format = CDIO_SUBCHANNEL_CURRENT_POSITION; q_data_format.Track=0; /* Not sure if this has to be set or if so what @@ -188,7 +189,7 @@ audio_read_subchannel_win32ioctl (void *p_user_data, if( ! DeviceIoControl( p_env->h_device_handle, IOCTL_CDROM_READ_Q_CHANNEL, &q_data_format, sizeof(q_data_format), - p_subchannel, sizeof(cdio_subchannel_t), + &q_subchannel_data, sizeof(q_subchannel_data), &dw_bytes_returned, NULL ) ) { char *psz_msg = NULL; long int i_err = GetLastError(); @@ -200,6 +201,8 @@ audio_read_subchannel_win32ioctl (void *p_user_data, LocalFree(psz_msg); return DRIVER_OP_ERROR; } + memcpy(p_subchannel, &q_subchannel_data.CurrentPosition, + sizeof(cdio_subchannel_t)); return DRIVER_OP_SUCCESS; } @@ -207,7 +210,7 @@ audio_read_subchannel_win32ioctl (void *p_user_data, /*! Resume playing an audio CD. - @param p_cdio the CD object to be acted upon. + @param p_user_data the CD object to be acted upon. */ driver_return_code_t @@ -237,12 +240,13 @@ audio_resume_win32ioctl (void *p_user_data) /*! Set the volume of an audio CD. - @param p_cdio the CD object to be acted upon. + @param p_user_data pointer to the CD object to be acted upon. + @param p_volume pointer to the volume levels */ driver_return_code_t audio_set_volume_win32ioctl (void *p_user_data, - cdio_audio_volume_t *p_volume) + /*in*/ cdio_audio_volume_t *p_volume) { const _img_private_t *p_env = p_user_data; DWORD dw_bytes_returned;