コード例 #1
0
        public async Task <bool> PlayItem(DACPItem item, PlayQueueMode mode = PlayQueueMode.Replace)
        {
            DACPRequest request;

            if (Server.SupportsPlayQueue)
            {
                request = Database.GetPlayQueueEditRequest("add", DACPQueryPredicate.Is("dmap.itemid", item.ID), mode, "name");
                request.QueryParameters["queuefilter"] = string.Format("genre:{0}", Uri.EscapeDataString(DACPUtility.EscapeSingleQuotes(Name)));
            }
            else
            {
                var items = await GetItemsAsync();

                int index = items.FindIndex(i => i.ID == item.ID);
                if (index < 0)
                {
                    return(false);
                }
                request = Database.GetCueSongRequest(DACPQueryCollection.And(GenreQuery, Container.MediaKindQuery), "name", index);
            }

            try { await Server.SubmitRequestAsync(request).ConfigureAwait(false); }
            catch { return(false); }
            return(true);
        }
コード例 #2
0
        public async Task <bool> PlayItem(DACPItem item, PlayQueueMode mode = PlayQueueMode.Replace)
        {
            DACPRequest request;

            if (Server.SupportsPlayQueue)
            {
                var query = DACPQueryPredicate.Is("dmap.containeritemid", item.ContainerItemID);
                request = Database.GetPlayQueueEditRequest("add", query, mode, "physical");
                request.QueryParameters["queuefilter"] = string.Format("playlist:{0}", ID);
            }
            else
            {
                request = GetPlaySpecRequest();
                request.QueryParameters["container-item-spec"] = DACPQueryPredicate.Is("dmap.containeritemid", "0x" + item.ContainerItemID.ToString("x8")).ToString();
            }

            try { await Server.SubmitRequestAsync(request).ConfigureAwait(false); }
            catch { return(false); }
            return(true);
        }