void term_all() /* * Terminate all of the internal systems */ { int i; void (* term_func[])(void) = /* List of term routines */ { term_runtime_layout, term_keyhooks, term_midihooks, term_automators, term_aud, term_cables, term_midi, term_devices, term_mixers, term_decks, term_jack, term_config, term_triggers, term_objects, NULL }; stop_jack(); for(i=0; term_func[i]; i++) /* For each term routine ... */ term_func[i](); /* ... call it! */ } /* term_all() */
static int audio_read_header(AVFormatContext *context, AVFormatParameters *params) { JackData *self = context->priv_data; AVStream *stream; int test; if (params->sample_rate <= 0 || params->channels <= 0) return -1; if ((test = start_jack(context, params))) return test; stream = av_new_stream(context, 0); if (!stream) { stop_jack(self); return AVERROR(ENOMEM); } stream->codec->codec_type = CODEC_TYPE_AUDIO; #if HAVE_BIGENDIAN stream->codec->codec_id = CODEC_ID_PCM_F32BE; #else stream->codec->codec_id = CODEC_ID_PCM_F32LE; #endif stream->codec->sample_rate = self->sample_rate; stream->codec->channels = self->nports; av_set_pts_info(stream, 64, 1, 1000000); /* 64 bits pts in us */ return 0; }
static int audio_read_close(AVFormatContext *context) { JackData *self = context->priv_data; stop_jack(self); return 0; }
void stop_playing () { stop_jack(); stop(); g_rc_settings.is_pattern_playing(false); }