* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
-#include <vlc/input.h>
-#include <vlc_interaction.h>
+#include <vlc_input.h>
+#include <vlc_access.h>
+#include <vlc_interface.h>
#include <stdlib.h>
#include <string.h>
#endif
#if defined( WIN32 ) && !defined( UNDER_CE )
-/* fstat() support for large files on win32 */
-# define fstat(a,b) _fstati64(a,b)
# ifdef lseek
# undef lseek
# endif
# define lseek fseek
#endif
-#include "charset.h"
+#include <vlc_charset.h>
/*****************************************************************************
* Module descriptor
p_sys->b_seekable = VLC_FALSE;
#else
p_sys->b_seekable = !b_stdin;
+# warning File size not known!
#endif
if (p_sys->b_seekable && (p_access->info.i_size == 0))
*****************************************************************************/
static int Seek (access_t *p_access, int64_t i_pos)
{
- access_sys_t *p_sys = p_access->p_sys;
-
- if (p_access->info.i_size < p_access->info.i_pos)
+ if (i_pos > p_access->info.i_size)
{
msg_Err (p_access, "seeking too far");
- i_pos = p_access->info.i_pos = p_access->info.i_size;
+ i_pos = p_access->info.i_size;
}
- else if (p_access->info.i_pos < 0)
+ else if (i_pos < 0)
{
msg_Err (p_access, "seeking too early");
- i_pos = p_access->info.i_pos = 0;
+ i_pos = 0;
}
p_access->info.i_pos = i_pos;
p_access->info.b_eof = VLC_FALSE;
/* Determine which file we need to access */
- lseek (p_sys->fd, i_pos, SEEK_SET);
+ lseek (p_access->p_sys->fd, i_pos, SEEK_SET);
return VLC_SUCCESS;
}