Lines Matching refs:play

85   struct sun_stream play;  member
224 sun_prinfo_verify_sanity(&hwfmt.play)) { in sun_enumerate_devices()
249 prinfo = &hwfmt.play; in sun_enumerate_devices()
369 if (s->play.fd != -1) { in sun_stream_destroy()
370 close(s->play.fd); in sun_stream_destroy()
375 free(s->play.buf); in sun_stream_destroy()
444 to_write = s->data_cb(s, s->user_ptr, s->record.buf, s->play.buf, in sun_io_routine()
450 if (s->play.fd != -1) { in sun_io_routine()
457 if (s->play.floating) { in sun_io_routine()
458 sun_float_to_linear32(s->play.buf, in sun_io_routine()
459 s->play.info.play.channels * to_write, vol); in sun_io_routine()
461 sun_linear16_set_vol(s->play.buf, s->play.info.play.channels * to_write, in sun_io_routine()
468 to_write = s->play.fd != -1 ? to_write : 0; in sun_io_routine()
477 bytes = to_write * s->play.frame_size; in sun_io_routine()
478 if ((n = write(s->play.fd, (uint8_t *)s->play.buf + write_ofs, bytes)) < in sun_io_routine()
483 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), "/dev/audio%zu", in sun_stream_init()
541 snprintf(s->play.name, sizeof(s->play.name), "%s", SUN_DEFAULT_DEVICE); in sun_stream_init()
575 if (s->play.fd == -1) { in sun_stream_init()
576 if ((s->play.fd = open(s->play.name, O_WRONLY)) == -1) { in sun_stream_init()
582 AUDIO_INITINFO(&s->play.info); in sun_stream_init()
584 s->play.info.mode = AUMODE_PLAY; in sun_stream_init()
586 if ((ret = sun_copy_params(s->play.fd, s, output_stream_params, in sun_stream_init()
587 &s->play.info, &s->play.info.play)) != in sun_stream_init()
592 s->play.floating = (output_stream_params->format == CUBEB_SAMPLE_FLOAT32NE); in sun_stream_init()
603 s->play.frame_size = in sun_stream_init()
604 s->play.info.play.channels * (s->play.info.play.precision / 8); in sun_stream_init()
605 if (s->play.fd != -1 && in sun_stream_init()
606 (s->play.buf = calloc(SUN_BUFFER_FRAMES, s->play.frame_size)) == NULL) { in sun_stream_init()
644 if (ioctl(s->play.fd, AUDIO_GETOOFFS, &offset) == -1) { in sun_stream_get_position()
648 *position = (s->blocks_written * s->play.info.blocksize) / s->play.frame_size; in sun_stream_get_position()
664 if (ioctl(s->play.fd, AUDIO_GETBUFINFO, &info) == -1) { in sun_stream_get_latency()
668 *latency = (info.play.seek + info.blocksize) / s->play.frame_size; in sun_stream_get_latency()
673 params.rate = s->play.info.play.sample_rate; in sun_stream_get_latency()
698 stream->play.fd != -1 ? strdup(stream->play.name) : NULL; in sun_get_current_device()