1 /******************************************************************************* 2 / 3 / File: SoundUtils.h 4 / 5 / Description: Utility functions for handling audio data. 6 / 7 / Copyright 1998-1999, Be Incorporated, All Rights Reserved 8 / 9 *******************************************************************************/ 10 11 #if ! defined( _SoundUtils_h ) 12 #define _SoundUtils_h 13 14 #include <MediaDefs.h> 15 16 // Simple helper functions that come in handy when doing 17 // buffer calculations. 18 double us_to_s(bigtime_t usecs); 19 bigtime_t s_to_us(double secs); 20 21 int bytes_per_frame(const media_raw_audio_format & format); 22 int frames_per_buffer(const media_raw_audio_format & format); 23 bigtime_t buffer_duration(const media_raw_audio_format & format); 24 bigtime_t frames_duration(const media_raw_audio_format & format, 25 int64 num_frames); 26 int64 frames_for_duration(const media_raw_audio_format & format, 27 bigtime_t duration); 28 int buffers_for_duration(const media_raw_audio_format & format, 29 bigtime_t duration); 30 31 // This is a common hook function interface for 32 // SoundConsumer and SoundProducer to use. 33 typedef void (*SoundProcessFunc)(void * cookie, 34 bigtime_t timestamp, void * data, size_t datasize, 35 const media_raw_audio_format & format); 36 typedef void (*SoundNotifyFunc)(void * cookie, 37 int32 code, ...); 38 39 // These are special codes that we use in the Notify 40 // function hook. 41 enum { 42 B_WILL_START = 1, // performance_time 43 B_WILL_STOP, // performance_time immediate 44 B_WILL_SEEK, // performance_time media_time 45 B_WILL_TIMEWARP, // real_time performance_time 46 B_CONNECTED, // name (char*) 47 B_DISCONNECTED, // 48 B_FORMAT_CHANGED, // media_raw_audio_format* 49 B_NODE_DIES, // node will die! 50 B_HOOKS_CHANGED, // 51 B_OP_TIMED_OUT, // timeout that expired -- Consumer only 52 B_PRODUCER_DATA_STATUS, // status performance_time -- Consumer only 53 B_LATE_NOTICE // how_much performance_time -- Producer only 54 }; 55 56 #endif /* _SoundUtils_h */ 57