BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __GSL_FILE_HASH_H__ 00003 #define __GSL_FILE_HASH_H__ 00004 00005 #include <bse/gsldefs.hh> 00006 #include <bse/gslcommon.hh> 00007 00008 #ifdef __cplusplus 00009 extern "C" { 00010 #endif /* __cplusplus */ 00011 00012 00013 00014 /* --- typedefs & structures --- */ 00015 typedef struct { 00016 gchar *file_name; 00017 GTime mtime; 00018 GslLong n_bytes; 00019 /*< private >*/ 00020 GslLong cpos; 00021 Bse::Mutex mutex; 00022 gint fd; 00023 guint ocount; 00024 GslLong zoffset; 00025 } GslHFile; 00026 typedef struct { 00027 GslHFile *hfile; 00028 GslLong offset; 00029 } GslRFile; 00030 00031 00032 /* --- GslHFile API --- */ 00033 GslHFile* gsl_hfile_open (const gchar *file_name); 00034 GslLong gsl_hfile_pread (GslHFile *hfile, 00035 GslLong offset, 00036 GslLong n_bytes, 00037 gpointer bytes); 00038 GslLong gsl_hfile_zoffset (GslHFile *hfile); 00039 void gsl_hfile_close (GslHFile *hfile); 00040 00041 00042 /* --- GslRFile API --- */ 00043 GslRFile* gsl_rfile_open (const gchar *file_name); 00044 gchar* gsl_rfile_name (GslRFile *rfile); 00045 GslLong gsl_rfile_pread (GslRFile *rfile, 00046 GslLong offset, 00047 GslLong n_bytes, 00048 gpointer bytes); 00049 GslLong gsl_rfile_read (GslRFile *rfile, 00050 GslLong n_bytes, 00051 gpointer bytes); 00052 GslLong gsl_rfile_seek_set (GslRFile *rfile, 00053 GslLong offset); 00054 GslLong gsl_rfile_position (GslRFile *rfile); 00055 GslLong gsl_rfile_length (GslRFile *rfile); 00056 void gsl_rfile_close (GslRFile *rfile); 00057 00058 00059 #ifdef __cplusplus 00060 } 00061 #endif /* __cplusplus */ 00062 00063 #endif /* __GSL_FILE_HASH_H__ */