59b4be8cc1
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
57 lines
1.9 KiB
C
57 lines
1.9 KiB
C
/*******************************************************************************
|
|
/
|
|
/ File: SoundUtils.h
|
|
/
|
|
/ Description: Utility functions for handling audio data.
|
|
/
|
|
/ Copyright 1998-1999, Be Incorporated, All Rights Reserved
|
|
/
|
|
*******************************************************************************/
|
|
|
|
#if ! defined( _SoundUtils_h )
|
|
#define _SoundUtils_h
|
|
|
|
#include <MediaDefs.h>
|
|
|
|
// Simple helper functions that come in handy when doing
|
|
// buffer calculations.
|
|
double us_to_s(bigtime_t usecs);
|
|
bigtime_t s_to_us(double secs);
|
|
|
|
int bytes_per_frame(const media_raw_audio_format & format);
|
|
int frames_per_buffer(const media_raw_audio_format & format);
|
|
bigtime_t buffer_duration(const media_raw_audio_format & format);
|
|
bigtime_t frames_duration(const media_raw_audio_format & format,
|
|
int64 num_frames);
|
|
int64 frames_for_duration(const media_raw_audio_format & format,
|
|
bigtime_t duration);
|
|
int buffers_for_duration(const media_raw_audio_format & format,
|
|
bigtime_t duration);
|
|
|
|
// This is a common hook function interface for
|
|
// SoundConsumer and SoundProducer to use.
|
|
typedef void (*SoundProcessFunc)(void * cookie,
|
|
bigtime_t timestamp, void * data, size_t datasize,
|
|
const media_raw_audio_format & format);
|
|
typedef void (*SoundNotifyFunc)(void * cookie,
|
|
int32 code, ...);
|
|
|
|
// These are special codes that we use in the Notify
|
|
// function hook.
|
|
enum {
|
|
B_WILL_START = 1, // performance_time
|
|
B_WILL_STOP, // performance_time immediate
|
|
B_WILL_SEEK, // performance_time media_time
|
|
B_WILL_TIMEWARP, // real_time performance_time
|
|
B_CONNECTED, // name (char*)
|
|
B_DISCONNECTED, //
|
|
B_FORMAT_CHANGED, // media_raw_audio_format*
|
|
B_NODE_DIES, // node will die!
|
|
B_HOOKS_CHANGED, //
|
|
B_OP_TIMED_OUT, // timeout that expired -- Consumer only
|
|
B_PRODUCER_DATA_STATUS, // status performance_time -- Consumer only
|
|
B_LATE_NOTICE // how_much performance_time -- Producer only
|
|
};
|
|
|
|
#endif /* _SoundUtils_h */
|