int audioport_process (uint32_t nframes, void *arg) { int s; float *buffer; kr_audioport_t *audioport; static int32_t total_frames = 0; total_frames += nframes; if (total_frames > 35000) { krad_tone_add_preset (krad_tone, "dialtone"); krad_tone_add_preset (krad_tone2, "6"); total_frames = 0; } audioport = (kr_audioport_t *)arg; buffer = kr_audioport_get_buffer (audioport, 0); if (1) { krad_tone_run (krad_tone, buffer, nframes); buffer = kr_audioport_get_buffer (audioport, 1); krad_tone_run (krad_tone2, buffer, nframes); } else { for (s = 0; s < 1600; s++) { if (buffer[s] > 0.3) { printf("signals!\n"); break; } } } return 0; }
static void portgroup_get_samples (krad_mixer_portgroup_t *portgroup, uint32_t nframes) { int c; float *samples[KRAD_MIXER_MAX_CHANNELS]; switch ( portgroup->io_type ) { case KRAD_TONE: krad_tone_run (portgroup->io_ptr, *portgroup->mapped_samples[0], nframes); break; case MIXBUS: break; case KRAD_AUDIO: krad_audio_portgroup_samples_callback (nframes, portgroup->io_ptr, samples); for (c = 0; c < KRAD_MIXER_MAX_CHANNELS; c++ ) { portgroup->samples[c] = samples[portgroup->map[c]]; } break; case KRAD_LINK: if (portgroup->direction == INPUT) { krad_link_audio_samples_callback (nframes, portgroup->io_ptr, portgroup->mapped_samples[0]); } break; case KLOCALSHM: if (portgroup->direction == INPUT) { krad_mixer_local_audio_samples_callback (nframes, portgroup->io_ptr, portgroup->mapped_samples[0]); } break; } }