Lines Matching refs:play

85   struct sun_stream play;  member
223 sun_prinfo_verify_sanity(&hwfmt.play)) { in sun_enumerate_devices()
248 prinfo = &hwfmt.play; in sun_enumerate_devices()
367 if (s->play.fd != -1) { in sun_stream_destroy()
368 close(s->play.fd); in sun_stream_destroy()
373 free(s->play.buf); in sun_stream_destroy()
443 s->record.buf, s->play.buf, SUN_BUFFER_FRAMES); in sun_io_routine()
448 if (s->play.fd != -1) { in sun_io_routine()
455 if (s->play.floating) { in sun_io_routine()
456 sun_float_to_linear32(s->play.buf, in sun_io_routine()
457 s->play.info.play.channels * to_write, vol); in sun_io_routine()
459 sun_linear16_set_vol(s->play.buf, in sun_io_routine()
460 s->play.info.play.channels * to_write, vol); in sun_io_routine()
466 to_write = s->play.fd != -1 ? to_write : 0; in sun_io_routine()
475 bytes = to_write * s->play.frame_size; in sun_io_routine()
476 if ((n = write(s->play.fd, (uint8_t *)s->play.buf + write_ofs, bytes)) < 0) { in sun_io_routine()
480 frames = n / s->play.frame_size; in sun_io_routine()
530 s->play.fd = -1; in sun_stream_init()
538 snprintf(s->play.name, sizeof(s->play.name), in sun_stream_init()
541 snprintf(s->play.name, sizeof(s->play.name), "%s", SUN_DEFAULT_DEVICE); in sun_stream_init()
573 if (s->play.fd == -1) { in sun_stream_init()
574 if ((s->play.fd = open(s->play.name, O_WRONLY)) == -1) { in sun_stream_init()
580 AUDIO_INITINFO(&s->play.info); in sun_stream_init()
582 s->play.info.mode = AUMODE_PLAY; in sun_stream_init()
584 if ((ret = sun_copy_params(s->play.fd, s, output_stream_params, in sun_stream_init()
585 &s->play.info, &s->play.info.play)) != CUBEB_OK) { in sun_stream_init()
589 s->play.floating = (output_stream_params->format == CUBEB_SAMPLE_FLOAT32NE); in sun_stream_init()
600 s->play.frame_size = s->play.info.play.channels * in sun_stream_init()
601 (s->play.info.play.precision / 8); in sun_stream_init()
602 if (s->play.fd != -1 && in sun_stream_init()
603 (s->play.buf = calloc(SUN_BUFFER_FRAMES, s->play.frame_size)) == NULL) { in sun_stream_init()
640 if (ioctl(s->play.fd, AUDIO_GETOOFFS, &offset) == -1) { in sun_stream_get_position()
644 *position = (s->blocks_written * s->play.info.blocksize) / s->play.frame_size; in sun_stream_get_position()
660 if (ioctl(s->play.fd, AUDIO_GETBUFINFO, &info) == -1) { in sun_stream_get_latency()
664 *latency = (info.play.seek + info.blocksize) / s->play.frame_size; in sun_stream_get_latency()
669 params.rate = s->play.info.play.sample_rate; in sun_stream_get_latency()
693 (*device)->output_name = stream->play.fd != -1 ? in sun_get_current_device()
694 strdup(stream->play.name) : NULL; in sun_get_current_device()