I have an addon which pulls video and music files from a uPNP server, creates listitems in Kodi and allows users to play the media. it does a lot more like populating the Kodi database (i.e. syncing to the uPNP server database etc..). Up until recently I have focused on the video playback and syncing and all has worked great. I've recently started enhancing the music section. Everything is working great except when I click on the Info context menu item which launches the DialogMusicInfo.xml skin file I am not getting a play button like I do with videos. If I point Kodi directly at the Kodi music database which is in sync with my uPNP server I get a play button so I know the funtionality works..
Here's the data I am sending the skins for music:
info = {
'duration': getSeconds(duration_text),
'genre': genre_text,
'year': release_year_text,
'title': title,
'artist': artist_text.split(','),
'rating': rating_val,
'discnumber': season_text,
'mediatype': 'song',
'tracknumber': episode_text,
'album': album_text,
'playcount': playcount,
'lastplayed': last_played_text,
}
li.setInfo('music', info)
I am not a skinner but have started digging through the skin code for Confluence to better understand how the skin works.. I was able to manually update the DialogMusicInfo.xml file and add button 8 as a play button and add an onclick action to play the music item but that isn't an approach I would prefer. Since Confluence works with videos and when I point at music files in the Kodi database, the Play button functionality is in there but I cannot find where in the skin code. Oddly, with Estuary I get a play button for both audio and videos but no other skin I have tested presents a play button for music in the DialogMusicInfo.XML file when pulling content and populating my addon listitems.
I think the issue may be that the my addon isn't sending the Skin something it needs to display the play button but I cannot figure out what.
Here's the relevant section of code from the DialogMusicInfo.XML file:
<include content="MusicInfoPanel" condition="String.IsEqual(ListItem.DBTYPE,artist) | String.IsEqual(ListItem.DBTYPE,album) | String.IsEqual(ListItem.DBTYPE,song)">
<param name="panel-left" value="340"/>
<param name="panel-width" value="900"/>
<param name="item-width" value="450"/>
<param name="label-width" value="430"/>
</include>
<control type="grouplist" id="9000">
<left>210</left>
<top>660</top>
<width>1030</width>
<height>40</height>
<itemgap>2</itemgap>
<align>center</align>
<orientation>horizontal</orientation>
<onleft>9000</onleft>
<onright>9000</onright>
<onup>50</onup>
<ondown>49</ondown>
<control type="button" id="6">
<description>Refresh</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="10">
<description>Get Thumb</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="12">
<description>Get Fanart / Album info</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="7">
<description>Set my rating</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
</control>
I've looked through the includes.xml file at the MusicInfoPanel section but don't see where a play button might be created. I am hoping one of you can help me out.
Thanks,
Jeff
Here's the data I am sending the skins for music:
info = {
'duration': getSeconds(duration_text),
'genre': genre_text,
'year': release_year_text,
'title': title,
'artist': artist_text.split(','),
'rating': rating_val,
'discnumber': season_text,
'mediatype': 'song',
'tracknumber': episode_text,
'album': album_text,
'playcount': playcount,
'lastplayed': last_played_text,
}
li.setInfo('music', info)
I am not a skinner but have started digging through the skin code for Confluence to better understand how the skin works.. I was able to manually update the DialogMusicInfo.xml file and add button 8 as a play button and add an onclick action to play the music item but that isn't an approach I would prefer. Since Confluence works with videos and when I point at music files in the Kodi database, the Play button functionality is in there but I cannot find where in the skin code. Oddly, with Estuary I get a play button for both audio and videos but no other skin I have tested presents a play button for music in the DialogMusicInfo.XML file when pulling content and populating my addon listitems.
I think the issue may be that the my addon isn't sending the Skin something it needs to display the play button but I cannot figure out what.
Here's the relevant section of code from the DialogMusicInfo.XML file:
<include content="MusicInfoPanel" condition="String.IsEqual(ListItem.DBTYPE,artist) | String.IsEqual(ListItem.DBTYPE,album) | String.IsEqual(ListItem.DBTYPE,song)">
<param name="panel-left" value="340"/>
<param name="panel-width" value="900"/>
<param name="item-width" value="450"/>
<param name="label-width" value="430"/>
</include>
<control type="grouplist" id="9000">
<left>210</left>
<top>660</top>
<width>1030</width>
<height>40</height>
<itemgap>2</itemgap>
<align>center</align>
<orientation>horizontal</orientation>
<onleft>9000</onleft>
<onright>9000</onright>
<onup>50</onup>
<ondown>49</ondown>
<control type="button" id="6">
<description>Refresh</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="10">
<description>Get Thumb</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="12">
<description>Get Fanart / Album info</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
<control type="button" id="7">
<description>Set my rating</description>
<include>ButtonInfoDialogsCommonValues</include>
<label/>
</control>
</control>
I've looked through the includes.xml file at the MusicInfoPanel section but don't see where a play button might be created. I am hoping one of you can help me out.
Thanks,
Jeff