├── src
├── AllJoynClientLib.sln.GhostDoc.user.dic
├── AllJoynSampleApp
│ ├── Assets
│ │ ├── HueIcon.png
│ │ ├── Brightness.png
│ │ ├── Saturation.png
│ │ ├── StoreLogo.png
│ │ ├── Surface-Dial.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Wide310x150Logo.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ └── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── AllJoynSampleApp_StoreKey.pfx
│ ├── AllJoynSampleApp_TemporaryKey.pfx
│ ├── App.xaml
│ ├── project.json
│ ├── Converters
│ │ ├── BoolToCollapsedConverter.cs
│ │ ├── TimeSpanConverter.cs
│ │ ├── BoolToVisibilityConverter.cs
│ │ └── NullToCollapsedConverter.cs
│ ├── AboutPage.xaml
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Default.rd.xml
│ ├── Controls
│ │ ├── TemplatePickerContentControl.cs
│ │ ├── ColorPicker.xaml
│ │ ├── BrightnessPicker.cs
│ │ ├── ColorRangePicker.cs
│ │ ├── ColorPicker.xaml.cs
│ │ └── ColorTemperaturePicker.cs
│ ├── ViewModels
│ │ ├── SwitchVM.cs
│ │ ├── PhilipsHueBridgeVM.cs
│ │ ├── CurrentHumidityVM.cs
│ │ ├── GenericCommand.cs
│ │ ├── CurrentTemperatureVM.cs
│ │ ├── ViewModelBase.cs
│ │ ├── DeviceVMBase .cs
│ │ ├── MainViewModel.cs
│ │ └── LightVM.cs
│ ├── AboutPage.xaml.cs
│ ├── DeviceViews
│ │ ├── SwitchClientView.xaml
│ │ ├── SwitchClientView.xaml.cs
│ │ ├── PhilipsHueBridgeView.xaml.cs
│ │ ├── HumidityClientView.xaml
│ │ ├── TemperatureClientVIew.xaml
│ │ ├── HumidityClientView.xaml.cs
│ │ ├── TemperatureClientVIew.xaml.cs
│ │ ├── PhilipsHueBridgeView.xaml
│ │ ├── AllPlayClientView.xaml.cs
│ │ ├── LightClientView.xaml
│ │ └── LightClientView.xaml.cs
│ ├── DevicePlugins
│ │ └── PhilipsHueDSB.cs
│ ├── Package.appxmanifest
│ ├── ThrottleTask.cs
│ ├── TemplateTypeSelector.cs
│ ├── AboutText.rtf
│ ├── MainPage.xaml.cs
│ └── App.xaml.cs
├── Nuget
│ ├── build.cmd
│ └── dotMorten.AllJoyn.AllJoynClientLib.nuspec
├── AllJoynDeviceLib
│ ├── Devices
│ │ ├── UnknownClient.cs
│ │ ├── AllPlay
│ │ │ ├── ShuffleMode.cs
│ │ │ ├── LoopMode.cs
│ │ │ ├── ZoneChangedEventArgs.cs
│ │ │ ├── PlayerReadyEventArgs.cs
│ │ │ ├── MediaState.cs
│ │ │ ├── SlaveStateEventArgs.cs
│ │ │ ├── PlaybackErrorEventArgs.cs
│ │ │ ├── Playlist.cs
│ │ │ ├── PlayerInfo.cs
│ │ │ ├── ZoneInfo.cs
│ │ │ ├── EnabledControls.cs
│ │ │ ├── PlayerClient.cs
│ │ │ ├── PlayState.cs
│ │ │ ├── ZoneManager.cs
│ │ │ ├── Mcu.cs
│ │ │ ├── MediaPlayer.Signals.cs
│ │ │ ├── Media.cs
│ │ │ ├── Volume.cs
│ │ │ └── Introspection.xml
│ │ ├── Switch
│ │ │ ├── ZigBeeDsbSwitch.cs
│ │ │ ├── SwitchClient.cs
│ │ │ └── HaeSwitch.cs
│ │ ├── SmartSpaces
│ │ │ ├── CurrentHumidityClient.cs
│ │ │ └── CurrentTemperatureClient.cs
│ │ ├── LSF
│ │ │ └── LightClient.Details.cs
│ │ ├── Extensions.cs
│ │ └── DeviceClient.cs
│ ├── project.json
│ ├── stylecop.json
│ ├── GlobalSuppressions.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── AllJoynDeviceLib.rd.xml
│ ├── AllJoynServiceException.cs
│ ├── AllJoynClientLib.csproj
│ └── DeviceManager.cs
└── AllJoynClientLib.sln
├── README.md
└── .gitignore
/src/AllJoynClientLib.sln.GhostDoc.user.dic:
--------------------------------------------------------------------------------
1 | alljoyn
2 | playlists
3 |
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/HueIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/HueIcon.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Brightness.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Brightness.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Saturation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Saturation.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Surface-Dial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Surface-Dial.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/AllJoynSampleApp_StoreKey.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/AllJoynSampleApp_StoreKey.pfx
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/AllJoynSampleApp_TemporaryKey.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/AllJoynSampleApp_TemporaryKey.pfx
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotMorten/AllJoynClientLib/HEAD/src/AllJoynSampleApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/src/Nuget/build.cmd:
--------------------------------------------------------------------------------
1 | XCOPY ..\AllJoynDeviceLib\bin\Release\AllJoynClientLib.dll package\lib\uap10.0\ /Y
2 | XCOPY dotMorten.AllJoyn.AllJoynClientLib.nuspec package\ /Y
3 | nuget pack package\dotMorten.AllJoyn.AllJoynClientLib.nuspec
4 | RMDIR package /S /Q
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/UnknownClient.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices
2 | {
3 | ///
4 | /// Unknown Device.
5 | ///
6 | ///
7 | public class UnknownClient : DeviceClient
8 | {
9 | internal UnknownClient(DeviceProviders.IService service) : base(service)
10 | {
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/ShuffleMode.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// Playlist shuffle mode
5 | ///
6 | public enum ShuffleMode
7 | {
8 | ///
9 | /// No shuffleling
10 | ///
11 | Linear,
12 |
13 | ///
14 | /// Shuffle
15 | ///
16 | Shuffle
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "dotMorten.AllJoyn.DeviceProviders": "1.1.1",
4 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
5 | "Microsoft.Toolkit.Uwp.UI.Controls": "1.0.0"
6 | },
7 | "frameworks": {
8 | "uap10.0": {}
9 | },
10 | "runtimes": {
11 | "win10-arm": {},
12 | "win10-arm-aot": {},
13 | "win10-x86": {},
14 | "win10-x86-aot": {},
15 | "win10-x64": {},
16 | "win10-x64-aot": {}
17 | }
18 | }
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "dotMorten.AllJoyn.DeviceProviders": "1.1.1",
4 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
5 | "StyleCop.Analyzers": {
6 | "version": "1.0.0",
7 | "suppressParent": "all"
8 | }
9 | },
10 | "frameworks": {
11 | "uap10.0": {}
12 | },
13 | "runtimes": {
14 | "win10-arm": {},
15 | "win10-arm-aot": {},
16 | "win10-x86": {},
17 | "win10-x86-aot": {},
18 | "win10-x64": {},
19 | "win10-x64-aot": {}
20 | }
21 | }
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/LoopMode.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// Playlist loop mode
5 | ///
6 | public enum LoopMode
7 | {
8 | ///
9 | /// Don't loop
10 | ///
11 | None,
12 |
13 | ///
14 | /// Repeat the current track
15 | ///
16 | One,
17 |
18 | ///
19 | /// Repeat the entire playlist
20 | ///
21 | All
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/ZoneChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// Event args for the event.
5 | ///
6 | ///
7 | public sealed class ZoneChangedEventArgs : System.EventArgs
8 | {
9 | /*
10 |
11 |
12 |
13 | */
14 | }
15 | }
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/PlayerReadyEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// Event args for the event.
5 | ///
6 | public class PlayerReadyEventArgs
7 | {
8 | internal PlayerReadyEventArgs(ulong resumeLatency)
9 | {
10 | ResumeLatency = resumeLatency;
11 | }
12 |
13 | ///
14 | /// Gets the resume latency.
15 | ///
16 | /// The resume latency.
17 | public ulong ResumeLatency { get; }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/MediaState.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// MediaState enumeration
5 | ///
6 | public enum MediaState
7 | {
8 | ///
9 | /// Stopped
10 | ///
11 | Stopped,
12 |
13 | ///
14 | /// Transitioning between tracks
15 | ///
16 | Transitioning,
17 |
18 | ///
19 | /// Buffering
20 | ///
21 | Buffering,
22 |
23 | ///
24 | /// Playing
25 | ///
26 | Playing
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/SlaveStateEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace AllJoynClientLib.Devices.AllPlay
2 | {
3 | ///
4 | /// The state of a slave player
5 | ///
6 | ///
7 | public class SlaveStateEventArgs : System.EventArgs
8 | {
9 | // TODO
10 | /*
11 |
12 |
13 |
14 |
15 |
16 |
17 | * */
18 | }
19 | }
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/stylecop.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
3 | "settings": {
4 | "documentationRules": {
5 | "companyName": "Morten Nielsen",
6 | "copyrightText": "Copyright (c) {companyName}. All Rights Reserved",
7 | "documentInternalElements": false,
8 | "documentExposedElements": false
9 | },
10 | "orderingRules": {
11 | "elementOrder": [
12 | "constant"
13 | ],
14 | "usingDirectivesPlacement": "outsideNamespace"
15 | },
16 | "indentation": {
17 | "indentationSize": 4,
18 | "tabSize": 4,
19 | "useTabs": false
20 | },
21 | "readabilityRules": {
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Converters/BoolToCollapsedConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Windows.UI.Xaml;
7 | using Windows.UI.Xaml.Data;
8 |
9 | namespace AllJoynSampleApp.Converters
10 | {
11 | public class BoolToCollapsedConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | if(value is bool)
16 | {
17 | return (bool)value ? Visibility.Collapsed : Visibility.Visible;
18 | }
19 | return Visibility.Visible;
20 | }
21 |
22 | public object ConvertBack(object value, Type targetType, object parameter, string language)
23 | {
24 | throw new NotImplementedException();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/AboutPage.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1117:Parameters must be on same line or separate lines", Justification = "Reviewed")]
2 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1101:Prefix local calls with this", Justification = "Following .NET Coding Guidelines")]
3 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1309:Field names must not begin with underscore", Justification = ".NET Coding Guidelines uses underscore obn private fields")]
4 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1128:Put constructor initializers on their own line", Justification = "Reviewed")]
5 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1633:File must have header", Justification = "Reviewed")]
--------------------------------------------------------------------------------
/src/AllJoynSampleApp/Converters/TimeSpanConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Windows.UI.Xaml.Data;
7 |
8 | namespace AllJoynSampleApp.Converters
9 | {
10 | public class TimeSpanConverter : IValueConverter
11 | {
12 | public object Convert(object value, Type targetType, object parameter, string language)
13 | {
14 | if(value is TimeSpan)
15 | {
16 | var ts = (TimeSpan)value;
17 | if (ts.Hours > 0)
18 | return ts.ToString("h\\:mm\\:ss");
19 | else
20 | return ts.ToString("m\\:ss");
21 | }
22 | return value;
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, string language)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Nuget/dotMorten.AllJoyn.AllJoynClientLib.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | dotMorten.AllJoyn.AllJoynClientLib
5 | 1.1.0
6 | AllJoyn Device Client Library
7 | Morten Nielsen
8 | Morten Nielsen
9 | https://github.com/dotMorten/AllJoynClientLib
10 | false
11 | An Universal Windows apps (UWP) Device Client Library for various common AllJoyn devices.
12 | For the Universal Windows Platform (Windows 10).
13 | Copyright (c) Microsoft Corporation. All rights reserved.
14 | AllJoyn IOT C# C++ Windows UWP UAP Universal Platform
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/AllJoynDeviceLib/Devices/AllPlay/PlaybackErrorEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using DeviceProviders;
5 |
6 | namespace AllJoynClientLib.Devices.AllPlay
7 | {
8 | ///
9 | /// Event argument for the event.
10 | ///
11 | public sealed class PlaybackErrorEventArgs : EventArgs
12 | {
13 | internal PlaybackErrorEventArgs(IList