xbmc/skin.confluence

"Record" button on Radio / TV

Closed this issue · 8 comments

Record button on 'Radio'

Playing TV and pressing the white 'Record' button there is on-screen information that the recording has started, the button turns red and additionally there is a red point on screen.

Playing Radio and pressing the white 'Record' button there is only the on-screen information. The button remains white, no additional point on the screen.

I would like to have the red button recording Radio too.(If this is possible ;-) )
Expected Behavior

When listening to Radio stations and pressing the white circle (record button) the button should turn red, indicating a recording is taking place (as it does when watching a TV station and pressing there the record-button)

Actual Behavior

The record button remains white, there is only a short information, that the recording has started.
Possible Fix

Copy the appropriate lines from the TV-Recording behaviour
To Reproduce

Start Raspian
select Kodi (in my case 18.7 as Raspian offers no newer version)
select Radio
select a free station
listen to the station
press the "record" button (should turn red now (like in TV)

Debuglog

There is no log for this:

Your Environment

Used Operating system:

[x ] Linux (RaspiOS) Raspberry pi4 4GB

Operating system version/name:

Kodi version: Leia 18.7 (latest for Raspi available version) Skin: Confluence

see also xbmc/xbmc#19225 (comment)

I can't test any PVR stuff so could you please try this code for VideoOSD.xml and let me know if it works?

<?xml version="1.0" encoding="UTF-8"?>
<window>
	<defaultcontrol always="true">100</defaultcontrol>
	<onload condition="!VideoPlayer.Content(LiveTV)">SetFocus(202)</onload>
	<include>dialogeffect</include>
	<depth>DepthOSD</depth>
	<coordinates>
		<left>0</left>
		<top>0</top>
	</coordinates>
	<controls>
		<control type="button">
			<description>Close Window button</description>
			<left>84r</left>
			<top>0</top>
			<width>64</width>
			<height>32</height>
			<label/>
			<font/>
			<onclick>Dialog.Close(VideoOSD,true)</onclick>
			<onclick>FullScreen</onclick>
			<texturefocus>DialogCloseButton-focus.png</texturefocus>
			<texturenofocus>DialogCloseButton.png</texturenofocus>
			<animation effect="slide" start="0,0" end="-30,0" time="0" condition="Player.Muted">conditional</animation>
			<animation effect="fade" time="150">VisibleChange</animation>
			<visible>system.getbool(input.enablemouse) + ![Window.IsVisible(SliderDialog) | Window.IsVisible(OSDSubtitleSettings) | Window.IsVisible(OSDVideoSettings) | Window.IsVisible(OSDAudioSettings) | Window.IsVisible(VideoBookmarks)]</visible>
		</control>
		<control type="slider" id="87">
			<depth>DepthOSD+</depth>
			<description>Seek Slider</description>
			<left>430</left>
			<top>82r</top>
			<width>720</width>
			<height>16</height>
			<onup>702</onup>
			<ondown>26</ondown>
			<action>seek</action>
			<texturesliderbar>seekslider2.png</texturesliderbar>
			<textureslidernib>osd_slider_nibNF.png</textureslidernib>
			<textureslidernibfocus>osd_slider_nib.png</textureslidernibfocus>
			<animation effect="fade" time="150">VisibleChange</animation>
			<visible>![Window.IsVisible(SliderDialog) | Window.IsVisible(OSDSubtitleSettings) | Window.IsVisible(OSDVideoSettings) | Window.IsVisible(OSDAudioSettings) | Window.IsVisible(VideoBookmarks) | VideoPlayer.Content(LiveTV)]</visible>
		</control>
		<control type="grouplist" id="100">
			<left>325</left>
			<top>60r</top>
			<orientation>horizontal</orientation>
			<itemgap>0</itemgap>
			<animation effect="fade" time="150">VisibleChange</animation>
			<visible>![Window.IsVisible(SliderDialog) | Window.IsVisible(OSDSubtitleSettings) | Window.IsVisible(OSDVideoSettings) | Window.IsVisible(OSDAudioSettings) | Window.IsVisible(VideoBookmarks) | Window.IsVisible(PVROSDChannels) | Window.IsVisible(PVRChannelGuide)]</visible>
			<control type="button" id="300">
				<width>55</width>
				<height>55</height>
				<label>210</label>
				<font/>
				<texturefocus>OSDChannelUPFO.png</texturefocus>
				<texturenofocus>OSDChannelUPNF.png</texturenofocus>
				<onclick>PlayerControl(Previous)</onclick>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="301">
				<width>55</width>
				<height>55</height>
				<label>209</label>
				<font/>
				<texturefocus>OSDChannelDownFO.png</texturefocus>
				<texturenofocus>OSDChannelDownNF.png</texturenofocus>
				<onclick>PlayerControl(Next)</onclick>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="200">
				<width>55</width>
				<height>55</height>
				<label>210</label>
				<font/>
				<texturefocus>OSDPrevTrackFO.png</texturefocus>
				<texturenofocus>OSDPrevTrackNF.png</texturenofocus>
				<onclick>PlayerControl(Previous)</onclick>
				<visible>!VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="201">
				<width>55</width>
				<height>55</height>
				<label>31354</label>
				<font/>
				<texturefocus>OSDRewindFO.png</texturefocus>
				<texturenofocus>OSDRewindNF.png</texturenofocus>
				<enable>Player.SeekEnabled</enable>
				<animation effect="fade" start="100" end="50" time="75" condition="!Player.SeekEnabled">Conditional</animation>
				<onclick condition="!Player.Paused + !Player.IsTempo">PlayerControl(Rewind)</onclick>
				<onclick condition="Player.Paused + Player.TempoEnabled">PlayerControl(Play)</onclick>
				<onclick condition="Player.Paused + Player.TempoEnabled">PlayerControl(TempoDown)</onclick>
				<onclick condition="Player.IsTempo + Player.TempoEnabled">PlayerControl(TempoDown)</onclick>
			</control>
			<control type="togglebutton" id="202">
				<width>55</width>
				<height>55</height>
				<label>31351</label>
				<altlabel>208</altlabel>
				<font/>
				<texturefocus>OSDPauseFO.png</texturefocus>
				<texturenofocus>OSDPauseNF.png</texturenofocus>
				<usealttexture>Player.Paused | Player.Forwarding | Player.Rewinding</usealttexture>
				<alttexturefocus>OSDPlayFO.png</alttexturefocus>
				<alttexturenofocus>OSDPlayNF.png</alttexturenofocus>
				<onclick>PlayerControl(Play)</onclick>
				<enable>Player.PauseEnabled</enable>
				<animation effect="fade" start="100" end="50" time="75" condition="!Player.PauseEnabled">Conditional</animation>
			</control>
			<control type="button" id="203">
				<width>55</width>
				<height>55</height>
				<label>31352</label>
				<font/>
				<texturefocus>OSDStopFO.png</texturefocus>
				<texturenofocus>OSDStopNF.png</texturenofocus>
				<onclick>PlayerControl(Stop)</onclick>
			</control>
			<control type="button" id="204">
				<width>55</width>
				<height>55</height>
				<label>31353</label>
				<font/>
				<texturefocus>OSDForwardFO.png</texturefocus>
				<texturenofocus>OSDForwardNF.png</texturenofocus>
				<enable>Player.SeekEnabled</enable>
				<animation effect="fade" start="100" end="50" time="75" condition="!Player.SeekEnabled">Conditional</animation>
				<onclick condition="!Player.Paused + !Player.IsTempo">PlayerControl(Forward)</onclick>
				<onclick condition="Player.Paused + Player.TempoEnabled">PlayerControl(Play)</onclick>
				<onclick condition="Player.Paused + Player.TempoEnabled">PlayerControl(TempoUp)</onclick>
				<onclick condition="Player.IsTempo + Player.TempoEnabled">PlayerControl(TempoUp)</onclick>
			</control>
			<control type="button" id="205">
				<width>55</width>
				<height>55</height>
				<label>209</label>
				<font/>
				<texturefocus>OSDNextTrackFO.png</texturefocus>
				<texturenofocus>OSDNextTrackNF.png</texturenofocus>
				<onclick>PlayerControl(Next)</onclick>
				<visible>!VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="306">
				<width>55</width>
				<height>55</height>
				<label>19019</label>
				<font/>
				<texturefocus>OSDChannelListFO.png</texturefocus>
				<texturenofocus>OSDChannelListNF.png</texturenofocus>
				<onclick>ActivateWindow(PVROSDChannels)</onclick>
				<onclick>Dialog.Close(VideoOSD)</onclick>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="307">
				<width>55</width>
				<height>55</height>
				<label>$LOCALIZE[19029]$INFO[VideoPlayer.ChannelName, - ]</label>
				<font/>
				<texturefocus>OSDepgFO.png</texturefocus>
				<texturenofocus>OSDepgNF.png</texturenofocus>
				<onclick>ActivateWindow(PVRChannelGuide)</onclick>
				<onclick>Dialog.Close(VideoOSD)</onclick>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="350">
				<width>55</width>
				<height>55</height>
				<label>31356</label>
				<font/>
				<texturefocus>OSDTeleTextFO.png</texturefocus>
				<texturenofocus>OSDTeleTextNF.png</texturenofocus>
				<onclick>ActivateWindow(Teletext)</onclick>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="image" id="2200">
				<width>270</width>
				<texture/>
				<visible>VideoPlayer.HasMenu + !VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="image" id="2300">
				<width>160</width>
				<texture/>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="image" id="2600">
				<width>325</width>
				<texture/>
				<visible>!VideoPlayer.Content(LiveTV) + !VideoPlayer.HasMenu</visible>
			</control>
			<control type="button" id="255">
				<enable>VideoPlayer.IsStereoscopic</enable>
				<animation effect="fade" start="100" end="0" time="75" condition="!VideoPlayer.IsStereoscopic">Conditional</animation>
				<width>55</width>
				<height>55</height>
				<label>36501</label>
				<font/>
				<texturefocus>OSDStereoscopicFO.png</texturefocus>
				<texturenofocus>OSDStereoscopicNF.png</texturenofocus>
				<onup>501</onup>
			</control>
			<control type="button" id="250">
				<width>55</width>
				<height>55</height>
				<label>31356</label>
				<font/>
				<texturefocus>OSDSubtitlesFO.png</texturefocus>
				<texturenofocus>OSDSubtitlesNF.png</texturenofocus>
				<onclick>ActivateWindow(OSDSubtitleSettings)</onclick>
			</control>
			<control type="button" id="251">
				<width>55</width>
				<height>55</height>
				<label>13395</label>
				<font/>
				<texturefocus>OSDVideoFO.png</texturefocus>
				<texturenofocus>OSDVideoNF.png</texturenofocus>
				<onclick>ActivateWindow(OSDVideoSettings)</onclick>
			</control>
			<control type="button" id="252">
				<width>55</width>
				<height>55</height>
				<label>13396</label>
				<font/>
				<texturefocus>OSDAudioFO.png</texturefocus>
				<texturenofocus>OSDAudioNF.png</texturenofocus>
				<onclick>ActivateWindow(OSDAudioSettings)</onclick>
			</control>
			<control type="button" id="253">
				<width>55</width>
				<height>55</height>
				<label>298</label>
				<font/>
				<texturefocus>OSDBookmarksFO.png</texturefocus>
				<texturenofocus>OSDBookmarksNF.png</texturenofocus>
				<onclick>ActivateWindow(VideoBookmarks)</onclick>
				<visible>!VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="button" id="254">
				<width>55</width>
				<height>55</height>
				<label>31355</label>
				<font/>
				<texturefocus>OSDDvdFO.png</texturefocus>
				<texturenofocus>OSDDvdNF.png</texturenofocus>
				<onclick>PlayerControl(ShowVideoMenu)</onclick>
				<visible>!VideoPlayer.Content(LiveTV) + VideoPlayer.HasMenu</visible>
			</control>
			<control type="radiobutton" id="353">
				<width>55</width>
				<height>55</height>
				<radiowidth>55</radiowidth>
				<radioheight>55</radioheight>
				<label/>
				<altlabel/>
				<font/>
				<textureradioofffocus>OSDRecordOffFO.png</textureradioofffocus>
				<textureradiooffnofocus>OSDRecordOffNF.png</textureradiooffnofocus>
				<textureradioonfocus>OSDRecordOnFO.png</textureradioonfocus>
				<textureradioonnofocus>OSDRecordOnNF.png</textureradioonnofocus>
				<texturefocus />
				<texturenofocus />
				<onclick>PVR.ToggleRecordPlayingChannel</onclick>
				<selected>PVR.IsRecordingPlayingChannel</selected>
				<animation effect="fade" start="100" end="50" time="75" condition="!PVR.CanRecordPlayingChannel">Conditional</animation>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
			<control type="togglebutton" id="353">
				<width>55</width>
				<height>55</height>
				<label>264</label>
				<altlabel>265</altlabel>
				<font/>
				<texturefocus>OSDRecordOffFO.png</texturefocus>
				<texturenofocus>OSDRecordOffNF.png</texturenofocus>
				<usealttexture>PVR.IsRecordingPlayingChannel | PVR.IsPlayingActiveRecording</usealttexture>
				<alttexturefocus>OSDRecordOnFO.png</alttexturefocus>
				<alttexturenofocus>OSDRecordOnNF.png</alttexturenofocus>
				<onclick>PVR.ToggleRecordPlayingChannel</onclick>
				<enable>PVR.CanRecordPlayingChannel</enable>
				<animation effect="fade" start="100" end="50" time="75" condition="!PVR.CanRecordPlayingChannel">Conditional</animation>
				<visible>VideoPlayer.Content(LiveTV)</visible>
			</control>
		</control>
		<control type="button" id="410">
			<description>Fake button for mouse control</description>
			<right>145</right>
			<bottom>60</bottom>
			<width>256</width>
			<height>250</height>
			<label/>
			<font/>
			<texturenofocus/>
			<texturefocus/>
			<animation effect="slide" start="0,0" end="55,0" time="0" condition="VideoPlayer.Content(LiveTV)">Conditional</animation>
			<visible>Control.HasFocus(410) | Control.HasFocus(250) | ControlGroup(400).HasFocus</visible>
		</control>
		<control type="button" id="520">
			<description>Fake button for mouse control</description>
			<right>200</right>
			<bottom>60</bottom>
			<width>256</width>
			<height>210</height>
			<label/>
			<font/>
			<texturenofocus/>
			<texturefocus/>
			<animation effect="slide" start="0,0" end="55,0" time="0" condition="VideoPlayer.Content(LiveTV)">Conditional</animation>
			<visible>Control.HasFocus(520) | Control.HasFocus(255) | ControlGroup(500).HasFocus</visible>
		</control>
		<control type="grouplist" id="500">
			<depth>DepthOSD+</depth>
			<visible>videoplayer.isstereoscopic + ![Window.IsVisible(SliderDialog) | Window.IsVisible(OSDSubtitleSettings) | Window.IsVisible(OSDVideoSettings) | Window.IsVisible(OSDAudioSettings) | Window.IsVisible(VideoBookmarks) | Window.IsVisible(PVROSDChannels) | Window.IsVisible(PVRChannelGuide)] + [Control.HasFocus(255) | ControlGroup(500).HasFocus | Control.HasFocus(520)]</visible>
			<animation effect="fade" time="150">VisibleChange</animation>
			<animation effect="slide" start="0,0" end="55,0" time="0" condition="![VideoPlayer.HasMenu | VideoPlayer.Content(LiveTV)]">Conditional</animation>
			<animation effect="slide" start="0,0" end="55,0" time="0" condition="VideoPlayer.Content(LiveTV)">Conditional</animation>
			<right>200</right>
			<bottom>45</bottom>
			<width>256</width>
			<height>220</height>
			<itemgap>0</itemgap>
			<onleft>100</onleft>
			<onright>100</onright>
			<onup>255</onup>
			<ondown>255</ondown>
			<orientation>vertical</orientation>
			<include>VisibleFadeEffect</include>
			<control type="group">
				<description>Header</description>
				<width>256</width>
				<height>40</height>
				<control type="image">
					<description>Header</description>
					<left>0</left>
					<top>0</top>
					<width>256</width>
					<height>40</height>
					<texture border="20,18,20,0">SubMenuBack-Header.png</texture>
				</control>
				<control type="label">
					<left>0</left>
					<top>20</top>
					<width>256</width>
					<height>15</height>
					<font>font12</font>
					<label>36501</label>
					<textcolor>blue</textcolor>
					<align>center</align>
					<aligny>center</aligny>
				</control>
			</control>
			<control type="radiobutton" id="503">
				<height>40</height>
				<width>256</width>
				<textoffsetx>30</textoffsetx>
				<aligny>center</aligny>
				<font>font13</font>
				<label>31362</label>
				<radioposx>200</radioposx>
				<texturefocus border="25,5,25,5">SubMenuBack-MiddleFO.png</texturefocus>
				<texturenofocus border="25,5,25,5">SubMenuBack-MiddleNF.png</texturenofocus>
				<onclick>ToggleStereoMode</onclick>
				<selected>Integer.IsGreater(System.StereoscopicMode,0)</selected>
				<pulseonselect>false</pulseonselect>
			</control>
			<control type="button" id="502">
				<height>40</height>
				<width>256</width>
				<aligny>center</aligny>
				<font>font13</font>
				<textoffsetx>30</textoffsetx>
				<texturefocus border="25,5,25,5">SubMenuBack-MiddleFO.png</texturefocus>
				<texturenofocus border="25,5,25,5">SubMenuBack-MiddleNF.png</texturenofocus>
				<pulseonselect>false</pulseonselect>
				<label>31361</label>
				<onclick>StereoMode</onclick>
			</control>
			<control type="radiobutton" id="501">
				<height>40</height>
				<width>256</width>
				<textoffsetx>30</textoffsetx>
				<aligny>center</aligny>
				<font>font13</font>
				<label>31360</label>
				<radioposx>200</radioposx>
				<texturefocus border="25,5,25,5">SubMenuBack-MiddleFO.png</texturefocus>
				<texturenofocus border="25,5,25,5">SubMenuBack-MiddleNF.png</texturenofocus>
				<onclick>StereoModeToMono</onclick>
				<selected>String.IsEqual(System.StereoscopicMode,9)</selected>
				<pulseonselect>false</pulseonselect>
			</control>
			<control type="image" id="549">
				<description>Footer</description>
				<width>256</width>
				<height>52</height>
				<texture border="20,0,20,50">SubMenuBack-Footer.png</texture>
			</control>
		</control>
	</controls>
</window>

I checked the new xml-file.
Unfortunately the problem is only partially solved:

In the 'channel list' (that is what you see if you select Radio from the main menu) there is now a red sign when recording. (I hadn't seen that it was missing, but it WAS missing).

But selecting a channel on the new (empty or lyrics) screen there the behaviour has NOT changed. Pressing the record-button gives the info, that recording has started, but the round button remains white.

The white recording button is hidden here behind the 'recording started 'NDR Info'

Ok, thanks for checking.

Hi guys.
I'll look at fixing this issue Tuesday.
Cheers

Fixes pending:

#94
#95
#96

Please check #96
That's the fix for Kodi 18