43 lines
1.4 KiB
Plaintext
43 lines
1.4 KiB
Plaintext
|
|
GAW data model
|
|
|
|
DATASET
|
|
|
|
Central object for data storage is dataset.c dataset.h.
|
|
User datas come, in general, as a form of a set of n variables, each variable
|
|
carryng m rows of datas. The first one should be the independant variable
|
|
and the other the dependant varaibles.
|
|
A variable may have more than one column.
|
|
A variable is stored in a structure WaveVar. Each pointer to WaveVar is stored
|
|
in a GPtrArray hold by dataset itself.
|
|
Gaw stores each column in a auto growing Glib GArray. The size of each entry
|
|
in Garray is size of double.
|
|
Each pointer to GArray is stored in a GPtrArray hold by dataset itself.
|
|
|
|
GArray and and GPtrArray are Glib objects. They are auto growing, so rhe
|
|
developper don't need to take care of the size of data. The only constraint is
|
|
variable and data must feed in from column 0 to column n and so from row 0 to
|
|
row m.
|
|
|
|
Accessing the data in done with the function dataset_val_get()
|
|
double dataset_val_get(WDataSet *wds, int row, int col )
|
|
{
|
|
GArray *ary = g_ptr_array_index( wds->datas, col );
|
|
|
|
double *val = &g_array_index (ary, double, row );
|
|
return *val;
|
|
}
|
|
|
|
|
|
WAVETABLE
|
|
User data can have more than one dataset . so these datasets are stored in a
|
|
GPtrArray hold by WaveTable.
|
|
|
|
SPICESTREAM
|
|
spicestream and its helper functions is an object to read data from file
|
|
and store them in dataset. The input file may have different formats.
|
|
|
|
SNDSTREAM
|
|
sndstream is analog to spicestream but handle the sound card.
|
|
|