Lines Matching refs:ctx
72 pa_lo_test_context *ctx = (pa_lo_test_context *) userdata;
73 int i, nsamp = nbytes / ctx->fs;
79 tmp[i][0] = tmp[i][1] = cal_state == CALIBRATION_ONE ? sinf(count++ * TONE_HZ * 2 * M_PI / ctx->sample_spec.rate) : 0.0f;
84 pa_stream_set_write_callback(s, ctx->write_cb, ctx);
88 pa_lo_test_context *ctx = (pa_lo_test_context *) userdata;
100 nsamp = l / ctx->fs;
121 pa_cvolume_set(&vol, ctx->sample_spec.channels, v * PA_VOLUME_NORM);
122 o = pa_context_set_source_output_volume(ctx->context, pa_stream_get_index(s), &vol, NULL, NULL);
146 pa_stream_set_read_callback(s, ctx->read_cb, ctx);
160 pa_lo_test_context *ctx = (pa_lo_test_context *) userdata;
173 if (s == ctx->play_stream) {
174 pa_cvolume_set(&vol, ctx->sample_spec.channels, PA_VOLUME_NORM);
175 o = pa_context_set_sink_input_volume(ctx->context, pa_stream_get_index(s), &vol, NULL, NULL);
177 pa_cvolume_set(&vol, ctx->sample_spec.channels, pa_sw_volume_from_linear(0.0));
178 o = pa_context_set_source_output_volume(ctx->context, pa_stream_get_index(s), &vol, NULL, NULL);
182 pa_log_error("Could not set stream volume: %s", pa_strerror(pa_context_errno(ctx->context)));
192 pa_log_error("Stream error: %s", pa_strerror(pa_context_errno(ctx->context)));
199 pa_lo_test_context *ctx = (pa_lo_test_context *) userdata;
215 buffer_attr.tlength = ctx->sample_spec.rate * ctx->fs * ctx->play_latency / 1000;
220 ctx->play_stream = pa_stream_new(c, "loopback: play", &ctx->sample_spec, NULL);
221 pa_assert(ctx->play_stream != NULL);
222 pa_stream_set_state_callback(ctx->play_stream, stream_state_callback, ctx);
223 pa_stream_set_write_callback(ctx->play_stream, calibrate_write_cb, ctx);
224 pa_stream_set_underflow_callback(ctx->play_stream, underflow_cb, userdata);
226 pa_stream_connect_playback(ctx->play_stream, getenv("TEST_SINK"), &buffer_attr,
234 buffer_attr.fragsize = ctx->sample_spec.rate * ctx->fs * ctx->rec_latency / 1000;
236 ctx->rec_stream = pa_stream_new(c, "loopback: rec", &ctx->sample_spec, NULL);
237 pa_assert(ctx->rec_stream != NULL);
238 pa_stream_set_state_callback(ctx->rec_stream, stream_state_callback, ctx);
239 pa_stream_set_read_callback(ctx->rec_stream, calibrate_read_cb, ctx);
240 pa_stream_set_overflow_callback(ctx->rec_stream, overflow_cb, userdata);
242 pa_stream_connect_record(ctx->rec_stream, getenv("TEST_SOURCE"), &buffer_attr,
249 api = pa_mainloop_get_api(ctx->mainloop);
260 int pa_lo_test_init(pa_lo_test_context *ctx) {
262 pa_assert(ctx->sample_spec.format == PA_SAMPLE_FLOAT32);
264 ctx->ss = pa_sample_size(&ctx->sample_spec);
265 ctx->fs = pa_frame_size(&ctx->sample_spec);
267 ctx->mainloop = pa_mainloop_new();
268 ctx->context = pa_context_new(pa_mainloop_get_api(ctx->mainloop), ctx->context_name);
270 pa_context_set_state_callback(ctx->context, context_state_callback, ctx);
273 if (pa_context_connect(ctx->context, NULL, PA_CONTEXT_NOFLAGS, NULL) < 0) {
281 pa_context_unref(ctx->context);
282 pa_mainloop_free(ctx->mainloop);
287 int pa_lo_test_run(pa_lo_test_context *ctx) {
290 if (pa_mainloop_run(ctx->mainloop, &ret) < 0) {
298 void pa_lo_test_deinit(pa_lo_test_context *ctx) {
299 if (ctx->play_stream) {
300 pa_stream_disconnect(ctx->play_stream);
301 pa_stream_unref(ctx->play_stream);
304 if (ctx->rec_stream) {
305 pa_stream_disconnect(ctx->rec_stream);
306 pa_stream_unref(ctx->rec_stream);
309 if (ctx->context)
310 pa_context_unref(ctx->context);
312 if (ctx->mainloop)
313 pa_mainloop_free(ctx->mainloop);