- /* warn interface that something has changed */
- p_input->stream.b_seekable = 1;
- p_input->stream.b_changed = 1;
+ switch( i_query )
+ {
+ /* */
+ case ACCESS_CAN_SEEK:
+ case ACCESS_CAN_FASTSEEK:
+ case ACCESS_CAN_PAUSE:
+ case ACCESS_CAN_CONTROL_PACE:
+ pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
+ *pb_bool = VLC_TRUE;
+ break;
+
+ /* */
+ case ACCESS_GET_MTU:
+ pi_int = (int*)va_arg( args, int * );
+ *pi_int = CDDA_DATA_ONCE;
+ break;
+
+ case ACCESS_GET_PTS_DELAY:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ var_Get( p_access, "cdda-caching", &val );
+ *pi_64 = val.i_int * 1000;
+ break;
+
+ /* */
+ case ACCESS_SET_PAUSE_STATE:
+ break;
+
+ case ACCESS_GET_TITLE_INFO:
+ ppp_title = (input_title_t***)va_arg( args, input_title_t*** );
+ pi_int = (int*)va_arg( args, int* );
+
+ /* Duplicate title infos */
+ *pi_int = p_sys->i_titles;
+ *ppp_title = malloc( sizeof( input_title_t ** ) * p_sys->i_titles );
+ for( i = 0; i < p_sys->i_titles; i++ )
+ {
+ (*ppp_title)[i] = vlc_input_title_Duplicate( p_sys->title[i] );
+ }
+ break;