]> git.tdb.fi Git - xinema.git/blobdiff - remote/source/streamcontrolitem.cpp
Add channel selection controls in the remote
[xinema.git] / remote / source / streamcontrolitem.cpp
index b7624df813d6c5f45cbe24cf99171fdeb84320f5..fb518bf0ab8fd102a645edcac30d42d0160b156b 100644 (file)
@@ -19,6 +19,9 @@ void StreamControlItem::set_control(XinemaControlItem *c)
                connect(&xc, &XinemaControl::title_changed, this, &StreamControlItem::title_changed);
                connect(&xc, &XinemaControl::duration_changed, this, &StreamControlItem::duration_changed);
                connect(&xc, &XinemaControl::position_changed, this, &StreamControlItem::position_changed);
+               connect(&xc, &XinemaControl::channels_changed, this, &StreamControlItem::control_channels_changed);
+               connect(&xc, &XinemaControl::current_audio_channel_changed, this, &StreamControlItem::current_audio_channel_changed);
+               connect(&xc, &XinemaControl::current_spu_channel_changed, this, &StreamControlItem::current_spu_channel_changed);
        }
 
        emit control_changed();
@@ -29,6 +32,9 @@ void StreamControlItem::set_control(XinemaControlItem *c)
                emit title_changed();
                emit duration_changed();
                emit position_changed();
+               emit channels_changed();
+               emit current_audio_channel_changed();
+               emit current_spu_channel_changed();
        }
 }
 
@@ -83,3 +89,54 @@ float StreamControlItem::get_position() const
 
        return control->get_control().get_position();
 }
+
+QStringList StreamControlItem::get_audio_channels() const
+{
+       if(!control)
+               return QStringList();
+
+       return control->get_control().get_audio_channels();
+}
+
+QStringList StreamControlItem::get_spu_channels() const
+{
+       if(!control)
+               return QStringList();
+
+       return control->get_control().get_spu_channels();
+}
+
+void StreamControlItem::select_audio_channel(int chan)
+{
+       if(control)
+               control->get_control().select_audio_channel(chan);
+}
+
+void StreamControlItem::select_spu_channel(int chan)
+{
+       if(control)
+               control->get_control().select_spu_channel(chan);
+}
+
+int StreamControlItem::get_current_audio_channel() const
+{
+       if(!control)
+               return -1;
+
+       return control->get_control().get_current_audio_channel();
+}
+
+int StreamControlItem::get_current_spu_channel() const
+{
+       if(!control)
+               return -1;
+
+       return control->get_control().get_current_spu_channel();
+}
+
+void StreamControlItem::control_channels_changed()
+{
+       emit channels_changed();
+       emit current_audio_channel_changed();
+       emit current_spu_channel_changed();
+}