mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
command: redo ancient TV/DVB/PVR commands
Convert all these commands to properties. (Except tv_last_channel, not sure what to do with this.) Also, internally, don't access stream details directly, but dispatch commands with stream ctrls. Many of the new properties are a bit strange, because they're write- only. Also remove some OSD output these commands produced, because I couldn't be bothered to port these. In general, this makes everything much cleaner, and will also make it easier to e.g. move the demuxer to its own thread. Don't bother updating input.conf, but changes.rst documents how old commands map to the new ones. Mostly untested, due to lack of hardware.
This commit is contained in:
@@ -142,6 +142,8 @@ struct pvr_t {
|
||||
int stream_type;
|
||||
};
|
||||
|
||||
static int pvr_stream_control(struct stream *s, int cmd, void *arg);
|
||||
|
||||
static struct pvr_t *
|
||||
pvr_init (void)
|
||||
{
|
||||
@@ -1608,6 +1610,7 @@ pvr_stream_open (stream_t *stream)
|
||||
stream->type = STREAMTYPE_PVR;
|
||||
stream->fill_buffer = pvr_stream_read;
|
||||
stream->close = pvr_stream_close;
|
||||
stream->control = pvr_stream_control;
|
||||
|
||||
return STREAM_OK;
|
||||
}
|
||||
@@ -1698,6 +1701,28 @@ pvr_force_freq_step (stream_t *stream, int step)
|
||||
return force_freq_step (pvr, step);
|
||||
}
|
||||
|
||||
static int pvr_stream_control(struct stream *s, int cmd, void *arg)
|
||||
{
|
||||
switch (cmd) {
|
||||
case STREAM_CTRL_SET_TV_FREQ:
|
||||
pvr_set_freq(s, (int)(*(float *)arg + 0.5f));
|
||||
return STREAM_OK;
|
||||
case STREAM_CTRL_GET_TV_FREQ:
|
||||
*(float *)arg = pvr_get_current_frequency(s);
|
||||
return STREAM_OK;
|
||||
case STREAM_CTRL_TV_SET_CHAN:
|
||||
pvr_set_channel(s, (char *)arg);
|
||||
return STREAM_OK;
|
||||
case STREAM_CTRL_TV_STEP_CHAN:
|
||||
pvr_set_channel_step(s, *(int *)arg);
|
||||
return STREAM_OK;
|
||||
case STREAM_CTRL_TV_LAST_CHAN:
|
||||
pvr_set_lastchannel(s);
|
||||
return STREAM_OK;
|
||||
}
|
||||
return STREAM_UNSUPPORTED;
|
||||
}
|
||||
|
||||
const stream_info_t stream_info_pvr = {
|
||||
.name = "pvr",
|
||||
.open = pvr_stream_open,
|
||||
|
||||
Reference in New Issue
Block a user