Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
UPnP Search
03-08-2013, 07:33
Post: #1
UPnP Search
I'm working on adding support for UPnP Search to MinimServer. Because different control points send UPnP search queries in different formats, I'd like to test this support with as wide a range of control points as possible. So far, the only control points I have found that can send UPnP search queries are BubbleDS, BubbleUPnP and PlugPlayer. Are there any other control points that can send UPnP search queries?

Note 1: JRiver and WMP send UPnP search queries for loading the complete contents of the library on startup, but I don't think they send any UPnP search queries after that.

Note 2: Kinsky, ChorusDS and Songbook Lite have a search field, but this performs a local search within the control point instead of sending a UPnP search query to the server.
Find all posts by this user
Quote this message in a reply
03-08-2013, 08:35
Post: #2
RE: UPnP Search
(03-08-2013 07:33)simoncn Wrote:  I'm working on adding support for UPnP Search to MinimServer. Because different control points send UPnP search queries in different formats, I'd like to test this support with as wide a range of control points as possible. So far, the only control points I have found that can send UPnP search queries are BubbleDS, BubbleUPnP and PlugPlayer. Are there any other control points that can send UPnP search queries?

Hi Simon, that's great news Smile
I think that the free Android control point 'UPnPlay' is also able to send search queries.
Find all posts by this user
Quote this message in a reply
03-08-2013, 08:57
Post: #3
RE: UPnP Search
- foo_upnp (foobar2000) send search queries with a search string entered by user
- eLyric may send search queries since it is based on Plugplayer code
Find all posts by this user
Quote this message in a reply
03-08-2013, 09:23
Post: #4
RE: UPnP Search
It's really a good idea... !
Thanks a lot in advance and hope can release this function asap. Smile~
Find all posts by this user
Quote this message in a reply
03-08-2013, 09:50 (This post was last modified: 03-08-2013 10:01 by simoncn.)
Post: #5
RE: UPnP Search
(03-08-2013 08:57)bubbleguuum Wrote:  - foo_upnp (foobar2000) send search queries with a search string entered by user

It will be difficult for me to support free-form queries entered by the user. At present, my code looks for a small number of query patterns, of the form:

upnp:class = <some class> and <some tag> contains <some string>
upnp:class derivedfrom <some class> and <some tag> contains <some string>
<some tag> contains <some string>

All the queries I've seen from BubbleDS and PlugPlayer follow one of these patterns.

Quote:- eLyric may send search queries since it is based on Plugplayer code

My current assumption is that testing with PlugPlayer will be sufficient to cover eLyric as well.
Find all posts by this user
Quote this message in a reply
03-08-2013, 10:00
Post: #6
RE: UPnP Search
(03-08-2013 08:35)winxi Wrote:  Hi Simon, that's great news Smile
I think that the free Android control point 'UPnPlay' is also able to send search queries.

Thanks for this information. I've just tried UPnPlay, and my code will need some slight adjustments to work correctly with this.
Find all posts by this user
Quote this message in a reply
03-08-2013, 10:28 (This post was last modified: 03-08-2013 10:36 by bubbleguuum.)
Post: #7
RE: UPnP Search
(03-08-2013 09:50)simoncn Wrote:  
(03-08-2013 08:57)bubbleguuum Wrote:  - foo_upnp (foobar2000) send search queries with a search string entered by user

It will be difficult for me to support free-form queries entered by the user.

foo_upnp queries are not free form. They follow this pattern (had to check the code because I didn't remember at all):

upnp:class derivedfrom "object.item.audioItem" and ( [<upnp tag> <op> "<query string>"]+ )

where

<upnp tag> := dc:title | upnp:genre | upnp:album | upnp:artist | dc:creator | dc:publisher | dc:description | upnp:userAnnotation | upnp:longDescription

<op> := = | contains

Example of request entered in the UPnp browser search field mapped to UPnP search query


artist HAS foo => upnp:class derivedfrom "object.item.audioItem" and (upnp:artist contains "foo" or dc:creator contains "foo")


album IS foo => upnp:class derivedfrom "object.item.audioItem" and (upnp:album = "foo")


entering just a search term will search all upnp tags above that the server claim to support with GetSearchCapabilities:

foo => upnp:class derivedfrom "object.item.audioItem" and ( dc:title contains "foo" or .... or upnp:longDescription contains "foo")
Find all posts by this user
Quote this message in a reply
03-08-2013, 11:04
Post: #8
RE: UPnP Search
(03-08-2013 07:33)simoncn Wrote:  Note 1: JRiver and WMP send UPnP search queries for loading the complete contents of the library on startup, but I don't think they send any UPnP search queries after that.

It may be that UPnP search queries are supported by Windows 8 Explorer. In the Windows 8 Explorer, MinimServer is listed as 'drive' and it is possible to navigate through the 'intelligent browsing' structure provided by MinimServer, which is in fact very convenient.
However, for MinimServer the Explorers search field is disabled. When browsing Twonky (which supports UPnP search), the Explorers search field is enabled. When searching for a string, the Windows Explorer shows corresponding albums as folders and corresponding items as files.
Find all posts by this user
Quote this message in a reply
03-08-2013, 11:19
Post: #9
RE: UPnP Search
(03-08-2013 10:28)bubbleguuum Wrote:  foo_upnp queries are not free form. They follow this pattern (had to check the code because I didn't remember at all):

upnp:class derivedfrom "object.item.audioItem" and ( [<upnp tag> <op> "<query string>"]+ )

Thanks for explaining this. I should be able to handle search queries that use this pattern. Taking this together with what other control points send, I think I need to support the following:

[ upnp:class <op> "<class>" and ] ( <upnp tag> <op> "<query string>" [ or <upnp tag> <op> "<query string>" ]* )

with minor syntactic variations such as extra parentheses.
Find all posts by this user
Quote this message in a reply
03-08-2013, 11:35
Post: #10
RE: UPnP Search
(03-08-2013 11:04)winxi Wrote:  It may be that UPnP search queries are supported by Windows 8 Explorer. In the Windows 8 Explorer, MinimServer is listed as 'drive' and it is possible to navigate through the 'intelligent browsing' structure provided by MinimServer, which is in fact very convenient.
However, for MinimServer the Explorers search field is disabled. When browsing Twonky (which supports UPnP search), the Explorers search field is enabled. When searching for a string, the Windows Explorer shows corresponding albums as folders and corresponding items as files.

Thanks for this pointer. It looks like I will need to install Windows 8 to see what format it uses for its search queries.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)