Add routine to turn audio status into a string.

This commit is contained in:
rocky
2005-03-06 02:59:26 +00:00
parent 333de3f467
commit 83601dc13e
3 changed files with 46 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
/*
$Id: mmc.h,v 1.16 2005/03/02 04:24:00 rocky Exp $
$Id: mmc.h,v 1.17 2005/03/06 02:59:26 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -425,6 +425,12 @@ typedef struct mmc_subchannel_s
driver_return_code_t
mmc_audio_read_subchannel (CdIo_t *p_cdio, cdio_subchannel_t *p_subchannel);
/*!
Return a string containing the name of the audio state as returned from
the Q_SUBCHANNEL.
*/
const char *mmc_audio_state2str( uint8_t i_audio_state );
/*!
* Eject using MMC commands.

View File

@@ -1,6 +1,6 @@
/* Common Multimedia Command (MMC) routines.
$Id: mmc.c,v 1.20 2005/03/06 00:03:53 rocky Exp $
$Id: mmc.c,v 1.21 2005/03/06 02:59:26 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -68,6 +68,30 @@ audio_read_subchannel_mmc ( void *p_user_data, cdio_subchannel_t *p_subchannel)
return mmc_audio_read_subchannel(p_env->cdio, p_subchannel);
}
/*!
Return a string containing the name of the audio state as returned from
the Q_SUBCHANNEL.
*/
const char *mmc_audio_state2str( uint8_t i_audio_state )
{
switch(i_audio_state) {
case CDIO_MMC_READ_SUB_ST_INVALID:
return "invalid";
case CDIO_MMC_READ_SUB_ST_PLAY:
return "playing";
case CDIO_MMC_READ_SUB_ST_PAUSED:
return "paused";
case CDIO_MMC_READ_SUB_ST_COMPLETED:
return "completed";
case CDIO_MMC_READ_SUB_ST_ERROR:
return "error";
case CDIO_MMC_READ_SUB_ST_NO_STATUS:
return "no status";
default:
return "unknown";
}
}
/*!
Get the block size for subsequest read requests, via MMC.
@return the blocksize if > 0; error if <= 0

View File

@@ -1,5 +1,5 @@
/*
$Id: cd-info.c,v 1.130 2005/03/05 19:27:28 rocky Exp $
$Id: cd-info.c,v 1.131 2005/03/06 02:59:26 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
@@ -1133,9 +1133,11 @@ main(int argc, const char *argv[])
if (cdio_is_discmode_cdrom(discmode)) {
/* get and print MCN */
report(stdout, "Media Catalog Number (MCN): "); fflush(stdout);
media_catalog_number = cdio_get_mcn(p_cdio);
report(stdout, "Media Catalog Number (MCN): "); fflush(stdout);
if (NULL == media_catalog_number) {
if (i_read_cap & CDIO_DRIVE_CAP_READ_MCN)
report(stdout, "not available\n");
@@ -1170,35 +1172,29 @@ main(int argc, const char *argv[])
memset(&subchannel, 0, sizeof(subchannel));
subchannel.format = CDIO_CDROM_MSF;
rc = cdio_audio_read_subchannel(p_cdio, &subchannel);
report( stdout, "audio status: "); fflush(stdout);
rc = cdio_audio_read_subchannel(p_cdio, &subchannel);
if (DRIVER_OP_SUCCESS == rc) {
bool b_volume = false;
bool b_position = false;
report ( stdout, "%s\n",
mmc_audio_state2str(subchannel.audio_status) );
switch (subchannel.audio_status) {
case CDIO_MMC_READ_SUB_ST_INVALID:
report( stdout, "invalid\n" ); break;
case CDIO_MMC_READ_SUB_ST_PLAY:
b_playing_audio = true;
b_position = true;
b_volume = true;
report( stdout, "playing" ); break;
/* Fall through to next case. */
case CDIO_MMC_READ_SUB_ST_PAUSED:
b_position = true;
b_volume = true;
report( stdout, "paused" ); break;
case CDIO_MMC_READ_SUB_ST_COMPLETED:
report( stdout, "completed\n"); break;
case CDIO_MMC_READ_SUB_ST_ERROR:
report( stdout, "error\n" ); break;
/* Fall through to next case. */
case CDIO_MMC_READ_SUB_ST_NO_STATUS:
b_volume = true;
report( stdout, "no status\n" ); break;
break;
default:
report( stdout, "Oops: unknown\n" );
;
}
if (b_position)