Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Cleaned up, updated to API v12, and added async

  • Loading branch information...
commit 0a5f48e1b16bd47a4f8cf0496f34b462675f86ae 1 parent 89be0f7
@Alxandr authored
Showing with 159,555 additions and 11,359 deletions.
  1. BIN  Bass.Net.dll
  2. +64,723 −0 Bass.Net.xml
  3. +0 −13 SpotiFire.Client/App.xaml
  4. +0 −49 SpotiFire.Client/App.xaml.cs
  5. +0 −50 SpotiFire.Client/Commands/BoundCommand.cs
  6. +0 −37 SpotiFire.Client/Commands/PlayPauseCommand.cs
  7. +0 −61 SpotiFire.Client/Commands/PropertyBoundCommand.cs
  8. BIN  SpotiFire.Client/Images/arrow_down.png
  9. BIN  SpotiFire.Client/Images/arrow_down_selected.png
  10. BIN  SpotiFire.Client/Images/arrow_right.png
  11. BIN  SpotiFire.Client/Images/arrow_right_selected.png
  12. BIN  SpotiFire.Client/Images/ico_track_starred.png
  13. BIN  SpotiFire.Client/Images/ico_track_unstarred.png
  14. BIN  SpotiFire.Client/Images/next_button.png
  15. BIN  SpotiFire.Client/Images/next_button_disabled.png
  16. BIN  SpotiFire.Client/Images/next_button_pressed.png
  17. BIN  SpotiFire.Client/Images/pause_button.png
  18. BIN  SpotiFire.Client/Images/pause_button_disabled.png
  19. BIN  SpotiFire.Client/Images/pause_button_pressed.png
  20. BIN  SpotiFire.Client/Images/play_button.png
  21. BIN  SpotiFire.Client/Images/play_button_disabled.png
  22. BIN  SpotiFire.Client/Images/play_button_pressed.png
  23. BIN  SpotiFire.Client/Images/playlist_folder_icon.png
  24. BIN  SpotiFire.Client/Images/playlist_folder_icon_selected.png
  25. BIN  SpotiFire.Client/Images/playlist_icon.png
  26. BIN  SpotiFire.Client/Images/playlist_icon_selected.png
  27. BIN  SpotiFire.Client/Images/previous_button.png
  28. BIN  SpotiFire.Client/Images/previous_button_disabled.png
  29. BIN  SpotiFire.Client/Images/previous_button_pressed.png
  30. BIN  SpotiFire.Client/Images/repeat_button_active.png
  31. BIN  SpotiFire.Client/Images/repeat_button_inactive.png
  32. BIN  SpotiFire.Client/Images/repeat_button_pressed.png
  33. BIN  SpotiFire.Client/Images/shuffle_button_active.png
  34. BIN  SpotiFire.Client/Images/shuffle_button_inactive.png
  35. BIN  SpotiFire.Client/Images/shuffle_button_pressed.png
  36. BIN  SpotiFire.Client/Images/spotify-core-logo-128x128.png
  37. +0 −384 SpotiFire.Client/MainWindow.xaml
  38. +0 −48 SpotiFire.Client/MainWindow.xaml.cs
  39. +0 −23 SpotiFire.Client/PlaybackEventArgs.cs
  40. +0 −23 SpotiFire.Client/PlaylistTreeItem.cs
  41. +0 −55 SpotiFire.Client/Properties/AssemblyInfo.cs
  42. +0 −63 SpotiFire.Client/Properties/Resources.Designer.cs
  43. +0 −117 SpotiFire.Client/Properties/Resources.resx
  44. +0 −26 SpotiFire.Client/Properties/Settings.Designer.cs
  45. +0 −7 SpotiFire.Client/Properties/Settings.settings
  46. +0 −677 SpotiFire.Client/Service References/ServiceReference/Reference.cs
  47. +0 −34 SpotiFire.Client/Service References/ServiceReference/Reference.svcmap
  48. +0 −10 .../Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.AuthenticationStatus.datasource
  49. +0 −10 ...iFire.Client/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.Playlist.datasource
  50. +0 −10 ....Client/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.SpotifyStatus.datasource
  51. +0 −10 SpotiFire.Client/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.Track.datasource
  52. +0 −288 SpotiFire.Client/Service References/ServiceReference/SpotifireServer.wsdl
  53. +0 −10 SpotiFire.Client/Service References/ServiceReference/configuration.svcinfo
  54. +0 −216 SpotiFire.Client/Service References/ServiceReference/configuration91.svcinfo
  55. +0 −4 SpotiFire.Client/Service References/ServiceReference/metadata.disco
  56. +0 −42 SpotiFire.Client/Service References/ServiceReference/metadata.xsd
  57. +0 −82 SpotiFire.Client/Service References/ServiceReference/metadata1.xsd
  58. +0 −140 SpotiFire.Client/Service References/ServiceReference/metadata2.xsd
  59. +0 −239 SpotiFire.Client/SpotiFire.Client.csproj
  60. +0 −3  SpotiFire.Client/SpotiFire.Client.csproj.vs10x
  61. +0 −31 SpotiFire.Client/SpotifyLogin.xaml
  62. +0 −25 SpotiFire.Client/SpotifyLogin.xaml.cs
  63. +0 −183 SpotiFire.Client/SpotifyPlaylistTree.xaml
  64. +0 −144 SpotiFire.Client/SpotifyPlaylistView.xaml
  65. +0 −34 SpotiFire.Client/ValueConverters/StarredValueConverter.cs
  66. +0 −35 SpotiFire.Client/ValueConverters/ThumbIndicatorConverter.cs
  67. +0 −27 SpotiFire.Client/ValueConverters/TimeSpanSecondsConverter.cs
  68. +0 −187 SpotiFire.Client/ValueConverters/TreeViewMarginConverter.cs
  69. +0 −38 SpotiFire.Client/ValueConverters/VolumeBarsConverter.cs
  70. +0 −54 SpotiFire.Client/ViewModels/ArtistViewModel.cs
  71. +0 −30 SpotiFire.Client/ViewModels/BaseViewModel.cs
  72. +0 −14 SpotiFire.Client/ViewModels/ISpotifyViewViewModel.cs
  73. +0 −183 SpotiFire.Client/ViewModels/PlaylistTreeItemViewModel.cs
  74. +0 −121 SpotiFire.Client/ViewModels/PlaylistViewModel.cs
  75. +0 −424 SpotiFire.Client/ViewModels/SpotifyViewModel.cs
  76. +0 −121 SpotiFire.Client/ViewModels/TrackViewModel.cs
  77. +0 −116 SpotiFire.Client/ViewTabControlResources.xaml
  78. +0 −144 SpotiFire.Client/Views/SpotifyPlaylistView.xaml
  79. +0 −26 SpotiFire.Client/Views/SpotifyPlaylistView.xaml.cs
  80. +0 −33 SpotiFire.Client/app.config
  81. +0 −21 SpotiFire.Server/Artist.cs
  82. +0 −10 SpotiFire.Server/AuthenticationStatus.cs
  83. +0 −119 SpotiFire.Server/Client.cs
  84. +0 −27 SpotiFire.Server/ClientAction.cs
  85. +0 −387 SpotiFire.Server/LiveQueue.cs
  86. +0 −108 SpotiFire.Server/Playlist.cs
  87. +0 −145 SpotiFire.Server/Program.cs
  88. +0 −3  SpotiFire.Server/SpotiFire.Server.csproj.vs10x
  89. +0 −324 SpotiFire.Server/SpotifireServer.cs
  90. +0 −36 SpotiFire.Server/SpotifyStatus.cs
  91. +0 −44 SpotiFire.Server/Track.cs
  92. +0 −20 SpotiFire.Server/Wcf Interfaces/ISpotifireClient.cs
  93. +0 −53 SpotiFire.Server/Wcf Interfaces/ISpotifireServer.cs
  94. BIN  SpotiFire.Server/packages/Bass.NET/Bass.Net.dll
  95. +15 −15 SpotiFire.SpotifyLib/Interfaces/IAlbum.cs
  96. +10 −10 SpotiFire.SpotifyLib/Interfaces/IArtist.cs
  97. +27 −26 SpotiFire.SpotifyLib/Interfaces/IPlaylist.cs
  98. +14 −13 SpotiFire.SpotifyLib/Interfaces/IPlaylistContainer.cs
  99. +19 −18 SpotiFire.SpotifyLib/Interfaces/ISearch.cs
  100. +36 −34 SpotiFire.SpotifyLib/Interfaces/ISession.cs
  101. +14 −0 SpotiFire.SpotifyLib/Interfaces/ISpotifyAwaitable.cs
  102. +16 −0 SpotiFire.SpotifyLib/Interfaces/ISpotifyAwaiter.cs
  103. +17 −17 SpotiFire.SpotifyLib/Interfaces/ITrack.cs
  104. +132 −121 SpotiFire.SpotifyLib/SpotiFire.SpotifyLib.csproj
  105. +12 −11 SpotiFire.SpotifyLib/Spotify.cs
  106. +226 −161 SpotiFire.SpotifyLib/SpotifyLibExtensions.cs
  107. +47 −3 SpotiFire.SpotifyLib/SpotifyTypes/AlbumBrowse.cs
  108. +425 −381 SpotiFire.SpotifyLib/SpotifyTypes/ArtistBrowse.cs
  109. +758 −744 SpotiFire.SpotifyLib/SpotifyTypes/Playlist.cs
  110. +440 −385 SpotiFire.SpotifyLib/SpotifyTypes/PlaylistContainer.cs
  111. +435 −391 SpotiFire.SpotifyLib/SpotifyTypes/Search.cs
  112. +761 −710 SpotiFire.SpotifyLib/SpotifyTypes/Session.cs
  113. +331 −331 SpotiFire.SpotifyLib/SpotifyTypes/Track.cs
  114. +1,843 −1,688 SpotiFire.SpotifyLib/libspotify.cs
  115. BIN  SpotiFire.SpotifyLib/libspotify.dll
  116. +4 −0 SpotiFire.SpotifyLib/packages.config
  117. +6 −0 SpotiFire.TestClient/App.config
  118. +57 −57 {SpotiFire.Server → SpotiFire.TestClient}/BASSPlayer.cs
  119. +76 −0 SpotiFire.TestClient/Program.cs
  120. +36 −36 {SpotiFire.Server → SpotiFire.TestClient}/Properties/AssemblyInfo.cs
  121. +72 −88 SpotiFire.Server/SpotiFire.Server.csproj → SpotiFire.TestClient/SpotiFire.TestClient.csproj
  122. 0  {SpotiFire.Server → SpotiFire.TestClient}/bass.dll
  123. +42 −64 SpotiFire.sln
  124. +0 −44 SpotiFire/SpotiFire.csproj
  125. +0 −13 TestDesignData/playlists.xml
  126. BIN  libspotify.dll
  127. BIN  packages/NLog.2.0.0.2000/NLog.2.0.0.2000.nupkg
  128. BIN  packages/NLog.2.0.0.2000/lib/net20/NLog.dll
  129. +14,286 −0 packages/NLog.2.0.0.2000/lib/net20/NLog.xml
  130. BIN  packages/NLog.2.0.0.2000/lib/net35/NLog.dll
  131. +14,403 −0 packages/NLog.2.0.0.2000/lib/net35/NLog.xml
  132. BIN  packages/NLog.2.0.0.2000/lib/net40/NLog.dll
  133. +14,353 −0 packages/NLog.2.0.0.2000/lib/net40/NLog.xml
  134. BIN  packages/NLog.2.0.0.2000/lib/sl2/NLog.dll
  135. +9,119 −0 packages/NLog.2.0.0.2000/lib/sl2/NLog.xml
  136. BIN  packages/NLog.2.0.0.2000/lib/sl3-wp/NLog.dll
  137. +8,978 −0 packages/NLog.2.0.0.2000/lib/sl3-wp/NLog.xml
  138. BIN  packages/NLog.2.0.0.2000/lib/sl3/NLog.dll
  139. +9,141 −0 packages/NLog.2.0.0.2000/lib/sl3/NLog.xml
  140. BIN  packages/NLog.2.0.0.2000/lib/sl4-windowsphone71/NLog.dll
  141. +9,135 −0 packages/NLog.2.0.0.2000/lib/sl4-windowsphone71/NLog.xml
  142. BIN  packages/NLog.2.0.0.2000/lib/sl4/NLog.dll
  143. +9,542 −0 packages/NLog.2.0.0.2000/lib/sl4/NLog.xml
  144. +4 −0 packages/repositories.config
View
BIN  Bass.Net.dll
Binary file not shown
View
64,723 Bass.Net.xml
64,723 additions, 0 deletions not shown
View
13 SpotiFire.Client/App.xaml
@@ -1,13 +0,0 @@
-<Application x:Class="SpotiFire.SpotiClient.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
- <Application.Resources>
-
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="ViewTabControlResources.xaml"/>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
-
- </Application.Resources>
-</Application>
View
49 SpotiFire.Client/App.xaml.cs
@@ -1,49 +0,0 @@
-using System;
-using System.ServiceModel;
-using System.Windows;
-using SpotiFire.SpotiClient.ServiceReference;
-using SpotiFire.SpotiClient.ViewModels;
-
-namespace SpotiFire.SpotiClient
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- private ServiceReference.SpotifyClient client;
- private SpotifyViewModel model;
-
- public App()
- : base()
- {
- model = SpotifyViewModel.Instance;
- client = new ServiceReference.SpotifyClient(new InstanceContext(model));
- MainWindow = new MainWindow(model);
- AuthenticationStatus ok = AuthenticationStatus.Bad;
- try { ok = client.Authenticate(""); }
- catch { throw; }
- if (ok == AuthenticationStatus.Bad)
- Shutdown();
- else if (ok == AuthenticationStatus.RequireLogin)
- {
- bool loggedIn = false;
- while (!loggedIn)
- {
- SpotifyLogin login = new SpotifyLogin();
- login.ShowDialog();
- if (login.Username.Text != "")
- loggedIn = client.Login(login.Username.Text, login.Password.Password);
- }
- }
- model.Client = client;
- MainWindow.Show();
- MainWindow.Closed += new EventHandler(MainWindow_Closed);
- }
-
- void MainWindow_Closed(object sender, EventArgs e)
- {
- this.Shutdown();
- }
- }
-}
View
50 SpotiFire.Client/Commands/BoundCommand.cs
@@ -1,50 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Windows.Input;
-
-namespace SpotiFire.SpotiClient.Commands
-{
- public delegate void CommandExecute(object parameter);
- public delegate bool CommandCanExecute(object parameter);
- public class BoundCommand : ICommand
- {
- private CommandExecute execute;
- private CommandCanExecute canExecute;
- private INotifyPropertyChanged canExecuteChangedListener;
- private string propertyName;
-
- public BoundCommand(CommandExecute execute, CommandCanExecute canExecute, INotifyPropertyChanged propertyChanged = null, string propertyName = null)
- {
- this.execute = execute;
- this.canExecute = canExecute;
- if (String.IsNullOrWhiteSpace(propertyName))
- propertyChanged = null;
-
- if (propertyChanged != null)
- {
- propertyChanged.PropertyChanged += new PropertyChangedEventHandler(propertyChanged_PropertyChanged);
- this.propertyName = propertyName;
- this.canExecuteChangedListener = propertyChanged;
- }
- }
-
- void propertyChanged_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (sender == canExecuteChangedListener && e.PropertyName == propertyName)
- if (CanExecuteChanged != null)
- CanExecuteChanged(this, e);
- }
-
- public bool CanExecute(object parameter)
- {
- return canExecute(parameter);
- }
-
- public event EventHandler CanExecuteChanged;
-
- public void Execute(object parameter)
- {
- execute(parameter);
- }
- }
-}
View
37 SpotiFire.Client/Commands/PlayPauseCommand.cs
@@ -1,37 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Windows.Input;
-using SpotiFire.SpotiClient.ViewModels;
-
-namespace SpotiFire.SpotiClient.Commands
-{
- public class PlayPauseCommand : ICommand
- {
- private SpotifyViewModel model;
-
- public PlayPauseCommand(SpotifyViewModel model)
- {
- this.model = model;
- this.model.PropertyChanged += new PropertyChangedEventHandler(model_PropertyChanged);
- }
-
- void model_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (e.PropertyName == "CanStartPlayback")
- if (CanExecuteChanged != null)
- CanExecuteChanged(this, e);
- }
-
- public bool CanExecute(object parameter)
- {
- return model.CanStartPlayback;
- }
-
- public event EventHandler CanExecuteChanged;
-
- public void Execute(object parameter)
- {
- throw new NotImplementedException();
- }
- }
-}
View
61 SpotiFire.Client/Commands/PropertyBoundCommand.cs
@@ -1,61 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Reflection;
-using System.Windows.Input;
-
-namespace SpotiFire.SpotiClient.Commands
-{
- public class PropertyBoundCommand : ICommand
- {
- private CommandExecute execute;
- private INotifyPropertyChanged boundTo;
- private string propertyName;
- private PropertyInfo property;
- private MethodInfo propertyGetMethod;
-
- public PropertyBoundCommand(CommandExecute execute, INotifyPropertyChanged boundTo, string propertyName)
- {
- if (execute == null)
- throw new ArgumentNullException("execute");
- this.execute = execute;
-
- if (boundTo == null)
- throw new ArgumentNullException("boundTo");
- this.boundTo = boundTo;
-
- property = boundTo.GetType().GetProperty(propertyName);
- if (property == null)
- throw new ArgumentException("Bad propertyName");
-
- if (property.PropertyType != typeof(bool))
- throw new ArgumentException("Bad property type");
-
- propertyGetMethod = property.GetGetMethod();
- if (propertyGetMethod == null)
- throw new ArgumentException("No public get-method found.");
-
- this.propertyName = propertyName;
-
- boundTo.PropertyChanged += new PropertyChangedEventHandler(boundTo_PropertyChanged);
- }
-
- void boundTo_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (sender == boundTo && e.PropertyName == propertyName)
- if (CanExecuteChanged != null)
- CanExecuteChanged(this, e);
- }
-
- public bool CanExecute(object parameter)
- {
- return (bool)propertyGetMethod.Invoke(boundTo, null);
- }
-
- public event EventHandler CanExecuteChanged;
-
- public void Execute(object parameter)
- {
- execute(parameter);
- }
- }
-}
View
BIN  SpotiFire.Client/Images/arrow_down.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/arrow_down_selected.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/arrow_right.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/arrow_right_selected.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/ico_track_starred.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/ico_track_unstarred.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/next_button.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/next_button_disabled.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/next_button_pressed.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/pause_button.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/pause_button_disabled.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/pause_button_pressed.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/play_button.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/play_button_disabled.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/play_button_pressed.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/playlist_folder_icon.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/playlist_folder_icon_selected.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/playlist_icon.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/playlist_icon_selected.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/previous_button.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/previous_button_disabled.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/previous_button_pressed.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/repeat_button_active.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/repeat_button_inactive.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/repeat_button_pressed.png
Deleted file not rendered
View
BIN  SpotiFire.Client/Images/shuffle_button_active.png
Diff not rendered
View
BIN  SpotiFire.Client/Images/shuffle_button_inactive.png
Diff not rendered
View
BIN  SpotiFire.Client/Images/shuffle_button_pressed.png
Diff not rendered
View
BIN  SpotiFire.Client/Images/spotify-core-logo-128x128.png
Diff not rendered
View
384 SpotiFire.Client/MainWindow.xaml
@@ -1,384 +0,0 @@
-<Window
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:s="clr-namespace:System;assembly=mscorlib"
- xmlns:vc="clr-namespace:SpotiFire.SpotiClient.ValueConverters"
- xmlns:vm="clr-namespace:SpotiFire.SpotiClient.ViewModels"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:SpotiFire.SpotiClient" mc:Ignorable="d" x:Class="SpotiFire.SpotiClient.MainWindow"
- Title="MainWindow" Height="500" Width="800" Loaded="Window_Loaded" UseLayoutRounding="True"
- >
- <Window.Resources>
- <vc:StarredValueConverter x:Key="StarredConverter" />
- <vc:VolumeBarsConverter x:Key="VolumeBarsConverter" />
- <vc:TimeSpanSecondsConverter x:Key="TimeSpanSecondsConverter" />
- <Style x:Key="ArtistLink" TargetType="{x:Type Hyperlink}">
- <Setter Property="TextDecorations" Value="None" />
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="TextDecorations" Value="Underline" />
- </Trigger>
- </Style.Triggers>
- </Style>
-
- <Style TargetType="{x:Type Slider}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type Slider}">
- <ControlTemplate.Resources>
- <vc:ThumbIndicatorConverter x:Key="ThumbIndicatorConverter" />
- </ControlTemplate.Resources>
- <Grid>
- <Border BorderBrush="#121212" Height="10" CornerRadius="5" BorderThickness="1,1,1,0">
- <Border BorderBrush="#232323" BorderThickness="0,0,0,1" CornerRadius="5" Background="#2E2E2E">
- <Border Background="#404040" CornerRadius="5" HorizontalAlignment="Left" x:Name="PART_Indicator">
- <Border.Width>
- <MultiBinding Converter="{StaticResource ResourceKey=ThumbIndicatorConverter}">
- <Binding Path="Value" RelativeSource="{RelativeSource AncestorType={x:Type Slider}}" />
- <Binding Path="Minimum" RelativeSource="{RelativeSource AncestorType={x:Type Slider}}" />
- <Binding Path="Maximum" RelativeSource="{RelativeSource AncestorType={x:Type Slider}}" />
- <Binding Path="ActualWidth" ElementName="PART_Track" />
- <Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType={x:Type Slider}}" />
- </MultiBinding>
- </Border.Width>
- </Border>
- </Border>
- </Border>
- <Track x:Name="PART_Track">
- <Track.Thumb>
- <Thumb x:Name="PART_Thumb">
- <Thumb.Template>
- <ControlTemplate TargetType="{x:Type Thumb}">
- <Border BorderBrush="#0A0A0A" BorderThickness="1" CornerRadius="5" Height="10" Width="10" Background="#FFFFFF" />
- </ControlTemplate>
- </Thumb.Template>
- </Thumb>
- </Track.Thumb>
- </Track>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </Window.Resources>
-
- <Border CornerRadius="5">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200" />
- <ColumnDefinition />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="20" />
- <RowDefinition />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="50" />
- </Grid.RowDefinitions>
-
- <Grid Grid.ColumnSpan="2">
- <Grid.Background>
- <LinearGradientBrush EndPoint="0.504,1.5" StartPoint="0.504,0.03">
- <GradientStop Color="#C2C2C2" Offset="0"/>
- <GradientStop Color="#959595" Offset="0.567"/>
- </LinearGradientBrush>
- </Grid.Background>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <Menu Background="Transparent">
- <MenuItem Header="_File">
- <MenuItem Header="_New Playlist"/>
- <MenuItem Header="New _Playlist Folder"/>
- <Separator />
- <MenuItem Header="_Log Out"/>
- <Separator />
- <MenuItem x:Name="ExitMenuButton" Header="_Exit"/>
- </MenuItem>
- <MenuItem Header="_Edit"/>
- <MenuItem Header="_View"/>
- <MenuItem Header="_Playback"/>
- <MenuItem Header="_Help"/>
- </Menu>
-
- <StackPanel Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal">
- <Button Content="Back"/>
- <Button Content="Forward"/>
- <TextBox Width="200" Margin="10,0,0,0"/>
- <Button Content="Search"/>
- </StackPanel>
-
- <Border Grid.Row="2" Grid.ColumnSpan="2" Height="2" BorderThickness="0,0,0,1" BorderBrush="#404040" Background="#A5A5A5" />
- </Grid>
-
-
- <Grid Grid.Row="1">
- <Grid.Background>
- <LinearGradientBrush EndPoint="0.504,1.5" StartPoint="0.504,0.03">
- <GradientStop Color="#ACACAC" Offset="0"/>
- <GradientStop Color="#979797" Offset="0.567"/>
- </LinearGradientBrush>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="20" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <TextBlock Padding="15,0,0,0" Text="Username" FontWeight="Bold">
- <TextBlock.Effect>
- <DropShadowEffect
- ShadowDepth="1"
- Direction="330"
- Color="#DDDDDD"
- Opacity="0.5"
- BlurRadius="1"
- />
- </TextBlock.Effect>
- </TextBlock>
-
- <Border Width="1" Grid.Column="2" Grid.RowSpan="2" BorderThickness="1" BorderBrush="#292929" />
- <Border Height="1" Grid.ColumnSpan="2" Grid.Row="1" BorderBrush="#292929" BorderThickness="0,0,0,1" />
- </Grid>
-
- <Grid Grid.Row="2">
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <TreeView Grid.Row="2" BorderThickness="0" x:Name="SpotifyTree" Background="#474747"
- ItemsSource="{Binding Playlists}" Padding="5">
- <TreeView.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="SpotifyPlaylistTree.xaml" />
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </TreeView.Resources>
- <TreeView.ItemTemplate>
- <HierarchicalDataTemplate ItemsSource="{Binding Children}">
- <TextBlock Padding="2"><TextBlock.Style>
- <Style TargetType="{x:Type TextBlock}">
- <Setter Property="Foreground" Value="#EEEEEE" />
- <Setter Property="Effect">
- <Setter.Value>
- <DropShadowEffect
- ShadowDepth="1"
- Direction="330"
- Color="Black"
- Opacity="0.5"
- BlurRadius="1" />
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TreeViewItem}}}" Value="True">
- <Setter Property="Foreground" Value="#000000" />
- <Setter Property="FontWeight" Value="Bold" />
- <Setter Property="Effect" Value="{x:Null}" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBlock.Style><InlineUIContainer>
- <TextBlock Text="{Binding Name}" />
- </InlineUIContainer></TextBlock>
- </HierarchicalDataTemplate>
- </TreeView.ItemTemplate>
- </TreeView>
-
- <Border Width="1" Grid.Column="1" BorderThickness="1" BorderBrush="#292929" />
- </Grid>
-
- <TabControl Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Background="#313131" ItemsSource="{Binding CurrentView.Tabs}" SelectedIndex="{Binding CurrentView.SelectedTabIndex, Mode=TwoWay}" BorderThickness="0">
- </TabControl>
-
- <Border Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Height="2" Background="#787878" BorderBrush="#292929" BorderThickness="0,1,0,0" />
-
- <Grid Grid.Row="4" Grid.Column="0" Background="#505050" Grid.ColumnSpan="2">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="35" />
- <ColumnDefinition Width="40" />
- <ColumnDefinition Width="35" />
- <ColumnDefinition Width="80" />
- <ColumnDefinition Width="25" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="50" />
- <ColumnDefinition />
- <ColumnDefinition Width="50" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="35" />
- <ColumnDefinition Width="35" />
- </Grid.ColumnDefinitions>
-
- <Button x:Name="PrevButton" Margin="10,0,0,0" IsEnabled="{Binding CanGoBack}">
- <Button.Template>
- <ControlTemplate>
- <Image Height="25" Width="25">
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Setter Property="Source" Value="Images/previous_button.png" />
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="False">
- <Setter Property="Source" Value="Images/previous_button_disabled.png" />
- </DataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True" />
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/previous_button_pressed.png" />
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <ToggleButton x:Name="PlayPauseButton" Grid.Column="1" IsChecked="{Binding IsPlaying, Mode=TwoWay}" Command="{Binding PlayPauseCommand}">
- <ToggleButton.Template>
- <ControlTemplate>
- <Image Height="32">
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False">
- <Setter Property="Source" Value="Images/play_button.png" />
- </DataTrigger>
- <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
- <Setter Property="Source" Value="Images/pause_button.png" />
- </DataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False" />
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/play_button_disabled.png" />
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/pause_button_disabled.png" />
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False" />
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/play_button_pressed.png" />
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/pause_button_pressed.png" />
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </ControlTemplate>
- </ToggleButton.Template>
- </ToggleButton>
- <Button x:Name="NextButton" Grid.Column="2" Margin="0,0,10,0" IsEnabled="{Binding CanGoNext}">
- <Button.Template>
- <ControlTemplate>
- <Image Height="25" Width="25">
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Setter Property="Source" Value="Images/next_button.png" />
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="False">
- <Setter Property="Source" Value="Images/next_button_disabled.png" />
- </DataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True" />
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True" />
- </MultiDataTrigger.Conditions>
- <Setter Property="Source" Value="Images/next_button_pressed.png" />
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Slider x:Name="VolumeSlider" Orientation="Horizontal" Minimum="0" Maximum="100"
- Grid.Column="3" VerticalAlignment="Center"
- Value="{Binding Volume}"/>
-
- <Canvas Grid.Column="4">
- <Path Stroke="White" StrokeThickness="2" Opacity="{Binding Value, ConverterParameter=0, Converter={StaticResource ResourceKey=VolumeBarsConverter}, ElementName=VolumeSlider}" Data="M4,30 A200,50,0,0,0,4,20"/>
- <Path Stroke="White" StrokeThickness="2" Opacity="{Binding Value, ConverterParameter=1, Converter={StaticResource ResourceKey=VolumeBarsConverter}, ElementName=VolumeSlider}" Data="M8,32 A200,55,0,0,0,8,18"/>
- <Path Stroke="White" StrokeThickness="2" Opacity="{Binding Value, ConverterParameter=2, Converter={StaticResource ResourceKey=VolumeBarsConverter}, ElementName=VolumeSlider}" Data="M12,34 A200,60,0,0,0,12,16"/>
- </Canvas>
-
- <Border Grid.Column="5" Width="2" BorderThickness="1,0,0,0" BorderBrush="#343434" Background="#5E5E5E" />
-
- <TextBlock Grid.Column="6" x:Name="SongProgress" Text="00:00" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="#FFFFFF" />
- <Slider x:Name="ProgressSlider" Minimum="0" Maximum="{Binding Track.Length, Mode=OneWay, Converter={StaticResource TimeSpanSecondsConverter}}" Value="{Binding CurrentTime, Mode=OneWay, Converter={StaticResource TimeSpanSecondsConverter}}" Grid.Column="7" Orientation="Horizontal" VerticalAlignment="Center" />
- <TextBlock x:Name="SongTotalLength" Text="00:00" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="8" Foreground="#FFFFFF" />
-
- <Border Grid.Column="9" Width="2" BorderThickness="1,0,0,0" BorderBrush="#343434" Background="#5E5E5E" />
-
- <ToggleButton x:Name="ShuffleButton" Content="Rnd" Grid.Column="10" IsChecked="{Binding Shuffle, Mode=TwoWay}">
- <ToggleButton.Template>
- <ControlTemplate>
- <Image Width="32" Height="32">
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Setter Property="Source" Value="Images/shuffle_button_active.png" />
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False">
- <Setter Property="Source" Value="Images/shuffle_button_inactive.png" />
- </DataTrigger>
- <DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
- <Setter Property="Source" Value="Images/shuffle_button_pressed.png" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </ControlTemplate>
- </ToggleButton.Template>
- </ToggleButton>
- <ToggleButton x:Name="RepeatButton" Content="Rep" Grid.Column="11" IsChecked="{Binding Repeat, Mode=TwoWay}">
- <ToggleButton.Template>
- <ControlTemplate>
- <Image Width="32" Height="32">
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Setter Property="Source" Value="Images/repeat_button_active.png" />
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="False">
- <Setter Property="Source" Value="Images/repeat_button_inactive.png" />
- </DataTrigger>
- <DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
- <Setter Property="Source" Value="Images/repeat_button_pressed.png" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </ControlTemplate>
- </ToggleButton.Template>
- </ToggleButton>
- </Grid>
- </Grid>
- </Border>
-</Window>
View
48 SpotiFire.Client/MainWindow.xaml.cs
@@ -1,48 +0,0 @@
-using System;
-using System.Windows;
-using System.Windows.Threading;
-using SpotiFire.SpotiClient.ViewModels;
-
-namespace SpotiFire.SpotiClient
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- DispatcherTimer timer;
-
- SpotifyViewModel model;
-
- public MainWindow(SpotifyViewModel model)
- {
- this.model = model;
- InitializeComponent();
- DataContext = model;
- model.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(model_PropertyChanged);
- }
-
- void model_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
- {
- if (e.PropertyName == "Playlists")
- {
- //SpotifyTree.ItemsSource = model.Playlists;
- }
- //if (e.PropertyName == "CurrentView")
- // ViewSpace.Child = model.CurrentView.GetView();
- }
-
- private void Window_Loaded(object sender, RoutedEventArgs e)
- {
- //app.OnPlaybackStart += new System.EventHandler<PlaybackEventArgs>(app_OnPlaybackStart);
- timer = new DispatcherTimer(TimeSpan.FromSeconds(0.1), DispatcherPriority.DataBind, new EventHandler(timer_Tick), Dispatcher);
- timer.Start();
- }
-
- private void timer_Tick(object sender, EventArgs args)
- {
- model.UpdateTrackTime();
- }
-
- }
-}
View
23 SpotiFire.Client/PlaybackEventArgs.cs
@@ -1,23 +0,0 @@
-using System;
-
-namespace SpotiFire.SpotiClient
-{
- public class PlaybackEventArgs : EventArgs
- {
- private ServiceReference.Track track;
- private Guid containerId;
- private int index;
-
- public PlaybackEventArgs(ServiceReference.Track track, Guid containerId, int index)
- {
- this.track = track;
- this.containerId = containerId;
- this.index = index;
- }
-
- public ServiceReference.Track Track
- {
- get { return track; }
- }
- }
-}
View
23 SpotiFire.Client/PlaylistTreeItem.cs
@@ -1,23 +0,0 @@
-using SpotiFire.SpotiClient.ServiceReference;
-
-namespace SpotiFire.SpotiClient
-{
- public class PlaylistTreeItem : Playlist
- {
- public PlaylistTreeItem(Playlist playlist, PlaylistTreeItem[] children = null)
- {
- if (children == null)
- children = new PlaylistTreeItem[0];
- Children = children;
-
- this.Description = playlist.Description;
- this.ExtensionData = playlist.ExtensionData;
- this.Id = playlist.Id;
- this.ImageId = playlist.ImageId;
- this.IsColaberativ = playlist.IsColaberativ;
- this.Name = playlist.Name;
- this.Type = playlist.Type;
- }
- public PlaylistTreeItem[] Children { get; private set; }
- }
-}
View
55 SpotiFire.Client/Properties/AssemblyInfo.cs
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SpotiFire.Client")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("SpotiFire.Client")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
View
63 SpotiFire.Client/Properties/Resources.Designer.cs
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.208
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace SpotiFire.SpotiClient.Properties {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SpotiFire.SpotiClient.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
- }
-}
View
117 SpotiFire.Client/Properties/Resources.resx
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root>
View
26 SpotiFire.Client/Properties/Settings.Designer.cs
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.208
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace SpotiFire.SpotiClient.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
View
7 SpotiFire.Client/Properties/Settings.settings
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile>
View
677 SpotiFire.Client/Service References/ServiceReference/Reference.cs
@@ -1,677 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.208
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace SpotiFire.SpotiClient.ServiceReference {
- using System.Runtime.Serialization;
- using System;
-
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationStatus", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- public enum AuthenticationStatus : int {
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- Ok = 0,
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- Bad = 1,
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- RequireLogin = 2,
- }
-
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="Playlist", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- [System.SerializableAttribute()]
- public partial class Playlist : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
- [System.NonSerializedAttribute()]
- private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string DescriptionField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private System.Guid IdField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string ImageIdField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool IsColaberativField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string NameField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private SpotiFire.SpotiClient.ServiceReference.PlaylistType TypeField;
-
- [global::System.ComponentModel.BrowsableAttribute(false)]
- public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
- get {
- return this.extensionDataField;
- }
- set {
- this.extensionDataField = value;
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Description {
- get {
- return this.DescriptionField;
- }
- set {
- if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
- this.DescriptionField = value;
- this.RaisePropertyChanged("Description");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public System.Guid Id {
- get {
- return this.IdField;
- }
- set {
- if ((this.IdField.Equals(value) != true)) {
- this.IdField = value;
- this.RaisePropertyChanged("Id");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string ImageId {
- get {
- return this.ImageIdField;
- }
- set {
- if ((object.ReferenceEquals(this.ImageIdField, value) != true)) {
- this.ImageIdField = value;
- this.RaisePropertyChanged("ImageId");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool IsColaberativ {
- get {
- return this.IsColaberativField;
- }
- set {
- if ((this.IsColaberativField.Equals(value) != true)) {
- this.IsColaberativField = value;
- this.RaisePropertyChanged("IsColaberativ");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Name {
- get {
- return this.NameField;
- }
- set {
- if ((object.ReferenceEquals(this.NameField, value) != true)) {
- this.NameField = value;
- this.RaisePropertyChanged("Name");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public SpotiFire.SpotiClient.ServiceReference.PlaylistType Type {
- get {
- return this.TypeField;
- }
- set {
- if ((this.TypeField.Equals(value) != true)) {
- this.TypeField = value;
- this.RaisePropertyChanged("Type");
- }
- }
- }
-
- public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
- protected void RaisePropertyChanged(string propertyName) {
- System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
- if ((propertyChanged != null)) {
- propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
- }
- }
- }
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="PlaylistType", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- public enum PlaylistType : int {
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- Playlist = 0,
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- FolderStart = 1,
-
- [System.Runtime.Serialization.EnumMemberAttribute()]
- FolderEnd = 2,
- }
-
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="Track", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- [System.SerializableAttribute()]
- public partial class Track : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
- [System.NonSerializedAttribute()]
- private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string AlbumField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private SpotiFire.SpotiClient.ServiceReference.Artist[] ArtistsField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool IsAvailableField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool IsStarredField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private System.TimeSpan LengthField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string NameField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private int PopularityField;
-
- [global::System.ComponentModel.BrowsableAttribute(false)]
- public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
- get {
- return this.extensionDataField;
- }
- set {
- this.extensionDataField = value;
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Album {
- get {
- return this.AlbumField;
- }
- set {
- if ((object.ReferenceEquals(this.AlbumField, value) != true)) {
- this.AlbumField = value;
- this.RaisePropertyChanged("Album");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public SpotiFire.SpotiClient.ServiceReference.Artist[] Artists {
- get {
- return this.ArtistsField;
- }
- set {
- if ((object.ReferenceEquals(this.ArtistsField, value) != true)) {
- this.ArtistsField = value;
- this.RaisePropertyChanged("Artists");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool IsAvailable {
- get {
- return this.IsAvailableField;
- }
- set {
- if ((this.IsAvailableField.Equals(value) != true)) {
- this.IsAvailableField = value;
- this.RaisePropertyChanged("IsAvailable");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool IsStarred {
- get {
- return this.IsStarredField;
- }
- set {
- if ((this.IsStarredField.Equals(value) != true)) {
- this.IsStarredField = value;
- this.RaisePropertyChanged("IsStarred");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public System.TimeSpan Length {
- get {
- return this.LengthField;
- }
- set {
- if ((this.LengthField.Equals(value) != true)) {
- this.LengthField = value;
- this.RaisePropertyChanged("Length");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Name {
- get {
- return this.NameField;
- }
- set {
- if ((object.ReferenceEquals(this.NameField, value) != true)) {
- this.NameField = value;
- this.RaisePropertyChanged("Name");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public int Popularity {
- get {
- return this.PopularityField;
- }
- set {
- if ((this.PopularityField.Equals(value) != true)) {
- this.PopularityField = value;
- this.RaisePropertyChanged("Popularity");
- }
- }
- }
-
- public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
- protected void RaisePropertyChanged(string propertyName) {
- System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
- if ((propertyChanged != null)) {
- propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
- }
- }
- }
-
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="Artist", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- [System.SerializableAttribute()]
- public partial class Artist : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
- [System.NonSerializedAttribute()]
- private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string LinkField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private string NameField;
-
- [global::System.ComponentModel.BrowsableAttribute(false)]
- public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
- get {
- return this.extensionDataField;
- }
- set {
- this.extensionDataField = value;
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Link {
- get {
- return this.LinkField;
- }
- set {
- if ((object.ReferenceEquals(this.LinkField, value) != true)) {
- this.LinkField = value;
- this.RaisePropertyChanged("Link");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public string Name {
- get {
- return this.NameField;
- }
- set {
- if ((object.ReferenceEquals(this.NameField, value) != true)) {
- this.NameField = value;
- this.RaisePropertyChanged("Name");
- }
- }
- }
-
- public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
- protected void RaisePropertyChanged(string propertyName) {
- System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
- if ((propertyChanged != null)) {
- propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
- }
- }
- }
-
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
- [System.Runtime.Serialization.DataContractAttribute(Name="SpotifyStatus", Namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server")]
- [System.SerializableAttribute()]
- public partial class SpotifyStatus : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
- [System.NonSerializedAttribute()]
- private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool CanGoBackField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool CanGoNextField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool CanStartPlaybackField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private SpotiFire.SpotiClient.ServiceReference.Track CurrentTrackField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool IsPlayingField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private System.TimeSpan LengthPlayedField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool RepeatField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private bool ShuffleField;
-
- [System.Runtime.Serialization.OptionalFieldAttribute()]
- private int VolumeField;
-
- [global::System.ComponentModel.BrowsableAttribute(false)]
- public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
- get {
- return this.extensionDataField;
- }
- set {
- this.extensionDataField = value;
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool CanGoBack {
- get {
- return this.CanGoBackField;
- }
- set {
- if ((this.CanGoBackField.Equals(value) != true)) {
- this.CanGoBackField = value;
- this.RaisePropertyChanged("CanGoBack");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool CanGoNext {
- get {
- return this.CanGoNextField;
- }
- set {
- if ((this.CanGoNextField.Equals(value) != true)) {
- this.CanGoNextField = value;
- this.RaisePropertyChanged("CanGoNext");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool CanStartPlayback {
- get {
- return this.CanStartPlaybackField;
- }
- set {
- if ((this.CanStartPlaybackField.Equals(value) != true)) {
- this.CanStartPlaybackField = value;
- this.RaisePropertyChanged("CanStartPlayback");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public SpotiFire.SpotiClient.ServiceReference.Track CurrentTrack {
- get {
- return this.CurrentTrackField;
- }
- set {
- if ((object.ReferenceEquals(this.CurrentTrackField, value) != true)) {
- this.CurrentTrackField = value;
- this.RaisePropertyChanged("CurrentTrack");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool IsPlaying {
- get {
- return this.IsPlayingField;
- }
- set {
- if ((this.IsPlayingField.Equals(value) != true)) {
- this.IsPlayingField = value;
- this.RaisePropertyChanged("IsPlaying");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public System.TimeSpan LengthPlayed {
- get {
- return this.LengthPlayedField;
- }
- set {
- if ((this.LengthPlayedField.Equals(value) != true)) {
- this.LengthPlayedField = value;
- this.RaisePropertyChanged("LengthPlayed");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool Repeat {
- get {
- return this.RepeatField;
- }
- set {
- if ((this.RepeatField.Equals(value) != true)) {
- this.RepeatField = value;
- this.RaisePropertyChanged("Repeat");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public bool Shuffle {
- get {
- return this.ShuffleField;
- }
- set {
- if ((this.ShuffleField.Equals(value) != true)) {
- this.ShuffleField = value;
- this.RaisePropertyChanged("Shuffle");
- }
- }
- }
-
- [System.Runtime.Serialization.DataMemberAttribute()]
- public int Volume {
- get {
- return this.VolumeField;
- }
- set {
- if ((this.VolumeField.Equals(value) != true)) {
- this.VolumeField = value;
- this.RaisePropertyChanged("Volume");
- }
- }
- }
-
- public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
- protected void RaisePropertyChanged(string propertyName) {
- System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
- if ((propertyChanged != null)) {
- propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
- }
- }
- }
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
- [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServiceReference.Spotify", CallbackContract=typeof(SpotiFire.SpotiClient.ServiceReference.SpotifyCallback), SessionMode=System.ServiceModel.SessionMode.Required)]
- public interface Spotify {
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/Spotify/Authenticate", ReplyAction="http://tempuri.org/Spotify/AuthenticateResponse")]
- SpotiFire.SpotiClient.ServiceReference.AuthenticationStatus Authenticate(string password);
-
- [System.ServiceModel.OperationContractAttribute(IsInitiating=false, Action="http://tempuri.org/Spotify/Login", ReplyAction="http://tempuri.org/Spotify/LoginResponse")]
- bool Login(string username, string password);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/Pong")]
- void Pong();
-
- [System.ServiceModel.OperationContractAttribute(IsInitiating=false, Action="http://tempuri.org/Spotify/GetPlaylists", ReplyAction="http://tempuri.org/Spotify/GetPlaylistsResponse")]
- SpotiFire.SpotiClient.ServiceReference.Playlist[] GetPlaylists();
-
- [System.ServiceModel.OperationContractAttribute(IsInitiating=false, Action="http://tempuri.org/Spotify/GetPlaylistTracks", ReplyAction="http://tempuri.org/Spotify/GetPlaylistTracksResponse")]
- SpotiFire.SpotiClient.ServiceReference.Track[] GetPlaylistTracks(System.Guid id);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/PlayPlaylistTrack")]
- void PlayPlaylistTrack(System.Guid playlistId, int position);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/SetShuffle")]
- void SetShuffle(bool random);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/SetRepeat")]
- void SetRepeat(bool repeat);
-
- [System.ServiceModel.OperationContractAttribute(IsInitiating=false, Action="http://tempuri.org/Spotify/GetStatus", ReplyAction="http://tempuri.org/Spotify/GetStatusResponse")]
- SpotiFire.SpotiClient.ServiceReference.SpotifyStatus GetStatus();
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsTerminating=true, IsInitiating=false, Action="http://tempuri.org/Spotify/Exit")]
- void Exit();
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/SetVolume")]
- void SetVolume(int volume);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/PlayPause")]
- void PlayPause();
- }
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
- public interface SpotifyCallback {
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/Ping")]
- void Ping();
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/SongStarted")]
- void SongStarted(SpotiFire.SpotiClient.ServiceReference.Track track, System.Guid containerId, int index);
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/PlaybackStarted")]
- void PlaybackStarted();
-
- [System.ServiceModel.OperationContractAttribute(IsOneWay=true, IsInitiating=false, Action="http://tempuri.org/Spotify/PlaybackEnded")]
- void PlaybackEnded();
- }
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
- public interface SpotifyChannel : SpotiFire.SpotiClient.ServiceReference.Spotify, System.ServiceModel.IClientChannel {
- }
-
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
- public partial class SpotifyClient : System.ServiceModel.DuplexClientBase<SpotiFire.SpotiClient.ServiceReference.Spotify>, SpotiFire.SpotiClient.ServiceReference.Spotify {
-
- public SpotifyClient(System.ServiceModel.InstanceContext callbackInstance) :
- base(callbackInstance) {
- }
-
- public SpotifyClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName) :
- base(callbackInstance, endpointConfigurationName) {
- }
-
- public SpotifyClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName, string remoteAddress) :
- base(callbackInstance, endpointConfigurationName, remoteAddress) {
- }
-
- public SpotifyClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
- base(callbackInstance, endpointConfigurationName, remoteAddress) {
- }
-
- public SpotifyClient(System.ServiceModel.InstanceContext callbackInstance, System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
- base(callbackInstance, binding, remoteAddress) {
- }
-
- public SpotiFire.SpotiClient.ServiceReference.AuthenticationStatus Authenticate(string password) {
- return base.Channel.Authenticate(password);
- }
-
- public bool Login(string username, string password) {
- return base.Channel.Login(username, password);
- }
-
- public void Pong() {
- base.Channel.Pong();
- }
-
- public SpotiFire.SpotiClient.ServiceReference.Playlist[] GetPlaylists() {
- return base.Channel.GetPlaylists();
- }
-
- public SpotiFire.SpotiClient.ServiceReference.Track[] GetPlaylistTracks(System.Guid id) {
- return base.Channel.GetPlaylistTracks(id);
- }
-
- public void PlayPlaylistTrack(System.Guid playlistId, int position) {
- base.Channel.PlayPlaylistTrack(playlistId, position);
- }
-
- public void SetShuffle(bool random) {
- base.Channel.SetShuffle(random);
- }
-
- public void SetRepeat(bool repeat) {
- base.Channel.SetRepeat(repeat);
- }
-
- public SpotiFire.SpotiClient.ServiceReference.SpotifyStatus GetStatus() {
- return base.Channel.GetStatus();
- }
-
- public void Exit() {
- base.Channel.Exit();
- }
-
- public void SetVolume(int volume) {
- base.Channel.SetVolume(volume);
- }
-
- public void PlayPause() {
- base.Channel.PlayPause();
- }
- }
-}
View
34 SpotiFire.Client/Service References/ServiceReference/Reference.svcmap
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="40638acc-85b2-48c7-a076-f59e66cc01cc" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
- <ClientOptions>
- <GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
- <EnableDataBinding>true</EnableDataBinding>
- <ExcludedTypes />
- <ImportXmlTypes>false</ImportXmlTypes>
- <GenerateInternalTypes>false</GenerateInternalTypes>
- <GenerateMessageContracts>false</GenerateMessageContracts>
- <NamespaceMappings />
- <CollectionMappings />
- <GenerateSerializableTypes>true</GenerateSerializableTypes>
- <Serializer>Auto</Serializer>
- <UseSerializerForFaults>true</UseSerializerForFaults>
- <ReferenceAllAssemblies>true</ReferenceAllAssemblies>
- <ReferencedAssemblies />
- <ReferencedDataContractTypes />
- <ServiceContractMappings />
- </ClientOptions>
- <MetadataSources>
- <MetadataSource Address="http://localhost:8081/spotifire/metadata" Protocol="http" SourceId="1" />
- </MetadataSources>
- <Metadata>
- <MetadataFile FileName="metadata.xsd" MetadataType="Schema" ID="acef8c18-179e-4a94-90cf-212a63c1afd9" SourceId="1" SourceUrl="http://localhost:8081/spotifire/metadata?xsd=xsd0" />
- <MetadataFile FileName="metadata1.xsd" MetadataType="Schema" ID="d3dab9bc-07f1-45be-a60f-2f87ac31e295" SourceId="1" SourceUrl="http://localhost:8081/spotifire/metadata?xsd=xsd1" />
- <MetadataFile FileName="metadata2.xsd" MetadataType="Schema" ID="5ed92486-972d-42c2-ac9d-9c39810ab37e" SourceId="1" SourceUrl="http://localhost:8081/spotifire/metadata?xsd=xsd2" />
- <MetadataFile FileName="SpotifireServer.wsdl" MetadataType="Wsdl" ID="491467e7-ae45-4a85-a114-831fb5f20b3c" SourceId="1" SourceUrl="http://localhost:8081/spotifire/metadata?wsdl" />
- <MetadataFile FileName="metadata.disco" MetadataType="Disco" ID="8d004147-6ca7-4af2-a087-4e8a16f1c4af" SourceId="1" SourceUrl="http://localhost:8081/spotifire/metadata?disco" />
- </Metadata>
- <Extensions>
- <ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
- <ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
- </Extensions>
-</ReferenceGroup>
View
10 ...rvice References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.AuthenticationStatus.datasource
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- This file is automatically generated by Visual Studio .Net. It is
- used to store generic object data source configuration information.
- Renaming the file extension or editing the content of this file may
- cause the file to be unrecognizable by the program.
--->
-<GenericObjectDataSource DisplayName="AuthenticationStatus" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
- <TypeInfo>SpotiFire.SpotiClient.ServiceReference.AuthenticationStatus, Service References.ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
-</GenericObjectDataSource>
View
10 ...re.Client/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.Playlist.datasource
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- This file is automatically generated by Visual Studio .Net. It is
- used to store generic object data source configuration information.
- Renaming the file extension or editing the content of this file may
- cause the file to be unrecognizable by the program.
--->
-<GenericObjectDataSource DisplayName="Playlist" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
- <TypeInfo>SpotiFire.SpotiClient.ServiceReference.Playlist, Service References.ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
-</GenericObjectDataSource>
View
10 ...ient/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.SpotifyStatus.datasource
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- This file is automatically generated by Visual Studio .Net. It is
- used to store generic object data source configuration information.
- Renaming the file extension or editing the content of this file may
- cause the file to be unrecognizable by the program.
--->
-<GenericObjectDataSource DisplayName="SpotifyStatus" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
- <TypeInfo>SpotiFire.SpotiClient.ServiceReference.SpotifyStatus, Service References.ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
-</GenericObjectDataSource>
View
10 ...iFire.Client/Service References/ServiceReference/SpotiFire.SpotiClient.ServiceReference.Track.datasource
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- This file is automatically generated by Visual Studio .Net. It is
- used to store generic object data source configuration information.
- Renaming the file extension or editing the content of this file may
- cause the file to be unrecognizable by the program.
--->
-<GenericObjectDataSource DisplayName="Track" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
- <TypeInfo>SpotiFire.SpotiClient.ServiceReference.Track, Service References.ServiceReference.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
-</GenericObjectDataSource>
View
288 SpotiFire.Client/Service References/ServiceReference/SpotifireServer.wsdl
@@ -1,288 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SpotifireServer" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsp:Policy wsu:Id="NetTcpContextBinding_Spotify_policy">
- <wsp:ExactlyOne>
- <wsp:All>
- <IncludeContext ProtectionLevel="Sign" xmlns="http://schemas.microsoft.com/ws/2006/05/context" />
- <wsrm:RMAssertion xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy">
- <wsrm:InactivityTimeout Milliseconds="600000" />
- <wsrm:AcknowledgementInterval Milliseconds="200" />
- </wsrm:RMAssertion>
- <msb:BinaryEncoding xmlns:msb="http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1" />
- <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <wsp:Policy>
- <sp:TransportToken>
- <wsp:Policy>
- <msf:WindowsTransportSecurity xmlns:msf="http://schemas.microsoft.com/ws/2006/05/framing/policy">
- <msf:ProtectionLevel>EncryptAndSign</msf:ProtectionLevel>
- </msf:WindowsTransportSecurity>
- </wsp:Policy>
- </sp:TransportToken>
- <sp:AlgorithmSuite>
- <wsp:Policy>
- <sp:Basic256 />
- </wsp:Policy>
- </sp:AlgorithmSuite>
- <sp:Layout>
- <wsp:Policy>
- <sp:Strict />
- </wsp:Policy>
- </sp:Layout>
- </wsp:Policy>
- </sp:TransportBinding>
- <wsaw:UsingAddressing />
- </wsp:All>
- </wsp:ExactlyOne>
- </wsp:Policy>
- <wsdl:types>
- <xsd:schema targetNamespace="http://tempuri.org/Imports">
- <xsd:import schemaLocation="http://localhost:8081/spotifire/metadata?xsd=xsd2" namespace="http://tempuri.org/" />
- <xsd:import schemaLocation="http://localhost:8081/spotifire/metadata?xsd=xsd0" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
- <xsd:import schemaLocation="http://localhost:8081/spotifire/metadata?xsd=xsd1" namespace="http://schemas.datacontract.org/2004/07/SpotiFire.Server" />
- </xsd:schema>
- </wsdl:types>
- <wsdl:message name="Spotify_Authenticate_InputMessage">
- <wsdl:part name="parameters" element="tns:Authenticate" />
- </wsdl:message>
- <wsdl:message name="Spotify_Authenticate_OutputMessage">
- <wsdl:part name="parameters" element="tns:AuthenticateResponse" />
- </wsdl:message>
- <wsdl:message name="Spotify_Login_InputMessage">
- <wsdl:part name="parameters" element="tns:Login" />
- </wsdl:message>
- <wsdl:message name="Spotify_Login_OutputMessage">
- <wsdl:part name="parameters" element="tns:LoginResponse" />
- </wsdl:message>
- <wsdl:message name="Spotify_Pong_InputMessage">
- <wsdl:part name="parameters" element="tns:Pong" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetPlaylists_InputMessage">
- <wsdl:part name="parameters" element="tns:GetPlaylists" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetPlaylists_OutputMessage">
- <wsdl:part name="parameters" element="tns:GetPlaylistsResponse" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetPlaylistTracks_InputMessage">
- <wsdl:part name="parameters" element="tns:GetPlaylistTracks" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetPlaylistTracks_OutputMessage">
- <wsdl:part name="parameters" element="tns:GetPlaylistTracksResponse" />
- </wsdl:message>
- <wsdl:message name="Spotify_PlayPlaylistTrack_InputMessage">
- <wsdl:part name="parameters" element="tns:PlayPlaylistTrack" />
- </wsdl:message>
- <wsdl:message name="Spotify_SetShuffle_InputMessage">
- <wsdl:part name="parameters" element="tns:SetShuffle" />
- </wsdl:message>
- <wsdl:message name="Spotify_SetRepeat_InputMessage">
- <wsdl:part name="parameters" element="tns:SetRepeat" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetStatus_InputMessage">
- <wsdl:part name="parameters" element="tns:GetStatus" />
- </wsdl:message>
- <wsdl:message name="Spotify_GetStatus_OutputMessage">
- <wsdl:part name="parameters" element="tns:GetStatusResponse" />
- </wsdl:message>
- <wsdl:message name="Spotify_Exit_InputMessage">
- <wsdl:part name="parameters" element="tns:Exit" />
- </wsdl:message>
- <wsdl:message name="Spotify_SetVolume_InputMessage">
- <wsdl:part name="parameters" element="tns:SetVolume" />
- </wsdl:message>
- <wsdl:message name="Spotify_PlayPause_InputMessage">
- <wsdl:part name="parameters" element="tns:PlayPause" />
- </wsdl:message>
- <wsdl:message name="Spotify_Ping_OutputCallbackMessage">
- <wsdl:part name="parameters" element="tns:Ping" />
- </wsdl:message>
- <wsdl:message name="Spotify_SongStarted_OutputCallbackMessage">
- <wsdl:part name="parameters" element="tns:SongStarted" />
- </wsdl:message>
- <wsdl:message name="Spotify_PlaybackStarted_OutputCallbackMessage">
- <wsdl:part name="parameters" element="tns:PlaybackStarted" />
- </wsdl:message>
- <wsdl:message name="Spotify_PlaybackEnded_OutputCallbackMessage">
- <wsdl:part name="parameters" element="tns:PlaybackEnded" />
- </wsdl:message>
- <wsdl:portType msc:usingSession="true" name="Spotify">
- <wsdl:operation msc:isInitiating="true" msc:isTerminating="false" name="Authenticate">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/Authenticate" message="tns:Spotify_Authenticate_InputMessage" />
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/AuthenticateResponse" message="tns:Spotify_Authenticate_OutputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="Login">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/Login" message="tns:Spotify_Login_InputMessage" />
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/LoginResponse" message="tns:Spotify_Login_OutputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="Pong">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/Pong" message="tns:Spotify_Pong_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="GetPlaylists">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/GetPlaylists" message="tns:Spotify_GetPlaylists_InputMessage" />
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/GetPlaylistsResponse" message="tns:Spotify_GetPlaylists_OutputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="GetPlaylistTracks">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/GetPlaylistTracks" message="tns:Spotify_GetPlaylistTracks_InputMessage" />
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/GetPlaylistTracksResponse" message="tns:Spotify_GetPlaylistTracks_OutputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="PlayPlaylistTrack">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/PlayPlaylistTrack" message="tns:Spotify_PlayPlaylistTrack_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="SetShuffle">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/SetShuffle" message="tns:Spotify_SetShuffle_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="SetRepeat">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/SetRepeat" message="tns:Spotify_SetRepeat_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="GetStatus">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/GetStatus" message="tns:Spotify_GetStatus_InputMessage" />
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/GetStatusResponse" message="tns:Spotify_GetStatus_OutputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="true" name="Exit">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/Exit" message="tns:Spotify_Exit_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="SetVolume">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/SetVolume" message="tns:Spotify_SetVolume_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="PlayPause">
- <wsdl:input wsaw:Action="http://tempuri.org/Spotify/PlayPause" message="tns:Spotify_PlayPause_InputMessage" />
- </wsdl:operation>
- <wsdl:operation msc:isInitiating="false" msc:isTerminating="false" name="Ping">
- <wsdl:output wsaw:Action="http://tempuri.org/Spotify/Ping" message="tns:Spotify_Ping_OutputCallbackMessage" />