Commit af338f59 authored by Gildas Bazin's avatar Gildas Bazin

* modules/access/file.c: got rid of the #ifdef HAVE_ERRNO_H + WinCE compilation fixes.

parent 86f50fed
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <errno.h>
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
# include <sys/types.h> # include <sys/types.h>
#endif #endif
...@@ -38,9 +39,6 @@ ...@@ -38,9 +39,6 @@
#ifdef HAVE_SYS_STAT_H #ifdef HAVE_SYS_STAT_H
# include <sys/stat.h> # include <sys/stat.h>
#endif #endif
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
#ifdef HAVE_FCNTL_H #ifdef HAVE_FCNTL_H
# include <fcntl.h> # include <fcntl.h>
#endif #endif
...@@ -95,7 +93,7 @@ static int Seek( access_t *, int64_t ); ...@@ -95,7 +93,7 @@ static int Seek( access_t *, int64_t );
static int Read( access_t *, uint8_t *, int ); static int Read( access_t *, uint8_t *, int );
static int Control( access_t *, int, va_list ); static int Control( access_t *, int, va_list );
static int _OpenFile( access_t *, char * ); static int _OpenFile( access_t *, char * );
typedef struct typedef struct
{ {
...@@ -116,6 +114,9 @@ struct access_sys_t ...@@ -116,6 +114,9 @@ struct access_sys_t
/* Current file */ /* Current file */
int i_index; int i_index;
int fd; int fd;
#ifdef UNDER_CE
HANDLE fd_handle;
#endif
/* */ /* */
vlc_bool_t b_seekable; vlc_bool_t b_seekable;
...@@ -265,6 +266,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -265,6 +266,7 @@ static int Open( vlc_object_t *p_this )
if( psz_name ) if( psz_name )
{ {
msg_Dbg( p_access, "adding file `%s'", psz_name ); msg_Dbg( p_access, "adding file `%s'", psz_name );
i_size = 0;
#ifdef HAVE_SYS_STAT_H #ifdef HAVE_SYS_STAT_H
if( !stat( psz_name, &stat_info ) ) if( !stat( psz_name, &stat_info ) )
...@@ -275,7 +277,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -275,7 +277,6 @@ static int Open( vlc_object_t *p_this )
else else
{ {
msg_Dbg( p_access, "cannot stat() file `%s'", psz_name ); msg_Dbg( p_access, "cannot stat() file `%s'", psz_name );
i_size = 0;
} }
#endif #endif
p_file = malloc( sizeof(file_entry_t) ); p_file = malloc( sizeof(file_entry_t) );
...@@ -323,13 +324,7 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len ) ...@@ -323,13 +324,7 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len )
access_sys_t *p_sys = p_access->p_sys; access_sys_t *p_sys = p_access->p_sys;
int i_ret; int i_ret;
#ifdef UNDER_CE #if !defined(WIN32) && !defined(UNDER_CE)
if( !ReadFile( (HANDLE)p_sys->fd, p_buffer, i_len, (LPDWORD)&i_ret, NULL ) )
{
i_ret = -1;
}
#else
#ifndef WIN32
if( !p_sys->b_pace_control ) if( !p_sys->b_pace_control )
{ {
if( !p_sys->b_kfir ) if( !p_sys->b_kfir )
...@@ -377,7 +372,13 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len ) ...@@ -377,7 +372,13 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len )
} }
} }
else else
# endif #endif /* WIN32 || UNDER_CE */
#ifdef UNDER_CE
if( !ReadFile( p_sys->fd_handle, p_buffer, i_len, (LPDWORD)&i_ret, 0 ) )
{
i_ret = -1;
}
#else
{ {
/* b_pace_control || WIN32 */ /* b_pace_control || WIN32 */
i_ret = read( p_sys->fd, p_buffer, i_len ); i_ret = read( p_sys->fd, p_buffer, i_len );
...@@ -396,7 +397,8 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len ) ...@@ -396,7 +397,8 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len )
p_sys->i_nb_reads++; p_sys->i_nb_reads++;
#ifdef HAVE_SYS_STAT_H #ifdef HAVE_SYS_STAT_H
if( p_access->info.i_size != 0 && (p_sys->i_nb_reads % INPUT_FSTAT_NB_READS) == 0 ) if( p_access->info.i_size != 0 &&
(p_sys->i_nb_reads % INPUT_FSTAT_NB_READS) == 0 )
{ {
struct stat stat_info; struct stat stat_info;
int i_file = p_sys->i_index; int i_file = p_sys->i_index;
...@@ -502,7 +504,6 @@ static int Seek( access_t *p_access, int64_t i_pos ) ...@@ -502,7 +504,6 @@ static int Seek( access_t *p_access, int64_t i_pos )
return VLC_SUCCESS; return VLC_SUCCESS;
} }
/***************************************************************************** /*****************************************************************************
* Control: * Control:
*****************************************************************************/ *****************************************************************************/
...@@ -569,17 +570,18 @@ static int _OpenFile( access_t * p_access, char * psz_name ) ...@@ -569,17 +570,18 @@ static int _OpenFile( access_t * p_access, char * psz_name )
wchar_t psz_filename[MAX_PATH]; wchar_t psz_filename[MAX_PATH];
MultiByteToWideChar( CP_ACP, 0, psz_name, -1, psz_filename, MAX_PATH ); MultiByteToWideChar( CP_ACP, 0, psz_name, -1, psz_filename, MAX_PATH );
p_sys->fd = p_sys->fd_handle =
(int)CreateFile( psz_filename, GENERIC_READ, FILE_SHARE_READ, CreateFile( psz_filename, GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
p_sys->fd = (int)p_sys->fd_handle;
if ( (HANDLE)p_sys->fd == INVALID_HANDLE_VALUE ) if ( p_sys->fd_handle == INVALID_HANDLE_VALUE )
{ {
msg_Err( p_access, "cannot open file %s", psz_name ); msg_Err( p_access, "cannot open file %s", psz_name );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_access->info.i_size = p_access->info.i_size =
GetFileSize( (HANDLE)p_access_data->i_handle, NULL ); GetFileSize( p_sys->fd_handle, NULL );
p_access->info.i_update |= INPUT_UPDATE_SIZE; p_access->info.i_update |= INPUT_UPDATE_SIZE;
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment