2 #ifndef __GSL_DATA_HANDLE_H__
3 #define __GSL_DATA_HANDLE_H__
11 #define GSL_DATA_HANDLE_OPENED(handle) (((GslDataHandle*) (handle))->open_count > 0)
12 #define GSL_DATA_HANDLE_READ_LINEAR(handle) (((GslDataHandle*) (handle))->vtable->coarse_seek != NULL)
21 guint needs_cache : 1;
27 GslDataHandleFuncs *vtable;
30 Bse::Spinlock spinlock;
36 typedef void (*GslDataHandleRecurse) (GslDataHandle *data_handle,
40 Bse::ErrorType (*open) (GslDataHandle *data_handle,
42 int64 (*read) (GslDataHandle *data_handle,
46 void (*close) (GslDataHandle *data_handle);
47 GslDataHandle* (*get_source) (GslDataHandle *data_handle);
48 int64 (*get_state_length) (GslDataHandle *data_handle);
49 void (*destroy) (GslDataHandle *data_handle);
55 GslDataHandle* gsl_data_handle_ref (GslDataHandle *dhandle);
56 void gsl_data_handle_unref (GslDataHandle *dhandle);
57 Bse::ErrorType gsl_data_handle_open (GslDataHandle *dhandle);
58 void gsl_data_handle_close (GslDataHandle *dhandle);
59 int64 gsl_data_handle_length (GslDataHandle *data_handle);
60 #define gsl_data_handle_n_values( dh) \
61 gsl_data_handle_length (dh)
62 guint gsl_data_handle_n_channels (GslDataHandle *data_handle);
63 guint gsl_data_handle_bit_depth (GslDataHandle *data_handle);
64 gfloat gsl_data_handle_mix_freq (GslDataHandle *data_handle);
65 gfloat gsl_data_handle_osc_freq (GslDataHandle *data_handle);
66 gfloat gsl_data_handle_volume (GslDataHandle *data_handle);
67 gfloat gsl_data_handle_fine_tune (GslDataHandle *data_handle);
68 const gchar* gsl_data_handle_name (GslDataHandle *data_handle);
69 int64 gsl_data_handle_read (GslDataHandle *data_handle,
74 GslDataHandle* gsl_data_handle_get_source (GslDataHandle *dhandle);
75 GslDataHandle* gsl_data_handle_new_scale (GslDataHandle *src_handle,
83 GslDataHandle* gsl_data_handle_new_reverse (GslDataHandle *src_handle);
84 GslDataHandle* gsl_data_handle_new_insert (GslDataHandle *src_handle,
85 guint pasted_bit_depth,
86 int64 insertion_offset,
88 const gfloat *paste_values,
89 void (*free) (gpointer values));
90 GslDataHandle* gsl_data_handle_new_mem (guint n_channels,
96 void (*free) (gpointer values));
97 GslDataHandle* gsl_data_handle_new_dcached (GslDataCache *dcache);
99 GslDataHandle* gsl_data_handle_new_looped (GslDataHandle *src_handle,
104 GslDataHandle* bse_data_handle_new_upsample2 (GslDataHandle *src_handle,
106 GslDataHandle* bse_data_handle_new_downsample2 (GslDataHandle *src_handle,
115 gdouble bse_data_handle_fir_response_db (GslDataHandle *fir_handle,
119 GslDataHandle* gsl_data_handle_new_add_xinfos (GslDataHandle *src_handle,
121 GslDataHandle* gsl_data_handle_new_remove_xinfos (GslDataHandle *src_handle,
123 GslDataHandle* gsl_data_handle_new_clear_xinfos (GslDataHandle *src_handle);
129 GSL_WAVE_FORMAT_NONE,
130 GSL_WAVE_FORMAT_UNSIGNED_8,
131 GSL_WAVE_FORMAT_SIGNED_8,
132 GSL_WAVE_FORMAT_ALAW,
133 GSL_WAVE_FORMAT_ULAW,
134 GSL_WAVE_FORMAT_UNSIGNED_12,
135 GSL_WAVE_FORMAT_SIGNED_12,
136 GSL_WAVE_FORMAT_UNSIGNED_16,
137 GSL_WAVE_FORMAT_SIGNED_16,
138 GSL_WAVE_FORMAT_SIGNED_24,
139 GSL_WAVE_FORMAT_SIGNED_24_PAD4,
140 GSL_WAVE_FORMAT_SIGNED_32,
141 GSL_WAVE_FORMAT_FLOAT,
144 #define GSL_WAVE_FORMAT_IS_LAW(f) ((f) == GSL_WAVE_FORMAT_ALAW || (f) == GSL_WAVE_FORMAT_ULAW)
146 const gchar* gsl_wave_format_to_string (GslWaveFormatType format);
147 GslWaveFormatType gsl_wave_format_from_string (
const gchar *
string);
148 GslDataHandle* gsl_wave_handle_new (
const gchar *file_name,
150 GslWaveFormatType format,
157 GslDataHandle* gsl_wave_handle_new_zoffset (
const gchar *file_name,
159 GslWaveFormatType format,
166 guint gsl_wave_format_bit_depth (GslWaveFormatType format);
167 guint gsl_wave_format_byte_width (GslWaveFormatType format);
171 gboolean gsl_data_handle_needs_cache (GslDataHandle *data_handle);
175 gboolean gsl_data_handle_common_init (GslDataHandle *dhandle,
176 const gchar *file_name);
177 void gsl_data_handle_common_free (GslDataHandle *dhandle);
GslDataHandle * bse_data_handle_new_fir_lowpass(GslDataHandle *src_handle, gdouble cutoff_freq, guint order)
Definition: bsedatahandle-fir.cc:393
int64 gsl_data_handle_get_state_length(GslDataHandle *dhandle)
Definition: gsldatahandle.cc:183
Definition: gsldatahandle.hh:24
GslDataHandle * gsl_data_handle_new_cut(GslDataHandle *src_handle, int64 cut_offset, int64 n_cut_values)
Definition: gsldatahandle.cc:974
Definition: gsldatahandle.hh:38
GslDataHandle * gsl_data_handle_new_crop(GslDataHandle *src_handle, int64 n_head_cut, int64 n_tail_cut)
Definition: gsldatahandle.cc:992
Definition: gsldatahandle.hh:16
GslDataHandle * bse_data_handle_new_fir_highpass(GslDataHandle *src_handle, gdouble cutoff_freq, guint order)
Definition: bsedatahandle-fir.cc:371