Index: apps/plugins/pdbox/PDa/src/s_audio.c =================================================================== --- apps/plugins/pdbox/PDa/src/s_audio.c (revision 21272) +++ apps/plugins/pdbox/PDa/src/s_audio.c (working copy) @@ -6,8 +6,15 @@ audio settings from argparse routine and from dialog window. */ +#ifdef ROCKBOX +#include "plugin.h" +#include "pdbox.h" #include "m_pd.h" #include "s_stuff.h" +#define snprintf rb->snprintf +#else /* ROCKBOX */ +#include "m_pd.h" +#include "s_stuff.h" #include #ifdef UNIX #include @@ -17,6 +24,7 @@ #include #include #include +#endif /* ROCKBOX */ #define SYS_DEFAULTCH 2 #define SYS_MAXCH 100 @@ -116,7 +124,11 @@ void oss_init(void); #endif +#ifdef ROCKBOX +static void pd_audio_init(void) +#else static void audio_init( void) +#endif { static int initted = 0; if (initted) @@ -131,7 +143,9 @@ static void sys_setchsr(int chin, int chout, int sr) { +#ifndef ROCKBOX int nblk; +#endif int inbytes = (chin ? chin : 2) * (DEFDACBLKSIZE*sizeof(float)); int outbytes = (chout ? chout : 2) * (DEFDACBLKSIZE*sizeof(float)); @@ -144,12 +158,20 @@ if (sys_soundin) free(sys_soundin); +#ifdef ROCKBOX + sys_soundin = (t_sample*) malloc(inbytes); +#else sys_soundin = (t_float *)malloc(inbytes); +#endif memset(sys_soundin, 0, inbytes); if (sys_soundout) free(sys_soundout); +#ifdef ROCKBOX + sys_soundout = (t_sample*) malloc(outbytes); +#else sys_soundout = (t_float *)malloc(outbytes); +#endif memset(sys_soundout, 0, outbytes); if (sys_verbose) @@ -169,12 +191,20 @@ int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev, int rate, int advance, int enable) { +#ifdef ROCKBOX + int i; +#else int i, *ip; +#endif int defaultchannels = SYS_DEFAULTCH; int inchans, outchans; if (rate < 1) rate = SYS_DEFAULTSRATE; +#ifdef ROCKBOX + pd_audio_init(); +#else audio_init(); +#endif /* Since the channel vector might be longer than the audio device vector, or vice versa, we fill the shorter one in to match the longer one. Also, if both are empty, we fill in @@ -337,7 +367,9 @@ if (sys_inchannels == 0 && sys_outchannels == 0) enable = 0; audio_state = enable; +#ifndef ROCKBOX sys_vgui("set pd_whichapi %d\n", (audio_isopen() ? sys_audioapi : 0)); +#endif sched_set_using_dacs(enable); } @@ -486,7 +518,12 @@ char *outdevlist, int *noutdevs, int *canmulti, int maxndev, int devdescsize) { +#ifdef ROCKBOX + (void) maxndev; + pd_audio_init(); +#else audio_init(); +#endif /* ROCKBOX */ #ifdef USEAPI_OSS if (sys_audioapi == API_OSS) { @@ -525,8 +562,15 @@ *nindevs = *noutdevs = 3; for (i = 0; i < 3; i++) { +#ifdef ROCKBOX + snprintf(indevlist + i * devdescsize, devdescsize-1, + "input device #%d", i+1); + snprintf(outdevlist + i * devdescsize, devdescsize-1, + "output device #%d", i+1); +#else sprintf(indevlist + i * devdescsize, "input device #%d", i+1); sprintf(outdevlist + i * devdescsize, "output device #%d", i+1); +#endif } *canmulti = 0; } @@ -538,6 +582,7 @@ #define DEVONSET 1 /* To agree with command line flags, normally start at 1 */ #endif +#ifndef ROCKBOX static void sys_listaudiodevs(void ) { char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; @@ -564,11 +609,14 @@ } post("API number %d\n", sys_audioapi); } +#endif /* start an audio settings dialog window */ void glob_audio_properties(t_pd *dummy, t_floatarg flongform) { +#ifndef ROCKBOX char buf[1024 + 2 * MAXNDEV*(DEVDESCSIZE+4)]; +#endif /* these are the devices you're using: */ int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; @@ -584,6 +632,10 @@ char indevliststring[MAXNDEV*(DEVDESCSIZE+4)+80], outdevliststring[MAXNDEV*(DEVDESCSIZE+4)+80]; +#ifdef ROCKBOX + (void) dummy; +#endif + audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); @@ -630,6 +682,7 @@ audiooutchan2 = (naudiooutdev > 1 ? choutdev[1] : 0); audiooutchan3 = (naudiooutdev > 2 ? choutdev[2] : 0); audiooutchan4 = (naudiooutdev > 3 ? choutdev[3] : 0); +#ifndef ROCKBOX sprintf(buf, "pdtk_audio_dialog %%s \ %s %d %d %d %d %d %d %d %d \ @@ -644,11 +697,23 @@ rate, advance, canmulti, (flongform != 0)); gfxstub_deleteforkey(0); gfxstub_new(&glob_pdobject, glob_audio_properties, buf); +#endif } /* new values from dialog window */ void glob_audio_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { +#ifdef ROCKBOX + int i, nindev, noutdev; + int newaudioindev[4], newaudioinchan[4], + newaudiooutdev[4], newaudiooutchan[4]; + /* the new values the dialog came back with: */ + int newrate = atom_getintarg(16, argc, argv); + int newadvance = atom_getintarg(17, argc, argv); + + (void) dummy; + (void) s; +#else /* ROCKBOX */ int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, advance, audioon, i, nindev, noutdev; @@ -659,6 +724,7 @@ int newrate = atom_getintarg(16, argc, argv); int newadvance = atom_getintarg(17, argc, argv); int statewas; +#endif /* ROCKBOX */ for (i = 0; i < 4; i++) { @@ -749,6 +815,11 @@ void glob_audio_setapi(void *dummy, t_floatarg f) { int newapi = f; + +#ifdef ROCKBOX + (void) dummy; +#endif + if (newapi) { if (newapi == sys_audioapi) @@ -842,6 +913,10 @@ void glob_foo(void *dummy, t_symbol *s, int argc, t_atom *argv) { t_symbol *arg = atom_getsymbolarg(0, argc, argv); +#ifdef ROCKBOX + (void) dummy; + (void) s; +#endif if (arg == gensym("restart")) { int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];