From 6cf48eacb8894534b44e836a7275034ad29b2735 Mon Sep 17 00:00:00 2001 From: rocky Date: Sun, 6 Mar 2005 15:59:20 +0000 Subject: [PATCH] Add cdio_audio_get_msf_seconds --- include/cdio/audio.h | 14 +++++++++++++- lib/driver/audio.c | 15 ++++++++++++--- lib/driver/libcdio.sym | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/include/cdio/audio.h b/include/cdio/audio.h index 7f949a8e..43ee35f0 100644 --- a/include/cdio/audio.h +++ b/include/cdio/audio.h @@ -1,5 +1,5 @@ /* -*- c -*- - $Id: audio.h,v 1.6 2005/03/06 11:21:52 rocky Exp $ + $Id: audio.h,v 1.7 2005/03/06 15:59:20 rocky Exp $ Copyright (C) 2005 Rocky Bernstein @@ -71,6 +71,18 @@ extern "C" { driver_return_code_t cdio_audio_get_volume (CdIo_t *p_cdio, /*out*/ cdio_audio_volume_t *p_volume); + /*! + Return the number of seconds (discarding frame portion) of an MSF + */ + uint32_t cdio_audio_get_msf_seconds(msf_t *p_msf); + + /*! + Pause playing CD through analog output + + @param p_cdio the CD object to be acted upon. + */ + driver_return_code_t cdio_audio_pause (CdIo_t *p_cdio); + /*! Pause playing CD through analog output diff --git a/lib/driver/audio.c b/lib/driver/audio.c index 4ed00d48..36288ba5 100644 --- a/lib/driver/audio.c +++ b/lib/driver/audio.c @@ -1,5 +1,5 @@ /* - $Id: audio.c,v 1.5 2005/03/06 11:21:52 rocky Exp $ + $Id: audio.c,v 1.6 2005/03/06 15:59:20 rocky Exp $ Copyright (C) 2005 Rocky Bernstein @@ -25,9 +25,18 @@ #endif #include +#include #include #include "cdio_private.h" +/* Return the number of seconds (discarding frame portion) of an MSF */ +unsigned int +cdio_audio_get_msf_seconds(msf_t *p_msf) +{ + return + cdio_from_bcd8(p_msf->m)*CDIO_CD_SECS_PER_MIN + cdio_from_bcd8(p_msf->s); +} + /*! Get volume of an audio CD. @@ -124,7 +133,7 @@ cdio_audio_resume (CdIo_t *p_cdio) { if (!p_cdio) return DRIVER_OP_UNINIT; - if (!p_cdio->op.audio_resume) { + if (p_cdio->op.audio_resume) { return p_cdio->op.audio_resume(p_cdio->env); } else { return DRIVER_OP_UNSUPPORTED; @@ -160,7 +169,7 @@ cdio_audio_stop (CdIo_t *p_cdio) { if (!p_cdio) return DRIVER_OP_UNINIT; - if (!p_cdio->op.audio_stop) { + if (p_cdio->op.audio_stop) { return p_cdio->op.audio_stop(p_cdio->env); } else { return DRIVER_OP_UNSUPPORTED; diff --git a/lib/driver/libcdio.sym b/lib/driver/libcdio.sym index 0342c401..627f2f27 100644 --- a/lib/driver/libcdio.sym +++ b/lib/driver/libcdio.sym @@ -13,6 +13,7 @@ _cdio_list_prepend _cdio_malloc _cdio_strfreev _cdio_strsplit +cdio_audio_get_msf_seconds cdio_audio_get_volume cdio_audio_pause cdio_audio_play_msf