00001 #ifndef foosamplehfoo
00002 #define foosamplehfoo
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <inttypes.h>
00026 #include <sys/types.h>
00027 #include <math.h>
00028
00029 #include <pulse/cdecl.h>
00030
00100 PA_C_DECL_BEGIN
00101
00103 #define PA_CHANNELS_MAX 32
00104
00106 typedef enum pa_sample_format {
00107 PA_SAMPLE_U8,
00108 PA_SAMPLE_ALAW,
00109 PA_SAMPLE_ULAW,
00110 PA_SAMPLE_S16LE,
00111 PA_SAMPLE_S16BE,
00112 PA_SAMPLE_FLOAT32LE,
00113 PA_SAMPLE_FLOAT32BE,
00114 PA_SAMPLE_MAX,
00115 PA_SAMPLE_INVALID = -1
00116 } pa_sample_format_t;
00117
00118 #ifdef WORDS_BIGENDIAN
00119
00120 #define PA_SAMPLE_S16NE PA_SAMPLE_S16BE
00121
00122 #define PA_SAMPLE_FLOAT32NE PA_SAMPLE_FLOAT32BE
00123
00124 #define PA_SAMPLE_S16RE PA_SAMPLE_S16LE
00125
00126 #define PA_SAMPLE_FLOAT32RE PA_SAMPLE_FLOAT32LE
00127 #else
00128
00129 #define PA_SAMPLE_S16NE PA_SAMPLE_S16LE
00130
00131 #define PA_SAMPLE_FLOAT32NE PA_SAMPLE_FLOAT32LE
00132
00133 #define PA_SAMPLE_S16RE PA_SAMPLE_S16BE
00134
00135 #define PA_SAMPLE_FLOAT32RE PA_SAMPLE_FLOAT32BE
00136 #endif
00137
00139 #define PA_SAMPLE_FLOAT32 PA_SAMPLE_FLOAT32NE
00140
00142 typedef struct pa_sample_spec {
00143 pa_sample_format_t format;
00144 uint32_t rate;
00145 uint8_t channels;
00146 } pa_sample_spec;
00147
00149 typedef uint64_t pa_usec_t;
00150
00152 size_t pa_bytes_per_second(const pa_sample_spec *spec);
00153
00155 size_t pa_frame_size(const pa_sample_spec *spec);
00156
00158 size_t pa_sample_size(const pa_sample_spec *spec);
00159
00161 pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec);
00162
00164 size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec);
00165
00167 int pa_sample_spec_valid(const pa_sample_spec *spec);
00168
00170 int pa_sample_spec_equal(const pa_sample_spec*a, const pa_sample_spec*b);
00171
00173 const char *pa_sample_format_to_string(pa_sample_format_t f);
00174
00176 pa_sample_format_t pa_parse_sample_format(const char *format);
00177
00179 #define PA_SAMPLE_SPEC_SNPRINT_MAX 32
00180
00182 char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
00183
00185 char* pa_bytes_snprint(char *s, size_t l, unsigned v);
00186
00187 PA_C_DECL_END
00188
00189 #endif