Exemplo n.º 1
0
        internal PodcastEpisode(string aId, string aName, string aDate, string aAlbumArtUri, string aAudioUri, string aDuration)
        {
            iId          = aId;
            iName        = aName;
            iAlbumArtUri = aAlbumArtUri;
            iAudioUri    = aAudioUri;

            DateTime date;

            try
            {
                date  = DateTime.Parse(aDate);
                iDate = date;
            }
            catch (FormatException) { }

            iMetadata       = new audioItem();
            iMetadata.Id    = iId;
            iMetadata.Title = iName;
            iMetadata.AlbumArtUri.Add(iAlbumArtUri);

            resource res = new resource();

            res.Uri          = iAudioUri;
            res.ProtocolInfo = "http-get:*:audio/x-mpeg:*";
            if (aDuration != null)
            {
                res.Duration = new Time(aDuration).ToString();
            }

            iMetadata.Res.Add(res);
        }
        public ModelSourceMediaRendererUpnpAv(Source aSource)
        {
            DidlLite  didl      = new DidlLite();
            audioItem itemAudio = new audioItem();

            itemAudio.Title = "Unknown";
            didl.Add(itemAudio);
            kUnknownPlaylistItem = new MrItem(0, null, didl);

            iSource     = aSource;
            iInstanceId = 0;
            iTrackId    = 0;

            try
            {
                iServiceConnectionManager = new ServiceConnectionManager(iSource.Device, iSource.House.EventServer);
            }
            catch (ServiceException)
            {
                throw new ModelSourceException(301, "Service failure");
            }

            iActionGetProtocolInfo = iServiceConnectionManager.CreateAsyncActionGetProtocolInfo();

            iActionGetProtocolInfo.EventResponse += EventResponseGetProtocolInfo;

            try
            {
                iServiceAVTransport = new ServiceAVTransport(iSource.Device, iSource.House.EventServer);
            }
            catch (ServiceException)
            {
                throw new ModelSourceException(301, "Service failure");
            }

            iActionPlay                 = iServiceAVTransport.CreateAsyncActionPlay();
            iActionPause                = iServiceAVTransport.CreateAsyncActionPause();
            iActionStop                 = iServiceAVTransport.CreateAsyncActionStop();
            iActionSeek                 = iServiceAVTransport.CreateAsyncActionSeek();
            iActionNext                 = iServiceAVTransport.CreateAsyncActionNext();
            iActionPrevious             = iServiceAVTransport.CreateAsyncActionPrevious();
            iActionSetAVTransportURI    = iServiceAVTransport.CreateAsyncActionSetAVTransportURI();
            iActionGetPositionInfo      = iServiceAVTransport.CreateAsyncActionGetPositionInfo();
            iActionGetTransportSettings = iServiceAVTransport.CreateAsyncActionGetTransportSettings();
            iActionSetPlayMode          = iServiceAVTransport.CreateAsyncActionSetPlayMode();

            iActionGetPositionInfo.EventResponse      += EventResponseGetPositionInfo;
            iActionGetTransportSettings.EventResponse += EventResponseGetTransportSettings;
            iActionSetAVTransportURI.EventResponse    += EventResponseSetAVTransportURI;

            iTimer = new Linn.Timer();

            // Sets the timer interval to 1 second.
            iTimer.Interval  = 1000;
            iTimer.Elapsed  += TimerElapsed;
            iTimer.AutoReset = false;

            iMutex    = new Mutex(false);
            iPlaylist = new List <MrItem>();
        }
Exemplo n.º 3
0
        public static string Description(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is audioItem)
            {
                audioItem item = aObject as audioItem;
                result = item.Description;
            }
            else if (aObject is videoItem)
            {
                videoItem item = aObject as videoItem;
                result = item.Description;
            }
            else if (aObject is album)
            {
                album item = aObject as album;
                result = item.Description;
            }
            else if (aObject is playlistContainer)
            {
                playlistContainer item = aObject as playlistContainer;
                result = item.Description;
            }

            // always return a non-null string
            return(NonNullString(result));
        }
Exemplo n.º 4
0
        private upnpObject CreateUpnpObject(IFeed aFeed, IEntry aEntry)
        {
            audioItem item     = new audioItem();
            resource  resource = new resource();

            resource.Uri     = aEntry.Audio.Uri;
            resource.Bitrate = (int)aEntry.Audio.Bitrate * 1000;
            item.Res.Add(resource);
            item.Id    = aEntry.Audio.Uri;
            item.Title = aEntry.Title;
            item.Genre.Add(aEntry.Category);
            item.ArtworkUri.Add(aEntry.LogoUri);
            return(item);
        }
Exemplo n.º 5
0
        private upnpObject CreateUpnpObject(Team aTeam)
        {
            audioItem item     = new audioItem();
            resource  resource = new resource();

            resource.Uri     = aTeam.Uri;
            resource.Bitrate = 128000 / 8;
            item.Res.Add(resource);
            item.Id    = aTeam.Uri;
            item.Title = aTeam.Name;
            item.Genre.Add("Ceremonial");
            item.ArtworkUri.Add(aTeam.FlagUri);
            return(item);
        }
Exemplo n.º 6
0
        private void UpdateMetadata()
        {
            iMetadata             = new audioItem();
            iMetadata.Id          = iId;
            iMetadata.Title       = iName;
            iMetadata.Description = iDescription;
            iMetadata.AlbumArtUri.Add(iAlbumArtUri);

            resource res = new resource();

            res.Uri             = iAudioUri;
            res.NrAudioChannels = 2;
            res.Bitrate         = iKbps;
            res.ProtocolInfo    = "http-get:*:audio/x-mpeg:*";

            iMetadata.Res.Add(res);
        }
Exemplo n.º 7
0
        internal LiveStation(string aId, string aName, string aAlbumArtUri, string aAudioUri, int aKbps)
        {
            iId          = aId;
            iName        = aName;
            iAlbumArtUri = aAlbumArtUri;
            iAudioUri    = aAudioUri;
            iKbps        = aKbps * 125;

            iMetadata       = new audioItem();
            iMetadata.Id    = iId;
            iMetadata.Title = iName;
            iMetadata.AlbumArtUri.Add(iAlbumArtUri);

            resource res = new resource();

            res.Uri             = iAudioUri;
            res.NrAudioChannels = 2;
            res.Bitrate         = iKbps;
            res.ProtocolInfo    = "http-get:*:audio/x-mpeg:*";

            iMetadata.Res.Add(res);
        }
Exemplo n.º 8
0
        public static string Info(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is audioItem)
            {
                audioItem item = aObject as audioItem;
                result = item.LongDescription;
            }
            else if (aObject is videoItem)
            {
                videoItem item = aObject as videoItem;
                result = item.LongDescription;
            }
            else if (aObject is album)
            {
                album item = aObject as album;
                result = item.LongDescription;
            }

            // always return a non-null string
            return(NonNullString(result));
        }
Exemplo n.º 9
0
        public static string Genre(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is genre)
            {
                genre genre = aObject as genre;
                result = genre.Title;
            }
            else if (aObject is musicArtist)
            {
                musicArtist artist = aObject as musicArtist;
                for (int i = 0; i < artist.Genre.Count; ++i)
                {
                    if (i > 0 && i < artist.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += artist.Genre[i];
                }
            }
            else if (aObject is musicAlbum)
            {
                musicAlbum album = aObject as musicAlbum;
                for (int i = 0; i < album.Genre.Count; ++i)
                {
                    if (i > 0 && i < album.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += album.Genre[i];
                }
            }
            else if (aObject is audioItem)
            {
                audioItem item = aObject as audioItem;
                for (int i = 0; i < item.Genre.Count; ++i)
                {
                    if (i > 0 && i < item.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += item.Genre[i];
                }
            }
            else if (aObject is videoItem)
            {
                videoItem item = aObject as videoItem;
                for (int i = 0; i < item.Genre.Count; ++i)
                {
                    if (i > 0 && i < item.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += item.Genre[i];
                }
            }

            // always return a non-null string
            return(NonNullString(result));
        }