source: roaraudio/roard/output.c @ 5910:cb47378a0e0b

roaraudio init
Last change on this file since 5910:cb47378a0e0b was 0:2a41d2f42394, checked in by phi, 16 years ago

Initial revision

File size: 1.2 KB
Line 
1//output.c:
2
3#include "roard.h"
4
5/*
6void         * g_output_buffer;
7unsigned int   g_output_buffer_len;
8*/
9
10int output_buffer_init   (struct roar_audio_info * info) {
11 size_t   size; // = ROAR_OUTPUT_BUFFER_SAMPLES;
12 void   * buf;
13
14/*
15 size *= info->channels;
16 size *= info->bits / 8;
17*/
18
19 size = ROAR_OUTPUT_CALC_OUTBUFSIZE(info);
20
21 ROAR_DBG("output_buffer_init(*): output buffer size is %i", size);
22
23 if ( (buf = malloc(size)) == NULL )
24  return -1;
25
26 g_output_buffer     = buf;
27 g_output_buffer_len = size;
28
29 ROAR_DBG("output_buffer_init(*): output buffer is at %p", buf);
30
31 output_buffer_reinit();
32
33 return 0;
34}
35
36int output_buffer_reinit (void) {
37
38 if ( g_output_buffer != NULL )
39  memset(g_output_buffer, 0, g_output_buffer_len);
40
41 return 0;
42}
43
44int output_buffer_free   (void) {
45 ROAR_DBG("output_buffer_init(*): freeing output buffer at %p", g_output_buffer);
46
47 if ( g_output_buffer )
48  free(g_output_buffer);
49
50 g_output_buffer     = NULL;
51 g_output_buffer_len = 0;
52
53 return 0;
54}
55
56int output_buffer_flush  (DRIVER_USERDATA_T inst, int driver) {
57 ROAR_DBG("output_buffer_init(*): flushing output buffer");
58
59 return driver_write(inst, driver, g_output_buffer, g_output_buffer_len);
60}
61
62//ll
Note: See TracBrowser for help on using the repository browser.