1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#include <sndio.h>
#include "u.h"
#include "lib.h"
#include "dat.h"
#include "fns.h"
#include "error.h"
#include "devaudio.h"
enum
{
Channels = 2,
Rate = 44100,
Bits = 16,
};
static struct sio_hdl *hdl;
static struct sio_par par;
void
audiodevopen(void)
{
hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
if(hdl == NULL){
error("sio_open failed");
return;
}
sio_initpar(&par);
par.bits = Bits;
par.pchan = Channels;
par.rate = Rate;
par.appbufsz = 288000;
if(!sio_setpar(hdl, &par) || !sio_start(hdl)){
sio_close(hdl);
error("sio_setpar/sio_start failed");
return;
}
}
void
audiodevclose(void)
{
sio_close(hdl);
}
void
audiodevsetvol(int what, int left, int right)
{
USED(what);
USED(left);
USED(right);
error("not supported");
}
void
audiodevgetvol(int what, int *left, int *right)
{
USED(what);
USED(left);
USED(right);
error("not supported");
}
int
audiodevwrite(void *v, int n)
{
return sio_write(hdl, v, n);
}
int
audiodevread(void *v, int n)
{
error("no reading");
return -1;
}
|