X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faccess%2Fcdda%2Faccess.c;h=f4de5bd75d2bc2f2a0bd190671f023982f196530;hb=482d8344a9aadc7c313e63b67432233a7339e35b;hp=4a8fddece3e87d8d63d6027250db50a6c2134415;hpb=551cd1d569dcd10d574bf28761137fb14c199b09;p=vlc diff --git a/modules/access/cdda/access.c b/modules/access/cdda/access.c index 4a8fddece3..f4de5bd75d 100644 --- a/modules/access/cdda/access.c +++ b/modules/access/cdda/access.c @@ -29,29 +29,21 @@ #include "callback.h" /* FIXME - reorganize callback.h, cdda.h better */ #include "cdda.h" /* private structures. Also #includes vlc things */ #include "info.h" /* headers for meta info retrieval */ -#include /* Has to come *after* cdda.h */ +#include "access.h" #include "vlc_keys.h" -#include +#include #include #include #include -#include /* #ifdef variables below are defined via config.h via #include vlc above. */ -#ifdef HAVE_STDLIB_H -#include -#endif #ifdef HAVE_SYS_TYPES_H #include #endif -#ifdef HAVE_STRING_H -#include -#endif - #ifdef HAVE_UNISTD_H # include #endif @@ -62,7 +54,7 @@ access_t *p_cdda_input = NULL; /***************************************************************************** * Local prototypes *****************************************************************************/ -static int CDDARead( access_t *, uint8_t *, int ); +static ssize_t CDDARead( access_t *, uint8_t *, size_t ); static block_t *CDDAReadBlocks( access_t * p_access ); static int CDDASeek( access_t * p_access, int64_t i_pos ); static int CDDAControl( access_t *p_access, int i_query, @@ -75,7 +67,7 @@ static int CDDAInit( access_t *p_access, cdda_data_t *p_cdda ) ; * Private functions ****************************************************************************/ -/* process messages that originate from libcdio. +/* process messages that originate from libcdio. called by CDDAOpen */ static void @@ -91,17 +83,17 @@ cdio_log_handler( cdio_log_level_t level, const char message[] ) case CDIO_LOG_DEBUG: case CDIO_LOG_INFO: if (p_cdda->i_debug & INPUT_DBG_CDIO) - msg_Dbg( p_cdda_input, message); + msg_Dbg( p_cdda_input, "%s", message); break; case CDIO_LOG_WARN: - msg_Warn( p_cdda_input, message); + msg_Warn( p_cdda_input, "%s", message); break; case CDIO_LOG_ERROR: case CDIO_LOG_ASSERT: - msg_Err( p_cdda_input, message); + msg_Err( p_cdda_input, "%s", message); break; default: - msg_Warn( p_cdda_input, message, + msg_Warn( p_cdda_input, "%s\n%s %d", message, "the above message had unknown cdio log level", level); break; @@ -167,7 +159,7 @@ uninit_log_handler( cdio_log_level_t level, const char message[] ) /* gl_default_cdio_log_handler (level, message); */ } -/* Only used in audio control mode. Gets the current LSN from the +/* Only used in audio control mode. Gets the current LSN from the CD-ROM drive. */ static int64_t get_audio_position ( access_t *p_access ) { @@ -222,7 +214,7 @@ static block_t * CDDAReadBlocks( access_t * p_access ) cdda_data_t *p_cdda = (cdda_data_t *) p_access->p_sys; int i_blocks = p_cdda->i_blocks_per_read; - dbg_print( (INPUT_DBG_CALL|INPUT_DBG_EXT|INPUT_DBG_LSN), + dbg_print( (INPUT_DBG_CALL|INPUT_DBG_EXT|INPUT_DBG_LSN), "called i_lsn: %d i_pos: %lld, size: %lld", p_cdda->i_lsn, p_access->info.i_pos, p_access->info.i_size ); @@ -235,7 +227,7 @@ static block_t * CDDAReadBlocks( access_t * p_access ) /* Return only the dummy RIFF header we created in Open/Init */ p_block = block_New( p_access, sizeof( WAVEHEADER ) ); memcpy( p_block->p_buffer, &p_cdda->waveheader, sizeof(WAVEHEADER) ); - p_cdda->b_header = VLC_TRUE; + p_cdda->b_header = true; return p_block; } @@ -253,7 +245,7 @@ static block_t * CDDAReadBlocks( access_t * p_access ) if( go_on ) { dbg_print( (INPUT_DBG_LSN), "EOF"); - p_access->info.b_eof = VLC_TRUE; + p_access->info.b_eof = true; return NULL; } @@ -290,8 +282,8 @@ static block_t * CDDAReadBlocks( access_t * p_access ) { msg_Err( p_access, "cannot get a new block of size: %i", i_blocks * CDIO_CD_FRAMESIZE_RAW ); - intf_UserFatal( p_access, VLC_FALSE, _("CD reading failed"), - _("VLC could not get a new block of size: %i."), + intf_UserFatal( p_access, false, _("CD reading failed"), + _("VLC could not get a new block of size: %i."), i_blocks * CDIO_CD_FRAMESIZE_RAW ); return NULL; } @@ -313,8 +305,8 @@ static block_t * CDDAReadBlocks( access_t * p_access ) msg_Err( p_access, "%s%s\n", psz_mes ? psz_mes: "", psz_err ? psz_err: "" ); - if( psz_err ) free( psz_err ); - if( psz_mes ) free( psz_mes ); + free( psz_err ); + free( psz_mes ); if( !p_readbuf ) { msg_Err( p_access, "paranoia read error on frame %i\n", @@ -361,8 +353,8 @@ static block_t * CDDAReadBlocks( access_t * p_access ) /***************************************************************************** * CDDARead: Handler for audio control reads the CD-DA. *****************************************************************************/ -static int -CDDARead( access_t * p_access, uint8_t *p_buffer, int i_len ) +static ssize_t +CDDARead( access_t * p_access, uint8_t *p_buffer, size_t i_len ) { cdda_data_t *p_cdda = (cdda_data_t *) p_access->p_sys; @@ -396,7 +388,7 @@ CDDARead( access_t * p_access, uint8_t *p_buffer, int i_len ) if( p_cdda->i_track >= p_cdda->i_first_track + p_cdda->i_titles - 1 ) { dbg_print( (INPUT_DBG_LSN), "EOF"); - p_access->info.b_eof = VLC_TRUE; + p_access->info.b_eof = true; return 0; } p_access->info.i_update |= INPUT_UPDATE_TITLE; @@ -407,7 +399,7 @@ CDDARead( access_t * p_access, uint8_t *p_buffer, int i_len ) { char *psz_title = CDDAFormatTitle( p_access, p_cdda->i_track ); input_Control( p_cdda->p_input, INPUT_SET_NAME, psz_title ); - free(psz_title); + free( psz_title ); } else { @@ -512,7 +504,7 @@ static int CDDASeek( access_t * p_access, int64_t i_pos ) } p_access->info.i_pos = i_pos; - p_access->info.b_eof = VLC_FALSE; + p_access->info.b_eof = false; return VLC_SUCCESS; } @@ -536,7 +528,7 @@ static bool cdda_play_track( access_t *p_access, track_t i_track ) p_cdda->i_track = i_track; /* set up the frame boundaries for this particular track */ - p_cdda->first_frame = p_cdda->i_lsn = + p_cdda->first_frame = p_cdda->i_lsn = cdio_get_track_lsn( p_cdda->p_cdio, i_track ); p_cdda->last_frame = cdio_get_track_lsn( p_cdda->p_cdio, i_track+1 ) - 1; @@ -570,7 +562,7 @@ int CDDAOpen( vlc_object_t *p_this ) cdda_data_t *p_cdda = NULL; CdIo_t *p_cdio; track_t i_track = 1; - vlc_bool_t b_single_track = false; + bool b_single_track = false; int i_rc = VLC_EGENERIC; p_access->p_sys = NULL; @@ -613,6 +605,7 @@ int CDDAOpen( vlc_object_t *p_this ) psz_source = var_CreateGetString( p_this, "cd-audio" ); if( !psz_source || !*psz_source ) { + free( psz_source ); /* Scan for a CD-ROM drive with a CD-DA in it. */ char **ppsz_drives = cdio_get_devices_with_cap( NULL, CDIO_FS_AUDIO, false ); @@ -635,15 +628,13 @@ int CDDAOpen( vlc_object_t *p_this ) if( !(p_cdio = cdio_open( psz_source, DRIVER_UNKNOWN )) ) { msg_Warn( p_access, "could not open %s", psz_source ); - if ( psz_source ) - free( psz_source ); + free( psz_source ); return VLC_EGENERIC; } p_cdda = calloc( 1, sizeof(cdda_data_t) ); if( p_cdda == NULL ) { - msg_Err( p_access, "out of memory" ); free( psz_source ); return VLC_ENOMEM; } @@ -664,7 +655,7 @@ int CDDAOpen( vlc_object_t *p_this ) #endif p_cdda->psz_source = strdup( psz_source ); - p_cdda->b_header = VLC_FALSE; + p_cdda->b_header = false; p_cdda->p_cdio = p_cdio; p_cdda->i_tracks = 0; p_cdda->i_titles = 0; @@ -724,7 +715,7 @@ int CDDAOpen( vlc_object_t *p_this ) } p_access->info.i_update = 0; - p_access->info.b_eof = VLC_FALSE; + p_access->info.b_eof = false; p_access->info.i_title = 0; p_access->info.i_seekpoint = 0; @@ -743,13 +734,13 @@ int CDDAOpen( vlc_object_t *p_this ) char *psz_paranoia = config_GetPsz( p_access, MODULE_STRING "-paranoia" ); - p_cdda->e_paranoia = paranoia_none; + p_cdda->e_paranoia = PARANOIA_MODE_DISABLE; if( psz_paranoia && *psz_paranoia ) { if( !strncmp( psz_paranoia, "full", strlen("full") ) ) - p_cdda->e_paranoia = paranoia_full; + p_cdda->e_paranoia = PARANOIA_MODE_FULL; else if( !strncmp(psz_paranoia, "overlap", strlen("overlap")) ) - p_cdda->e_paranoia = paranoia_overlap; + p_cdda->e_paranoia = PARANOIA_MODE_OVERLAP; /* Use CD Paranoia? */ if( p_cdda->e_paranoia ) @@ -764,7 +755,7 @@ int CDDAOpen( vlc_object_t *p_this ) { msg_Warn( p_cdda_input, "unable to get paranoia support - " "continuing without it." ); - p_cdda->e_paranoia = paranoia_none; + p_cdda->e_paranoia = PARANOIA_MODE_DISABLE; } else { @@ -775,12 +766,13 @@ int CDDAOpen( vlc_object_t *p_this ) /* Set reading mode for full or overlap paranoia, * but allow skipping sectors. */ cdio_paranoia_modeset( p_cdda->paranoia, - paranoia_full == p_cdda->e_paranoia ? + PARANOIA_MODE_FULL == p_cdda->e_paranoia ? PARANOIA_MODE_FULL^PARANOIA_MODE_NEVERSKIP : PARANOIA_MODE_OVERLAP^PARANOIA_MODE_NEVERSKIP ); } } } + free( psz_paranoia ); } #endif @@ -816,7 +808,7 @@ int CDDAOpen( vlc_object_t *p_this ) error: cdio_destroy( p_cdda->p_cdio ); - if( psz_source) free( psz_source ); + free( psz_source ); if( p_cdda ) { if ( p_cdda->p_input ) @@ -864,8 +856,8 @@ void CDDAClose (vlc_object_t *p_this ) cdio_cddap_close_no_free_cdio( p_cdda->paranoia_cd ); #endif - if( p_cdda->psz_mcn ) free( p_cdda->psz_mcn ); - if( p_cdda->psz_source ) free( p_cdda->psz_source ); + free( p_cdda->psz_mcn ); + free( p_cdda->psz_source ); #if LIBCDDB_VERSION_NUM >= 1 libcddb_shutdown(); @@ -896,8 +888,8 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args ) */ case ACCESS_GET_META: { - vlc_meta_t **pp_meta = (vlc_meta_t**)va_arg( args, vlc_meta_t** ); #if 0 + vlc_meta_t **pp_meta = (vlc_meta_t**)va_arg( args, vlc_meta_t** ); if( p_cdda->p_meta ) { *pp_meta = vlc_meta_Duplicate( p_cdda->p_meta ); @@ -914,8 +906,8 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args ) case ACCESS_CAN_CONTROL_PACE: { - vlc_bool_t *pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* ); - *pb_bool = p_cdda->b_audio_ctl ? VLC_FALSE : VLC_TRUE; + bool *pb_bool = (bool*)va_arg( args, bool* ); + *pb_bool = p_cdda->b_audio_ctl ? false : true; dbg_print( INPUT_DBG_META, "can control pace? %d", *pb_bool); return VLC_SUCCESS; } @@ -930,8 +922,8 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args ) dbg_print( INPUT_DBG_META, "can pause?"); common: { - vlc_bool_t *pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* ); - *pb_bool = VLC_TRUE; + bool *pb_bool = (bool*)va_arg( args, bool* ); + *pb_bool = true; return VLC_SUCCESS; } @@ -1013,7 +1005,7 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args ) char *psz_title = CDDAFormatTitle( p_access, i_track ); input_Control( p_cdda->p_input, INPUT_SET_NAME, psz_title ); - free(psz_title); + free( psz_title ); p_cdda->i_track = i_track; i_last_lsn = cdio_get_track_lsn( p_cdda->p_cdio, CDIO_CDROM_LEADOUT_TRACK ); @@ -1101,7 +1093,7 @@ static int CDDAInit( access_t *p_access, cdda_data_t *p_cdda ) return VLC_SUCCESS; } -/* +/* * Local variables: * mode: C * style: gnu