]> git.sesse.net Git - vlc/blobdiff - include/vlc_access.h
Start of meta engine stuff. src/input/input.c needs to be fixed a bit. I'll finish...
[vlc] / include / vlc_access.h
index 7c9bb2196e9dece23c75c39010ab1604cc81b6b9..a16f70c427cb6bfc141f8b5de2c7a86b856741e9 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * vlc_access.h: Access descriptor, queries and methods
  *****************************************************************************
- * Copyright (C) 1999-2004 the VideoLAN team
+ * Copyright (C) 1999-2006 the VideoLAN team
  * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
@@ -74,7 +74,7 @@ struct access_t
     access_t    *p_source;
 
     /* Access can fill this entry to force a demuxer
-     * XXX: fill it once you know for sure you will succed
+     * XXX: fill it once you know for sure you will succeed
      * (if you fail, this value won't be reseted */
     char        *psz_demux;
 
@@ -130,4 +130,32 @@ static inline int access2_Control( access_t *p_access, int i_query, ... )
     return i_result;
 }
 
+static inline void access_InitFields( access_t *p_a )
+{
+    p_a->info.i_update = 0;
+    p_a->info.i_size = 0;
+    p_a->info.i_pos = 0;
+    p_a->info.b_eof = VLC_FALSE;
+    p_a->info.i_title = 0;
+    p_a->info.i_seekpoint = 0;
+}
+
+#define ACCESS_SET_CALLBACKS( read, block, control, seek ) \
+    p_access->pf_read = read;  \
+    p_access->pf_block = block; \
+    p_access->pf_control = control; \
+    p_access->pf_seek = seek; \
+
+#define STANDARD_READ_ACCESS_INIT \
+    access_InitFields( p_access ); \
+    ACCESS_SET_CALLBACKS( Read, NULL, Control, Seek ); \
+    MALLOC_ERR( p_access->p_sys, access_sys_t ); \
+    p_sys = p_access->p_sys; memset( p_sys, 0, sizeof( access_sys_t ) );
+
+#define STANDARD_BLOCK_ACCESS_INIT \
+    access_InitFields( p_access ); \
+    ACCESS_SET_CALLBACKS( NULL, Block, Control, Seek ); \
+    MALLOC_ERR( p_access->p_sys, access_sys_t ); \
+    p_sys = p_access->p_sys; memset( p_sys, 0, sizeof( access_sys_t ) );
+
 #endif