BEAST/BSE
- Better Audio System and Sound Engine
0.9.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
bse
bsewave.hh
Go to the documentation of this file.
1
// Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2
#ifndef __BSE_WAVE_H__
3
#define __BSE_WAVE_H__
4
5
#include <
bse/bsesource.hh
>
6
7
G_BEGIN_DECLS
8
9
/* --- BSE type macros --- */
10
#define BSE_TYPE_WAVE (BSE_TYPE_ID (BseWave))
11
#define BSE_WAVE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_WAVE, BseWave))
12
#define BSE_WAVE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_WAVE, BseWaveClass))
13
#define BSE_IS_WAVE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE))
14
#define BSE_IS_WAVE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE))
15
#define BSE_WAVE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE, BseWaveClass))
16
17
struct
BseWaveEntry
{
18
GslWaveChunk *wchunk;
19
gfloat osc_freq;
20
gfloat velocity;
/* 0..1 */
21
};
22
struct
BseWaveIndex
{
23
guint n_entries;
24
BseWaveEntry
entries[1];
/* flexible array */
25
};
26
struct
BseWave
:
BseSource
{
27
/* requested BseModule indices */
28
guint request_count;
29
GSList *index_list;
30
guint index_dirty : 1;
31
/* locator */
32
guint locator_set : 1;
33
gchar *file_name;
34
gchar *wave_name;
35
/* wave data */
36
gchar **xinfos;
37
/* wave chunks */
38
guint n_wchunks;
39
SfiRing
*wave_chunks;
/* data=GslWaveChunk* */
40
SfiRing
*open_handles;
/* data=GslDataHandle* */
41
};
42
struct
BseWaveClass
:
BseSourceClass
43
{};
44
45
void
bse_wave_clear (
BseWave
*wave);
46
BseErrorType bse_wave_load_wave_file (
BseWave
*wave,
47
const
gchar *file_name,
48
const
gchar *wave_name,
49
BseFreqArray *list_array,
50
BseFreqArray *skip_array,
51
gboolean rename_wave);
52
void
bse_wave_add_chunk (
BseWave
*wave,
53
GslWaveChunk *wchunk);
54
GslWaveChunk* bse_wave_lookup_chunk (
BseWave
*wave,
55
gfloat mix_freq,
56
gfloat osc_freq,
57
gfloat velocity);
58
void
bse_wave_remove_chunk (
BseWave
*wave,
59
GslWaveChunk *wchunk);
60
void
bse_wave_request_index (
BseWave
*wave);
61
BseWaveIndex
* bse_wave_get_index_for_modules (
BseWave
*wave);
62
void
bse_wave_drop_index (
BseWave
*wave);
63
64
/* BseWaveIndex is safe to use from BseModules (self-contained constant structure) */
65
GslWaveChunk* bse_wave_index_lookup_best (
BseWaveIndex
*windex,
66
gfloat osc_freq,
67
gfloat velocity);
68
69
G_END_DECLS
70
71
#endif
/* __BSE_WAVE_H__ */
BseWaveIndex
Definition:
bsewave.hh:22
bsesource.hh
BseWave
Definition:
bsewave.hh:26
BseWaveClass
Definition:
bsewave.hh:42
BseWaveEntry
Definition:
bsewave.hh:17
BseSource
Definition:
bsesource.hh:84
SfiRing
Definition:
sfiring.hh:23
BseSourceClass
Definition:
bsesource.hh:92
Generated on Tue Oct 28 2014 15:03:42 for BEAST/BSE - Better Audio System and Sound Engine by
1.8.6