The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Audio Control schema changes


  • Subject: Re: Audio Control schema changes
  • From: Michael McSharry
  • Date: Sun, 15 Feb 2004 03:21:00 +0000

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<DIV><FONT face="Arial" size="2">It does
seem to me that track.info is redundant with playlist info.&nbsp;
Current information is available with Now.Playing.&nbsp; Specifc
information is availble with Playlit query.&nbsp; A playlist query with
a&nbsp; empty index, or an index to some special value could be used to
query the current track info.</FONT></DIV>
<BLOCKQUOTE>
<DIV>----- Original Message ----- </DIV>
<DIV><B>From:</B> <A title="lists@xxxxxxx"
href="mailto:lists@xxxxxxx";>Stuart
Booth</A> </DIV>
<DIV><B>To:</B> <A
title="xAP_developer@xxxxxxx" href="mailto:xAP_developer@xxxxxxx";>xAP_developer@xxxxxxx</A>
</DIV>
<DIV><B>Sent:</B> Saturday, February 14, 2004 2:57
PM</DIV>
<DIV><B>Subject:</B> Re: [xAP_developer] Audio Control
schema changes</DIV>
<DIV></DIV><TT>On Sat, 14 Feb 2004 10:44:39 -0800,
"Michael McSharry"<<A href="mailto:mcs101main@xxxxxxx";>mcs101main@xxxxxxx</A>>
wrote:>[Request]>Class=xAP-Audio.Query>Playlist.Query>{>&nbsp;&nbsp;&nbsp;
Query=[Track  List  Title  Artist Album  Path  Duration  Index  Tracks 
Genre]>&nbsp;&nbsp;&nbsp; Index="index in
playlist">}>[Response - where
Query=Artist]>Class=xAP-Audio.Playlist.Info>Artist.Info>{>&nbsp;&nbsp;&nbsp;
Artist="artist">}That sounds like a good plan as.it combines
both worlds. It seems evenmore appropriate for targetted responses, as a
device is asking for avery specific bit of information in the latter
examples.I was just wondering about formatting the response block as
follows:[Response - where Query=Artist,
Index=n]Class=xAP-Audio.Playlist.InfoTrack.Info{&nbsp;&nbsp;&nbsp;
Artist=&q
uot;artist"&nbsp;&nbsp;&nbsp; Index="index in
playlist"}Ie a more finely grained Track.Info rather than a whole new
block typewith its own block name.Note that Index is always included to
complete the integrity of theresponse - the information contained within
can be used by anyonewithout reference to any previously sent message.But
I'm a tad troubled by the seeming overlap between "Track"
and"Playlist".[Request]Class=xAP-Audio.QueryTrack.Query{&nbsp;&nbsp;&nbsp;
Query=[Title  Artist Album  Path  Duration  Index  Genre  Time]}So how
about Track.Query requests the track information block for the*current*
track as Edward clarified in a recent schema revision. Thissaves a
request/response cycle determining from the playlist what thecurrent track
is each and every time. Plus it reuses blocks/responsesat the expense of
making all their parameters optional.Where Query is left out (and empty
block? Or should we explicitly havean "All" option?) all
details are returned in a full Track.Info block.Time is an extra parameter
in Track.Query blocks as shown above, notpresent in the Playlist.Query, as
it requests the current playingtrack's progress, which won't necessary
apply in a playlist contextwhere you access the nth track in the list. This
should be optionalwhere it can be supported.[Response - where Query =
Artist]Class=xAP-Audio.Playlist.InfoTrack.Info{&nbsp;&nbsp;&nbsp;
Artist="artist"&nbsp;&nbsp;&nbsp; Index="index
in playlist"}ie make all Track.Info parameters optional. Actually I
think that thefact it's the current track is lost in the response block.
Only thetargetted response shows the context is the current track,
assumingthe querying application remembers that fact!!Maybe the response
message Class should be xAP-Audio.Track.Info inTrack.Query cases as it
would make the response message unambiguous.Any thoughts?-- PLAYLISTS
--[Request]Class=xAP-Audio.QueryPlaylist.Query{&nbsp;&nbsp;&nbsp
; Query=[ Track  List  Title  Artist Album  Path  Duration  Index  Tracks 
Genre ]&nbsp;&nbsp;&nbsp; Index="index in
playlist"}[Response - where Query=Track,
Index=n]Class=xAP-Audio.Playlist.InfoTrack.Info{&nbsp;&nbsp;&nbsp;
Title="title"&nbsp;&nbsp;&nbsp;
Artist="artist"&nbsp;&nbsp;&nbsp;
Album="album"&nbsp;&nbsp;&nbsp; Path="path to
current track"&nbsp;&nbsp;&nbsp; Duration="title
duration"&nbsp;&nbsp;&nbsp; Index="index in
playlist"&nbsp;&nbsp;&nbsp; Tracks="number of tracks
in the current playlist"&nbsp;&nbsp;&nbsp;
Genre="genre"}[Response - where
Query=List]Class=xAP-Audio.Playlist.InfoPlaylist.Info{&nbsp;&nbsp;&nbsp;
Tracks="length of play list"&nbsp;&nbsp;&nbsp;
Index="index of current track"&nbsp;&nbsp;&nbsp;
Shuffle=[On  Off]&nbsp;&nbsp;&
nbsp; Repeat=[Stop  Track  Playlist]}[Response - where Query=Artist,
Index=n]Class=xAP-Audio.Playlist.InfoTrack.Info{&nbsp;&nbsp;&nbsp;
Artist="artist"&nbsp;&nbsp;&nbsp; Index="index
in playlist"}Basically instead of the following
template:Block.Info{&nbsp;&nbsp;&nbsp; Query=[the query
option]&nbsp;&nbsp;&nbsp; Status=[the
answer]&nbsp;&nbsp;&nbsp; Index=n}we're
using:Track.Info{&nbsp;&nbsp;&nbsp; [the query option]=[the
answer]&nbsp;&nbsp;&nbsp; Index=n}Where the query option just
happens to be an existing member of theTrack.Info name/value pairs. Bonus!
So the Query option is implicit inthe parameters of the block
(Artist=result) rather than beingcompletely explicit in a general message
block (Query=Artist).Is this a good or a bad thing?S-- Stuart Booth
<stuart@xxxxxxx>xAPFramework.net - a xAP software development
framework for .net<A href="http
://www.xapautomation.org/";>http://www.xapautomation.org/</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<A href="http://www.xapframework.net/";>http://www.xapframework.net/</A></TT>




xAP_Development Main Index | xAP_Development Thread Index | xAP_Development Home | Archives Home

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.