forked from openlp/openlp
Merge branch 'fix-reselected-theme-stream' into 'master'
Fix reselected theme stream Closes #576 See merge request openlp/openlp!330
This commit is contained in:
commit
47e49dd845
@ -221,7 +221,8 @@ class BackgroundPage(GridLayoutPage):
|
|||||||
"""
|
"""
|
||||||
if get_vlc():
|
if get_vlc():
|
||||||
stream_selector_form = StreamSelectorForm(self, self.set_stream, True)
|
stream_selector_form = StreamSelectorForm(self, self.set_stream, True)
|
||||||
if self.stream_lineedit.text():
|
# prefill in the form any device stream already defined
|
||||||
|
if self.stream_lineedit.text() and self.stream_lineedit.text().startswith("devicestream"):
|
||||||
stream_selector_form.set_mrl(self.stream_lineedit.text())
|
stream_selector_form.set_mrl(self.stream_lineedit.text())
|
||||||
stream_selector_form.exec()
|
stream_selector_form.exec()
|
||||||
del stream_selector_form
|
del stream_selector_form
|
||||||
@ -235,7 +236,8 @@ class BackgroundPage(GridLayoutPage):
|
|||||||
"""
|
"""
|
||||||
if get_vlc():
|
if get_vlc():
|
||||||
stream_selector_form = NetworkStreamSelectorForm(self, self.set_stream, True)
|
stream_selector_form = NetworkStreamSelectorForm(self, self.set_stream, True)
|
||||||
if self.stream_lineedit.text():
|
# prefill in the form any network stream already defined
|
||||||
|
if self.stream_lineedit.text() and self.stream_lineedit.text().startswith("networkstream"):
|
||||||
stream_selector_form.set_mrl(self.stream_lineedit.text())
|
stream_selector_form.set_mrl(self.stream_lineedit.text())
|
||||||
stream_selector_form.exec()
|
stream_selector_form.exec()
|
||||||
del stream_selector_form
|
del stream_selector_form
|
||||||
|
@ -20,11 +20,13 @@
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import re
|
||||||
|
|
||||||
from PyQt5 import QtWidgets
|
from PyQt5 import QtWidgets
|
||||||
|
|
||||||
from openlp.core.common.i18n import translate
|
from openlp.core.common.i18n import translate
|
||||||
from openlp.plugins.media.forms import StreamSelectorFormBase, VLCOptionsWidget
|
from openlp.plugins.media.forms import StreamSelectorFormBase, VLCOptionsWidget
|
||||||
|
from openlp.core.ui.media import parse_stream_path
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -79,3 +81,18 @@ class NetworkStreamSelectorForm(StreamSelectorFormBase):
|
|||||||
|
|
||||||
def on_updates(self):
|
def on_updates(self):
|
||||||
self.update_mrl_options(self.net_mrl_lineedit.text(), '')
|
self.update_mrl_options(self.net_mrl_lineedit.text(), '')
|
||||||
|
|
||||||
|
def set_mrl(self, network_stream_str):
|
||||||
|
"""
|
||||||
|
Setup the stream widgets based on the saved stream string. This is best effort as the string is
|
||||||
|
editable for the user.
|
||||||
|
"""
|
||||||
|
(name, mrl, options) = parse_stream_path(network_stream_str)
|
||||||
|
self.net_mrl_lineedit.setText(mrl)
|
||||||
|
|
||||||
|
cache = re.search(r'live-caching=(\d+)', options)
|
||||||
|
if cache:
|
||||||
|
self.more_options_group.caching.setValue(int(cache.group(1)))
|
||||||
|
|
||||||
|
self.more_options_group.mrl_lineedit.setText(mrl)
|
||||||
|
self.more_options_group.vlc_options_lineedit.setText(options)
|
||||||
|
@ -386,7 +386,7 @@ class CaptureDigitalTVWidget(CaptureModeWidget):
|
|||||||
break
|
break
|
||||||
freq = re.search(r'frequency=(\d+)000', main)
|
freq = re.search(r'frequency=(\d+)000', main)
|
||||||
if freq:
|
if freq:
|
||||||
self.freq.setValue(int(freq.group(1)))
|
self.dvb_freq.setValue(int(freq.group(1)))
|
||||||
modulation = re.search(r'modulation=([\w-]+)', main)
|
modulation = re.search(r'modulation=([\w-]+)', main)
|
||||||
if modulation and system:
|
if modulation and system:
|
||||||
if system.group(1) in ['dvb-c', 'cqam']:
|
if system.group(1) in ['dvb-c', 'cqam']:
|
||||||
@ -529,7 +529,7 @@ class JackAudioKitWidget(CaptureModeWidget):
|
|||||||
options += ' :jack-input-auto-connect'
|
options += ' :jack-input-auto-connect'
|
||||||
self.callback(main_file, options)
|
self.callback(main_file, options)
|
||||||
|
|
||||||
def has_support_for_mrl(self, mrl):
|
def has_support_for_mrl(self, mrl, options):
|
||||||
return mrl.startswith('jack')
|
return mrl.startswith('jack')
|
||||||
|
|
||||||
def set_mrl(self, main, options):
|
def set_mrl(self, main, options):
|
||||||
@ -584,7 +584,7 @@ https://github.com/videolan/vlc/blob/13e18f3182e2a7b425411ce70ed83161108c3d1f/mo
|
|||||||
# options = 'input-slave=qtsound://{adev}'.format(adev=adev)
|
# options = 'input-slave=qtsound://{adev}'.format(adev=adev)
|
||||||
self.callback(main_file, '')
|
self.callback(main_file, '')
|
||||||
|
|
||||||
def has_support_for_mrl(self, mrl):
|
def has_support_for_mrl(self, mrl, options):
|
||||||
return mrl.startswith('avcapture')
|
return mrl.startswith('avcapture')
|
||||||
|
|
||||||
def set_mrl(self, main, options):
|
def set_mrl(self, main, options):
|
||||||
@ -632,17 +632,20 @@ class CaptureVideoDirectShowWidget(CaptureVideoQtDetectWidget):
|
|||||||
options += ':dshow-size={vsize}'.format(vsize=vsize)
|
options += ':dshow-size={vsize}'.format(vsize=vsize)
|
||||||
self.callback(main_file, options)
|
self.callback(main_file, options)
|
||||||
|
|
||||||
def has_support_for_mrl(self, mrl):
|
def has_support_for_mrl(self, mrl, options):
|
||||||
return mrl.startswith('dshow')
|
return mrl.startswith('dshow')
|
||||||
|
|
||||||
def set_mrl(self, main, options):
|
def set_mrl(self, main, options):
|
||||||
vdev = re.search(r'"dshow-vdev=(.+)"', main)
|
vsize = re.search(r'dshow-size=(\d+)', options)
|
||||||
|
vdev = re.search(r'"dshow-vdev=(.+)"', options)
|
||||||
if vdev:
|
if vdev:
|
||||||
for i in range(self.video_devices_combo_box.count()):
|
for i in range(self.video_devices_combo_box.count()):
|
||||||
if self.video_devices_combo_box.itemText(i) == vdev.group(1):
|
if self.video_devices_combo_box.itemText(i) == vdev.group(1):
|
||||||
self.video_devices_combo_box.setCurrentIndex(i)
|
self.video_devices_combo_box.setCurrentIndex(i)
|
||||||
|
if vsize:
|
||||||
|
self.video_size_lineedit.setText(vsize.group(1))
|
||||||
break
|
break
|
||||||
adev = re.search(r'"dshow-adev=(.+)"', main)
|
adev = re.search(r'"dshow-adev=(.+)"', options)
|
||||||
if adev:
|
if adev:
|
||||||
for i in range(self.audio_devices_combo_box.count()):
|
for i in range(self.audio_devices_combo_box.count()):
|
||||||
if self.audio_devices_combo_box.itemText(i) == adev.group(1):
|
if self.audio_devices_combo_box.itemText(i) == adev.group(1):
|
||||||
|
@ -60,6 +60,7 @@ class StreamSelectorForm(StreamSelectorFormBase, Ui_StreamSelector):
|
|||||||
for i in range(self.stacked_modes_layout.count()):
|
for i in range(self.stacked_modes_layout.count()):
|
||||||
if self.stacked_modes_layout.widget(i).has_support_for_mrl(mrl, options):
|
if self.stacked_modes_layout.widget(i).has_support_for_mrl(mrl, options):
|
||||||
self.stacked_modes_layout.setCurrentIndex(i)
|
self.stacked_modes_layout.setCurrentIndex(i)
|
||||||
|
self.capture_mode_combo_box.setCurrentIndex(i)
|
||||||
self.stacked_modes_layout.widget(i).set_mrl(mrl, options)
|
self.stacked_modes_layout.widget(i).set_mrl(mrl, options)
|
||||||
break
|
break
|
||||||
cache = re.search(r'live-caching=(\d+)', options)
|
cache = re.search(r'live-caching=(\d+)', options)
|
||||||
|
Loading…
Reference in New Issue
Block a user