// Simple audio waveform scope in a window, using SDL multimedia library #ifndef AUDIO_SCOPE_H #define AUDIO_SCOPE_H #include "SDL.h" class Audio_Scope { public: typedef const char* error_t; // Initialize scope window of specified size. Height must be 256 or less. error_t init( int width, int height ); // Draw at most 'count' samples from 'in', skipping 'step' samples after // each sample drawn. Step can be less than 1.0. error_t draw( const short* in, long count, double step = 1.0 ); Audio_Scope(); ~Audio_Scope(); private: typedef unsigned char byte; SDL_Surface* screen; SDL_Surface* surface; byte* buf; int buf_size; int sample_shift; int low_y; int high_y; int v_offset; void render( short const* in, long count, long step ); }; #endif