OPT_FLAG("initial-audio-sync", initial_audio_sync, 0), OPT_CHOICE("hr-seek", hr_seek, 0, ({"no", -1}, {"absolute", 0}, {"always", 1}, {"yes", 1})), OPT_FLOATRANGE("hr-seek-demuxer-offset", hr_seek_demuxer_offset, 0, -9, 99), OPT_CHOICE_OR_INT("autosync", autosync, 0, 0, 10000, ({"no", -1})), OPT_FLAG("softsleep", softsleep, 0), OPT_CHOICE("term-osd", term_osd, 0, ({"force", 1}, {"auto", 2}, {"no", 0})), OPT_STRING("term-osd-esc", term_osd_esc, M_OPT_PARSE_ESCAPES, OPTDEF_STR("\x1b[A\r\x1b[K")), OPT_STRING("playing-msg", playing_msg, M_OPT_PARSE_ESCAPES), OPT_STRING("status-msg", status_msg, M_OPT_PARSE_ESCAPES), OPT_STRING("osd-status-msg", osd_status_msg, M_OPT_PARSE_ESCAPES), OPT_FLAG("slave-broken", slave_mode, CONF_GLOBAL), OPT_FLAG("idle", player_idle_mode, CONF_GLOBAL), OPT_INTRANGE("key-fifo-size", input.key_fifo_size, CONF_GLOBAL, 2, 65000), OPT_FLAG("consolecontrols", consolecontrols, CONF_GLOBAL), OPT_FLAG("mouse-movements", vo.enable_mouse_movements, CONF_GLOBAL), #if HAVE_TV {"tvscan", (void *) tvscan_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL}, #endif /* HAVE_TV */ {"screenshot", (void *) screenshot_conf, CONF_TYPE_SUBCONFIG},
if (count > SILENCE_NMAX) count = SILENCE_NMAX; n = sio_write(p->hdl, p->silence, count); if (n == 0) break; todo -= n; p->delay += n; } } #define OPT_BASE_STRUCT struct priv const struct ao_driver audio_out_sndio = { .description = "sndio audio output", .name = "sndio", .init = init, .uninit = uninit, .control = control, .get_space = get_space, .play = play, .get_delay = get_delay, .pause = audio_pause, .resume = audio_resume, .reset = reset, .priv_size = sizeof(struct priv), .options = (const struct m_option[]) { OPT_STRING("device", dev, 0, OPTDEF_STR(SIO_DEVANY)), {0} }, };