Commit 6b18cf4c authored by Jakob Leben's avatar Jakob Leben

upnp_intel: new playlist design

parent 128fadfc
...@@ -659,7 +659,7 @@ void MediaServer::fetchContents() ...@@ -659,7 +659,7 @@ void MediaServer::fetchContents()
_contents = root; _contents = root;
_contents->setInputItem( _inputItem ); _contents->setInputItem( _inputItem );
_buildPlaylist( _contents ); _buildPlaylist( _contents, NULL );
} }
bool MediaServer::_fetchContents( Container* parent ) bool MediaServer::_fetchContents( Container* parent )
...@@ -780,17 +780,23 @@ bool MediaServer::_fetchContents( Container* parent ) ...@@ -780,17 +780,23 @@ bool MediaServer::_fetchContents( Container* parent )
return true; return true;
} }
void MediaServer::_buildPlaylist( Container* parent ) void MediaServer::_buildPlaylist( Container* parent, input_item_node_t *p_input_node )
{ {
bool send = p_input_node == NULL;
if( send )
p_input_node = input_item_node_Create( parent->getInputItem() );
for ( unsigned int i = 0; i < parent->getNumContainers(); i++ ) for ( unsigned int i = 0; i < parent->getNumContainers(); i++ )
{ {
Container* container = parent->getContainer( i ); Container* container = parent->getContainer( i );
input_item_t* p_input_item = input_item_New( _p_sd, "vlc://nop", parent->getTitle() ); input_item_t* p_input_item = input_item_New( _p_sd, "vlc://nop", parent->getTitle() );
input_item_AddSubItem( parent->getInputItem(), p_input_item ); input_item_AddSubItem( parent->getInputItem(), p_input_item );
input_item_node_t *p_new_node =
input_item_node_AppendItem( p_input_node, p_input_item );
container->setInputItem( p_input_item ); container->setInputItem( p_input_item );
_buildPlaylist( container ); _buildPlaylist( container, p_new_node );
} }
for ( unsigned int i = 0; i < parent->getNumItems(); i++ ) for ( unsigned int i = 0; i < parent->getNumItems(); i++ )
...@@ -802,8 +808,15 @@ void MediaServer::_buildPlaylist( Container* parent ) ...@@ -802,8 +808,15 @@ void MediaServer::_buildPlaylist( Container* parent )
item->getTitle() ); item->getTitle() );
assert( p_input_item ); assert( p_input_item );
input_item_AddSubItem( parent->getInputItem(), p_input_item ); input_item_AddSubItem( parent->getInputItem(), p_input_item );
input_item_node_AppendItem( p_input_node, p_input_item );
item->setInputItem( p_input_item ); item->setInputItem( p_input_item );
} }
if( send )
{
input_item_AddSubItemTree( p_input_node );
input_item_node_Delete( p_input_node );
}
} }
void MediaServer::setInputItem( input_item_t* p_input_item ) void MediaServer::setInputItem( input_item_t* p_input_item )
......
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
private: private:
bool _fetchContents( Container* parent ); bool _fetchContents( Container* parent );
void _buildPlaylist( Container* container ); void _buildPlaylist( Container* container, input_item_node_t * );
IXML_Document* _browseAction( const char*, const char*, IXML_Document* _browseAction( const char*, const char*,
const char*, const char*, const char*, const char* ); const char*, const char*, const char*, const char* );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment