@ -902,54 +902,75 @@ namespace Emby.Dlna.PlayTo
var name = document . Descendants ( uPnpNamespaces . ud . GetName ( "friendlyName" ) ) . FirstOrDefault ( ) ;
var name = document . Descendants ( uPnpNamespaces . ud . GetName ( "friendlyName" ) ) . FirstOrDefault ( ) ;
if ( name ! = null & & ! string . IsNullOrWhiteSpace ( name . Value ) )
if ( name ! = null & & ! string . IsNullOrWhiteSpace ( name . Value ) )
{
friendlyNames . Add ( name . Value ) ;
friendlyNames . Add ( name . Value ) ;
}
var room = document . Descendants ( uPnpNamespaces . ud . GetName ( "roomName" ) ) . FirstOrDefault ( ) ;
var room = document . Descendants ( uPnpNamespaces . ud . GetName ( "roomName" ) ) . FirstOrDefault ( ) ;
if ( room ! = null & & ! string . IsNullOrWhiteSpace ( room . Value ) )
if ( room ! = null & & ! string . IsNullOrWhiteSpace ( room . Value ) )
{
friendlyNames . Add ( room . Value ) ;
friendlyNames . Add ( room . Value ) ;
}
deviceProperties . Name = string . Join ( " " , friendlyNames .ToArray ( ) );
deviceProperties . Name = string . Join ( " " , friendlyNames );
var model = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelName" ) ) . FirstOrDefault ( ) ;
var model = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelName" ) ) . FirstOrDefault ( ) ;
if ( model ! = null )
if ( model ! = null )
{
deviceProperties . ModelName = model . Value ;
deviceProperties . ModelName = model . Value ;
}
var modelNumber = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelNumber" ) ) . FirstOrDefault ( ) ;
var modelNumber = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelNumber" ) ) . FirstOrDefault ( ) ;
if ( modelNumber ! = null )
if ( modelNumber ! = null )
{
deviceProperties . ModelNumber = modelNumber . Value ;
deviceProperties . ModelNumber = modelNumber . Value ;
}
var uuid = document . Descendants ( uPnpNamespaces . ud . GetName ( "UDN" ) ) . FirstOrDefault ( ) ;
var uuid = document . Descendants ( uPnpNamespaces . ud . GetName ( "UDN" ) ) . FirstOrDefault ( ) ;
if ( uuid ! = null )
if ( uuid ! = null )
{
deviceProperties . UUID = uuid . Value ;
deviceProperties . UUID = uuid . Value ;
}
var manufacturer = document . Descendants ( uPnpNamespaces . ud . GetName ( "manufacturer" ) ) . FirstOrDefault ( ) ;
var manufacturer = document . Descendants ( uPnpNamespaces . ud . GetName ( "manufacturer" ) ) . FirstOrDefault ( ) ;
if ( manufacturer ! = null )
if ( manufacturer ! = null )
{
deviceProperties . Manufacturer = manufacturer . Value ;
deviceProperties . Manufacturer = manufacturer . Value ;
}
var manufacturerUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "manufacturerURL" ) ) . FirstOrDefault ( ) ;
var manufacturerUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "manufacturerURL" ) ) . FirstOrDefault ( ) ;
if ( manufacturerUrl ! = null )
if ( manufacturerUrl ! = null )
{
deviceProperties . ManufacturerUrl = manufacturerUrl . Value ;
deviceProperties . ManufacturerUrl = manufacturerUrl . Value ;
}
var presentationUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "presentationURL" ) ) . FirstOrDefault ( ) ;
var presentationUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "presentationURL" ) ) . FirstOrDefault ( ) ;
if ( presentationUrl ! = null )
if ( presentationUrl ! = null )
{
deviceProperties . PresentationUrl = presentationUrl . Value ;
deviceProperties . PresentationUrl = presentationUrl . Value ;
}
var modelUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelURL" ) ) . FirstOrDefault ( ) ;
var modelUrl = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelURL" ) ) . FirstOrDefault ( ) ;
if ( modelUrl ! = null )
if ( modelUrl ! = null )
{
deviceProperties . ModelUrl = modelUrl . Value ;
deviceProperties . ModelUrl = modelUrl . Value ;
}
var serialNumber = document . Descendants ( uPnpNamespaces . ud . GetName ( "serialNumber" ) ) . FirstOrDefault ( ) ;
var serialNumber = document . Descendants ( uPnpNamespaces . ud . GetName ( "serialNumber" ) ) . FirstOrDefault ( ) ;
if ( serialNumber ! = null )
if ( serialNumber ! = null )
{
deviceProperties . SerialNumber = serialNumber . Value ;
deviceProperties . SerialNumber = serialNumber . Value ;
}
var modelDescription = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelDescription" ) ) . FirstOrDefault ( ) ;
var modelDescription = document . Descendants ( uPnpNamespaces . ud . GetName ( "modelDescription" ) ) . FirstOrDefault ( ) ;
if ( modelDescription ! = null )
if ( modelDescription ! = null )
{
deviceProperties . ModelDescription = modelDescription . Value ;
deviceProperties . ModelDescription = modelDescription . Value ;
}
deviceProperties . BaseUrl = string . Format ( "http://{0}:{1}" , url . Host , url . Port ) ;
deviceProperties . BaseUrl = string . Format ( "http://{0}:{1}" , url . Host , url . Port ) ;
var icon = document . Descendants ( uPnpNamespaces . ud . GetName ( "icon" ) ) . FirstOrDefault ( ) ;
var icon = document . Descendants ( uPnpNamespaces . ud . GetName ( "icon" ) ) . FirstOrDefault ( ) ;
if ( icon ! = null )
if ( icon ! = null )
{
{
deviceProperties . Icon = CreateIcon ( icon ) ;
deviceProperties . Icon = CreateIcon ( icon ) ;
@ -958,12 +979,16 @@ namespace Emby.Dlna.PlayTo
foreach ( var services in document . Descendants ( uPnpNamespaces . ud . GetName ( "serviceList" ) ) )
foreach ( var services in document . Descendants ( uPnpNamespaces . ud . GetName ( "serviceList" ) ) )
{
{
if ( services = = null )
if ( services = = null )
{
continue ;
continue ;
}
var servicesList = services . Descendants ( uPnpNamespaces . ud . GetName ( "service" ) ) ;
var servicesList = services . Descendants ( uPnpNamespaces . ud . GetName ( "service" ) ) ;
if ( servicesList = = null )
if ( servicesList = = null )
{
continue ;
continue ;
}
foreach ( var element in servicesList )
foreach ( var element in servicesList )
{
{
@ -1065,13 +1090,10 @@ namespace Emby.Dlna.PlayTo
private void OnPlaybackStart ( uBaseObject mediaInfo )
private void OnPlaybackStart ( uBaseObject mediaInfo )
{
{
if ( PlaybackStart ! = null )
PlaybackStart ? . Invoke ( this , new PlaybackStartEventArgs
{
{
PlaybackStart . Invoke ( this , new PlaybackStartEventArgs
MediaInfo = mediaInfo
{
} ) ;
MediaInfo = mediaInfo
} ) ;
}
}
}
private void OnPlaybackProgress ( uBaseObject mediaInfo )
private void OnPlaybackProgress ( uBaseObject mediaInfo )
@ -1082,36 +1104,28 @@ namespace Emby.Dlna.PlayTo
return ;
return ;
}
}
if ( PlaybackProgress ! = null )
PlaybackProgress ? . Invoke ( this , new PlaybackProgressEventArgs
{
{
PlaybackProgress . Invoke ( this , new PlaybackProgressEventArgs
MediaInfo = mediaInfo
{
} ) ;
MediaInfo = mediaInfo
} ) ;
}
}
}
private void OnPlaybackStop ( uBaseObject mediaInfo )
private void OnPlaybackStop ( uBaseObject mediaInfo )
{
{
if ( PlaybackStopped ! = null )
PlaybackStopped ? . Invoke ( this , new PlaybackStoppedEventArgs
{
{
PlaybackStopped . Invoke ( this , new PlaybackStoppedEventArgs
MediaInfo = mediaInfo
{
} ) ;
MediaInfo = mediaInfo
} ) ;
}
}
}
private void OnMediaChanged ( uBaseObject old , uBaseObject newMedia )
private void OnMediaChanged ( uBaseObject old , uBaseObject newMedia )
{
{
if ( MediaChanged ! = null )
MediaChanged ? . Invoke ( this , new MediaChangedEventArgs
{
{
MediaChanged . Invoke ( this , new MediaChangedEventArgs
OldMediaInfo = old ,
{
NewMediaInfo = newMedia
OldMediaInfo = old ,
} ) ;
NewMediaInfo = newMedia
} ) ;
}
}
}
#region IDisposable
#region IDisposable