<< | GtkWaveform library | >> |
GtkWaveform is a library containing the widget GtkWaveView and associated objects for displaying audio data. It can handle up to 32 channels of data in a wide variety of data types. Data streams can be up to 2 gigaframes long. The widget can display data at various zoom levels allowing scrolling, and it caches zoomed data for quick screen updates.
The GtkWaveView widget follows the MVC paradigm. MVC stands for Model-View-Controller. If you have never heard this term before, don't panic! That is just a fancy way of saying that the data (the Model) representing the real world information is stored in a separate object from the display widget (the View). This allows the view object to access data from a variety of sources, whether the data is in memory, on the hard drive uncompressed, streamed, or even compressed data. The Controller is the program you write to access either object. Because data must be in a separate object, there are abstract classes that act as interfaces. Included in libgtkwaveview are some pre-written data sources for you to use.
Class hierarchy
GtkVBox | +---- GtkWave - Stub GtkWaveView widget for upwards compatability with 0.3.0 GtkVBox | +---- GtkWaveView - The View widget GtkObject | +---- GtkWaveBuffer - The base Model interface <<interface>> | +---- GtkEditableWaveBuffer <<interface>> | | | +---- GtkMemoryWaveBuffer | | | +---- GtkTempfileWaveBuffer | +---- GtkAudiofileWaveBuffer | +---- GtkWavefileBuffer |
Miscellaneous
gwavefile - GWavefile and GWavefileType utility functions (sizeof, convert, clear) glossary - Definitions of terms used datatypes - Description of data types test1 - Commented sample program mousedrag - Mouse press, drag, and release algorithm |
GtkWaveform library |