Audio::Audio() : m_device(NULL), m_context(NULL) { audio_setup(); m_device = device; m_context = context; }
int main (void) { #ifdef AUDIO_HW_TEST_THROUGHPUT if (audio_setup(NULL)) { THROW_ERR("Error setting up audio."); } audio_start(); while(1) { } #else if (audio_setup(NULL)) { THROW_ERR("Error setting up audio."); } if (midi_setup(NULL)) { THROW_ERR("Error setting up MIDI."); } SampleTable_init(); signal_chain_setup(); synth_control_setup(); scheduler_setup(); leds_setup(); timers_setup(); switches_setup(); adc_setup_dma_scan(adc_mode_1SHOT); adc_channel_setup(); synth_adc_control_setup(); adc_start_conversion(); int midi_channel = -1; int reset_request = 0; supo_get_midi_channel(&midi_channel); supo_get_preset_reset_rqst(&reset_request); sc_presets_init(reset_request,&midi_channel); synth_switch_control_setup(); synth_midi_control_setup(midi_channel); audio_start(); #if defined(TIMER_EVENT_TEST) || defined(TIMER_TEST) timers_enable(); #endif while(1) { } #endif /* AUDIO_HW_TEST_THROUGHPUT */ return(0); }
int main (void) { if (audio_setup(NULL)) { THROW_ERR("Error setting up audio."); } leds_setup(); switches_setup(); sdt_setup(); audio_start(); while(1) { } }
void ardutouch_setup( Synth *x ) { synth = x; // set global ptr to runtime synth console_setup( (Mode *) x ); // initialize console module audio_setup(); // initialize audio module bufsPerScan = audioRate / (scanRate * audioBufSz); scanDC = bufsPerScan; /* initialize buttons */ for ( byte i = 0; i < NumButs; i++ ) pinMode( butPin[i], INPUT ); // set corresponding digital pin as input /* get initial positions of pots */ for ( byte i = 0; i < NumPots; i++ ) #ifdef CLOCKWISE_POTS potVal[i] = analogRead( potPin[i] ); #else potVal[i] = 1023 - analogRead( potPin[i] ); #endif #ifndef USE_SERIAL_PORT /* initialize LEDs */ for ( byte i = 0; i < NumLEDs; i++ ) { pinMode( LEDPin[i], OUTPUT ); digitalWrite( LEDPin[i], LED_OFF ); } #endif x->config(); // configure the synth x->reset(); // reset the synth audio::enable(); // enable audio output x->welcome(); // execute any post-reset code #ifdef AUTO_METRICS // for developers only! audio::wait(100); // run the synth for a bit writeMetrics(); // write processor metrics to NVS #endif }
/* * Early initialization of emulator, parsing of command-line options, * and loading of config files, etc. * * TODO: Need better cohesion! Break this sucker up! */ static int do_preinit_machine (int argc, char **argv) { if (! graphics_setup ()) { exit (1); } if (restart_config[0]) { #ifdef FILESYS free_mountinfo (currprefs.mountinfo); #endif default_prefs (&currprefs, 0); fix_options (); } #ifdef NATMEM_OFFSET init_shm (); #endif #ifdef FILESYS rtarea_init (); hardfile_install (); #endif if (restart_config[0]) parse_cmdline_and_init_file (argc, argv); else currprefs = changed_prefs; uae_inithrtimer (); machdep_init (); if (! audio_setup ()) { write_log ("Sound driver unavailable: Sound output disabled\n"); currprefs.produce_sound = 0; } inputdevice_init (); return 1; }
int main(int argc, char *argv[]) { int port; int netfd; int c, h=0, m, regm; FILE *f; int fd = STDIN_FILENO; char rcmd[RBUFSIZE]; fd_set readfd; fd_set writefd; struct timeval timer; struct timeval *timerptr = NULL; gsm_frame fo; load_options(); if (!strlen(callerid)) gethostname(callerid, sizeof(callerid)); signal(SIGHUP, sighandler); signal(SIGINT, sighandler); if ( !(f = fdopen(fd, "w+"))) { fprintf(stderr, "Unable to create file on fd %d\n", fd); return -1; } if ( (audiofd = audio_setup(audiodev)) == -1) { fprintf(stderr, "Fatal error: failed to open sound device"); return -1; } if ( (port = iax_init(0) < 0)) { fprintf(stderr, "Fatal error: failed to initialize iax with port %d\n", port); return -1; } iax_set_formats(AST_FORMAT_GSM); netfd = iax_get_fd(); check_iax_register(); fprintf(f, "Text Based Telephony Client.\n\n"); issue_prompt(f); timer.tv_sec = 0; timer.tv_usec = 0; while(1) { FD_ZERO(&readfd); FD_ZERO(&writefd); FD_SET(fd, &readfd); if(fd > h) h = fd; if(answered_call && !writeonly) { FD_SET(audiofd, &readfd); if(audiofd > h) h = audiofd; } if (cursound > -1) { FD_SET(audiofd, &writefd); if (audiofd > h) h = audiofd; } FD_SET(netfd, &readfd); if(netfd > h) h = netfd; if ( (c = select(h+1, &readfd, &writefd, 0, timerptr)) >= 0) { if(FD_ISSET(fd, &readfd)) { if ( ( fgets(&*rcmd, 256, f))) { rcmd[strlen(rcmd)-1] = 0; parse_args(f, &*rcmd); } else fprintf(f, "Fatal error: failed to read data!\n"); issue_prompt(f); } if(answered_call) { if(FD_ISSET(audiofd, &readfd)) { static int ret, rlen = 0; static short rbuf[FRAME_SIZE]; if ( (ret = read(audiofd, rbuf + rlen, 2 * (FRAME_SIZE-rlen))) == -1) { puts("Failed to read audio."); return -1; } rlen += ret/2; if(rlen == FRAME_SIZE) { rlen = 0; if(!most_recent_answer->gsmout) most_recent_answer->gsmout = gsm_create(); gsm_encode(most_recent_answer->gsmout, rbuf, fo); if(iax_send_voice(most_recent_answer->session, AST_FORMAT_GSM, (char *)fo, sizeof(fo)) == -1) puts("Failed to send voice!"); } } } do_iax_event(f); m = iax_time_to_next_event(); if(m > -1) { timerptr = &timer; timer.tv_sec = m /1000; timer.tv_usec = (m % 1000) * 1000; } else timerptr = 0; regm = check_iax_timeout(); if (!timerptr || (m > regm)) { timerptr = &timer; timer.tv_sec = regm /1000; timer.tv_usec = (regm % 1000) * 1000; } if (FD_ISSET(audiofd, &writefd)) { send_sound(audiofd); } } else { if(errno == EINTR) continue; fprintf(stderr, "Fatal error in select(): %s\n", strerror(errno)); return -1; } } return 0; }