+/*****************************************************************************
+ * Control:
+ *****************************************************************************/
+static int Control( access_t *p_access, int i_query, va_list args )
+{
+ access_sys_t *p_sys = p_access->p_sys;
+ vlc_bool_t *pb_bool;
+ int *pi_int;
+ int64_t *pi_64;
+
+ switch( i_query )
+ {
+ /* */
+ case ACCESS_CAN_SEEK:
+ case ACCESS_CAN_FASTSEEK:
+ pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
+ *pb_bool = p_sys->b_seekable;
+ break;
+
+ case ACCESS_CAN_PAUSE:
+ case ACCESS_CAN_CONTROL_PACE:
+ pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
+ *pb_bool = p_sys->b_pace_control;
+ break;
+
+ /* */
+ case ACCESS_GET_MTU:
+ pi_int = (int*)va_arg( args, int * );
+ *pi_int = 0;
+ break;
+
+ case ACCESS_GET_PTS_DELAY:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ *pi_64 = var_GetInteger( p_access, "file-caching" ) * I64C(1000);
+ break;
+
+ /* */
+ case ACCESS_SET_PAUSE_STATE:
+ /* Nothing to do */
+ break;
+
+ case ACCESS_GET_TITLE_INFO:
+ case ACCESS_SET_TITLE:
+ case ACCESS_SET_SEEKPOINT:
+ case ACCESS_SET_PRIVATE_ID_STATE:
+ case ACCESS_GET_META:
+ return VLC_EGENERIC;
+
+ default:
+ msg_Warn( p_access, "unimplemented query in control" );
+ return VLC_EGENERIC;
+
+ }
+ return VLC_SUCCESS;
+}
+
+
+/*****************************************************************************
+ * OpenFile: Opens a specific file
+ *****************************************************************************/
+static int _OpenFile( access_t * p_access, char * psz_name )
+{
+ access_sys_t *p_sys = p_access->p_sys;
+
+#ifdef UNDER_CE
+ p_sys->fd = fopen( psz_name, "rb" );
+ if ( !p_sys->fd )
+ {
+ msg_Err( p_access, "cannot open file %s", psz_name );
+ return VLC_EGENERIC;
+ }
+
+ fseek( p_sys->fd, 0, SEEK_END );
+ p_access->info.i_size = ftell( p_sys->fd );
+ p_access->info.i_update |= INPUT_UPDATE_SIZE;
+ fseek( p_sys->fd, 0, SEEK_SET );
+#else
+
+ p_sys->fd = open( psz_name, O_NONBLOCK /*| O_LARGEFILE*/ );
+ if ( p_sys->fd == -1 )
+ {
+ msg_Err( p_access, "cannot open file %s (%s)", psz_name,
+ strerror(errno) );
+ return VLC_EGENERIC;
+ }
+#endif
+
+ return VLC_SUCCESS;
+}