<< 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