BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
gslfilehash.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines