Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
...
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 13 files changed
  • 0 commit comments
  • 1 contributor
View
175 SignalR.Client.NetMF.Samples/GPIOButtonInputProvider.cs
@@ -0,0 +1,175 @@
+using System;
+using Microsoft.SPOT;
+using Microsoft.SPOT.Input;
+using Microsoft.SPOT.Hardware;
+using Microsoft.SPOT.Presentation;
+
+namespace SignalR.Client.NetMF.Samples
+{
+ /// <summary>
+ /// Uses the hardware provider to get the pins for handling button input.
+ /// </summary>
+ public sealed class GPIOButtonInputProvider
+ {
+ public readonly Dispatcher Dispatcher;
+
+ private ButtonPad[] buttons;
+ private DispatcherOperationCallback callback;
+ private InputProviderSite site;
+ private PresentationSource source;
+
+ /// <summary>
+ /// Maps GPIOs to Buttons that can be processed by
+ /// Microsoft.SPOT.Presentation.
+ /// </summary>
+ /// <param name="source"></param>
+ public GPIOButtonInputProvider(PresentationSource source)
+ {
+ // Set the input source.
+ this.source = source;
+
+ // Register our object as an input source with the input manager and
+ // get back an InputProviderSite object which forwards the input
+ // report to the input manager, which then places the input in the
+ // staging area.
+ site = InputManager.CurrentInputManager.RegisterInputProvider(this);
+
+ // Create a delegate that refers to the InputProviderSite object's
+ // ReportInput method.
+ callback = new DispatcherOperationCallback(delegate(object report)
+ {
+#if MF_FRAMEWORK_VERSION_V3_0
+ return site.ReportInput((InputReport)report);
+#else
+ InputReportArgs args = (InputReportArgs)report;
+ return site.ReportInput(args.Device, args.Report);
+#endif
+ });
+ Dispatcher = Dispatcher.CurrentDispatcher;
+
+ // Create a hardware provider.
+ HardwareProvider hwProvider = new HardwareProvider();
+
+ // Create the pins that are needed for the buttons. Default their
+ // values for the emulator.
+ Cpu.Pin pinLeft = Cpu.Pin.GPIO_Pin0;
+ Cpu.Pin pinRight = Cpu.Pin.GPIO_Pin1;
+ Cpu.Pin pinUp = Cpu.Pin.GPIO_Pin2;
+ Cpu.Pin pinSelect = Cpu.Pin.GPIO_Pin3;
+ Cpu.Pin pinDown = Cpu.Pin.GPIO_Pin4;
+
+ // Use the hardware provider to get the pins. If the left pin is
+ // not set, assume none of the pins are set, and set the left pin
+ // back to the default emulator value.
+ if ((pinLeft = hwProvider.GetButtonPins(Button.VK_LEFT)) ==
+ Cpu.Pin.GPIO_NONE)
+ pinLeft = Cpu.Pin.GPIO_Pin0;
+ else
+ {
+ pinRight = hwProvider.GetButtonPins(Button.VK_RIGHT);
+ pinUp = hwProvider.GetButtonPins(Button.VK_UP);
+ pinSelect = hwProvider.GetButtonPins(Button.VK_SELECT);
+ pinDown = hwProvider.GetButtonPins(Button.VK_DOWN);
+ }
+
+ // Allocate button pads and assign the (emulated) hardware pins as
+ // input from specific buttons.
+ ButtonPad[] buttons = new ButtonPad[]
+ {
+ // Associate the buttons to the pins as discovered or set above
+ new ButtonPad(this, Button.VK_LEFT , pinLeft),
+ new ButtonPad(this, Button.VK_RIGHT , pinRight),
+ new ButtonPad(this, Button.VK_UP , pinUp),
+ new ButtonPad(this, Button.VK_SELECT, pinSelect),
+ new ButtonPad(this, Button.VK_DOWN , pinDown),
+ };
+
+ this.buttons = buttons;
+ }
+
+ /// <summary>
+ /// Represents a button pad on the emulated device, containing five
+ /// buttons for user input.
+ /// </summary>
+ internal class ButtonPad : IDisposable
+ {
+ private Button button;
+ private InterruptPort port;
+ private GPIOButtonInputProvider sink;
+ private ButtonDevice buttonDevice;
+
+ /// <summary>
+ /// Constructs a ButtonPad object that handles the emulated
+ /// hardware's button interrupts.
+ /// </summary>
+ /// <param name="sink"></param>
+ /// <param name="button"></param>
+ /// <param name="pin"></param>
+ public ButtonPad(GPIOButtonInputProvider sink, Button button,
+ Cpu.Pin pin)
+ {
+ this.sink = sink;
+ this.button = button;
+#if !MF_FRAMEWORK_VERSION_V3_0
+ this.buttonDevice = InputManager.CurrentInputManager.ButtonDevice;
+#endif
+
+ /// Do not set an InterruptPort with GPIO_NONE.
+ if (pin != Cpu.Pin.GPIO_NONE)
+ {
+ // When this GPIO pin is true, call the Interrupt method.
+ port = new InterruptPort(pin, true,
+ Port.ResistorMode.PullUp,
+ Port.InterruptMode.InterruptEdgeBoth);
+ port.OnInterrupt += new NativeEventHandler(this.Interrupt);
+ }
+ }
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ // dispose managed resources
+ if (port != null)
+ {
+ port.Dispose();
+ port = null;
+ }
+ }
+ // free native resources
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ /// <summary>
+ /// Handles an interrupt.
+ /// </summary>
+ /// <param name="data1"></param>
+ /// <param name="data2"></param>
+ /// <param name="time"></param>
+#if MF_FRAMEWORK_VERSION_V3_0
+ void Interrupt(uint data1, uint data2, TimeSpan time)
+#else
+ void Interrupt(uint data1, uint data2, DateTime time)
+#endif
+ {
+ RawButtonActions action = (data2 != 0) ?
+ RawButtonActions.ButtonUp : RawButtonActions.ButtonDown;
+
+ RawButtonInputReport report = new RawButtonInputReport(
+ sink.source, time, button, action);
+
+ // Queue the button press to the input provider site.
+#if MF_FRAMEWORK_VERSION_V3_0
+ sink.Dispatcher.BeginInvoke(sink.callback, report);
+#else
+ sink.Dispatcher.BeginInvoke(sink.callback, new InputReportArgs(buttonDevice, report));
+#endif
+ }
+ }
+ }
+}
View
66 SignalR.Client.NetMF.Samples/Program.cs
@@ -0,0 +1,66 @@
+using System;
+
+using Microsoft.SPOT;
+using Microsoft.SPOT.Input;
+using Microsoft.SPOT.Presentation;
+using Microsoft.SPOT.Presentation.Controls;
+
+namespace SignalR.Client.NetMF.Samples
+{
+ public class Program : Microsoft.SPOT.Application
+ {
+ public static void Main()
+ {
+ Program myApplication = new Program();
+
+ Window mainWindow = myApplication.CreateWindow();
+
+ // Create the object that configures the GPIO pins to buttons.
+ GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
+
+ // Start the application
+ myApplication.Run(mainWindow);
+ }
+
+ private Window mainWindow;
+
+ public Window CreateWindow()
+ {
+ // Create a window object and set its size to the
+ // size of the display.
+ mainWindow = new Window();
+ mainWindow.Height = SystemMetrics.ScreenHeight;
+ mainWindow.Width = SystemMetrics.ScreenWidth;
+
+ // Create a single text control.
+ Text text = new Text();
+
+ text.Font = Resources.GetFont(Resources.FontResources.small);
+ text.TextContent = Resources.GetString(Resources.StringResources.String1);
+ text.HorizontalAlignment = Microsoft.SPOT.Presentation.HorizontalAlignment.Center;
+ text.VerticalAlignment = Microsoft.SPOT.Presentation.VerticalAlignment.Center;
+
+ // Add the text control to the window.
+ mainWindow.Child = text;
+
+ // Connect the button handler to all of the buttons.
+ mainWindow.AddHandler(Buttons.ButtonUpEvent, new RoutedEventHandler(OnButtonUp), false);
+
+ // Set the window visibility to visible.
+ mainWindow.Visibility = Visibility.Visible;
+
+ // Attach the button focus to the window.
+ Buttons.Focus(mainWindow);
+
+ return mainWindow;
+ }
+
+ private void OnButtonUp(object sender, RoutedEventArgs evt)
+ {
+ ButtonEventArgs e = (ButtonEventArgs)evt;
+
+ // Print the button code to the Visual Studio output window.
+ Debug.Print(e.Button.ToString());
+ }
+ }
+}
View
25 SignalR.Client.NetMF.Samples/Properties/AssemblyInfo.cs
@@ -0,0 +1,25 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("SignalR.Client.NetMF.Samples")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("SignalR.Client.NetMF.Samples")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
View
47 SignalR.Client.NetMF.Samples/Resources.Designer.cs
@@ -0,0 +1,47 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.42
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace SignalR.Client.NetMF.Samples
+{
+
+ internal class Resources
+ {
+ private static System.Resources.ResourceManager manager;
+ internal static System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((Resources.manager == null))
+ {
+ Resources.manager = new System.Resources.ResourceManager("SignalR.Client.NetMF.Samples.Resources", typeof(Resources).Assembly);
+ }
+ return Resources.manager;
+ }
+ }
+ internal static Microsoft.SPOT.Font GetFont(Resources.FontResources id)
+ {
+ return ((Microsoft.SPOT.Font)(Microsoft.SPOT.ResourceUtility.GetObject(ResourceManager, id)));
+ }
+ internal static string GetString(Resources.StringResources id)
+ {
+ return ((string)(Microsoft.SPOT.ResourceUtility.GetObject(ResourceManager, id)));
+ }
+ [System.SerializableAttribute()]
+ internal enum StringResources : short
+ {
+ String1 = 1228,
+ }
+ [System.SerializableAttribute()]
+ internal enum FontResources : short
+ {
+ small = 13070,
+ }
+ }
+}
View
127 SignalR.Client.NetMF.Samples/Resources.resx
@@ -0,0 +1,127 @@
+<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <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" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </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" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </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>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="small" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>resources\small.tinyfnt;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="String1" xml:space="preserve">
+ <value>Hello World!</value>
+ </data>
+</root>
View
BIN SignalR.Client.NetMF.Samples/Resources/small.tinyfnt
Binary file not shown.
View
70 SignalR.Client.NetMF.Samples/SignalR.Client.NetMF.Samples.csproj
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <AssemblyName>SignalR.Client.NetMF.Samples</AssemblyName>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>SignalR.Client.NetMF.Samples</RootNamespace>
+ <ProjectTypeGuids>{b69e3092-b931-443c-abe7-7e7b65f2a37f};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{DEC00EF4-78F5-4587-BE21-352EBE76199F}</ProjectGuid>
+ <TargetFrameworkVersion>v4.1</TargetFrameworkVersion>
+ <NetMfTargetsBaseDir Condition="'$(NetMfTargetsBaseDir)'==''">$(MSBuildExtensionsPath32)\Microsoft\.NET Micro Framework\</NetMfTargetsBaseDir>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <Import Project="$(NetMfTargetsBaseDir)$(TargetFrameworkVersion)\CSharp.Targets" />
+ <ItemGroup>
+ <Compile Include="GPIOButtonInputProvider.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Tasks\Task.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.SPOT.Graphics">
+ </Reference>
+ <Reference Include="Microsoft.SPOT.Hardware">
+ </Reference>
+ <Reference Include="Microsoft.SPOT.Native">
+ </Reference>
+ <Reference Include="Microsoft.SPOT.TinyCore">
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Resources.resx">
+ <SubType>Designer</SubType>
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Resources\small.tinyfnt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\SignalR.Client.NetMF\SignalR.Client.NetMF.csproj">
+ <Project>{0B97268B-F932-4AC4-A9E4-746186FC4EF0}</Project>
+ <Name>SignalR.Client.NetMF</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup />
+</Project>
View
46 SignalR.Client.NetMF.Samples/Tasks/Task.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.SPOT;
+
+namespace SignalR.Client.NetMF.Samples.Tasks
+{
+ public class Task : System.Threading.Tasks.Task
+ {
+ private readonly Dispatcher _dispatcher;
+
+ public Task(TaskStart start, Dispatcher dispatcher)
+ : base(start)
+ {
+ _dispatcher = dispatcher;
+ }
+
+ public override void Start()
+ {
+ if (_dispatcher != null)
+ {
+ _dispatcher.BeginInvoke(_ =>
+ {
+ StartDelegate();
+ return true;
+ }, null);
+ Status = TaskStatus.Running;
+ }
+ else
+ {
+ base.Start();
+ }
+ }
+
+ public System.Threading.Tasks.Task Then(TaskContinuation continuation, Dispatcher dispatcher)
+ {
+ Continuation = new Task(() => continuation(this), dispatcher);
+ if (Status == TaskStatus.RanToCompletion)
+ {
+ // Task already completed
+ RunContinuation();
+ }
+ return Continuation;
+ }
+ }
+}
View
25 SignalR.Client.NetMF/Properties/AssemblyInfo.cs
@@ -0,0 +1,25 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("SignalR.Client.NetMF")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SignalR.Client.NetMF")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
View
43 SignalR.Client.NetMF/SignalR.Client.NetMF.csproj
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <AssemblyName>SignalR.Client.NetMF</AssemblyName>
+ <OutputType>Library</OutputType>
+ <RootNamespace>SignalR.Client.NetMF</RootNamespace>
+ <ProjectTypeGuids>{b69e3092-b931-443c-abe7-7e7b65f2a37f};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{0B97268B-F932-4AC4-A9E4-746186FC4EF0}</ProjectGuid>
+ <TargetFrameworkVersion>v4.1</TargetFrameworkVersion>
+ <NetMfTargetsBaseDir Condition="'$(NetMfTargetsBaseDir)'==''">$(MSBuildExtensionsPath32)\Microsoft\.NET Micro Framework\</NetMfTargetsBaseDir>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <Import Project="$(NetMfTargetsBaseDir)$(TargetFrameworkVersion)\CSharp.Targets" />
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Tasks\Task.cs" />
+ <Compile Include="Tasks\TaskStatus.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.SPOT.Native">
+ </Reference>
+ <Reference Include="System.Http" />
+ </ItemGroup>
+ <ItemGroup />
+</Project>
View
79 SignalR.Client.NetMF/Tasks/Task.cs
@@ -0,0 +1,79 @@
+using System;
+using Microsoft.SPOT;
+
+namespace System.Threading.Tasks
+{
+ public class Task
+ {
+ public delegate object TaskStart();
+ public delegate object TaskContinuation(Task parent);
+
+ public Task(TaskStart start)
+ {
+ Status = TaskStatus.Created;
+ StartDelegate = () =>
+ {
+ try
+ {
+ Result = start();
+ Status = TaskStatus.RanToCompletion;
+ }
+ catch (Exception ex)
+ {
+ Exception = ex;
+ Status = TaskStatus.Faulted;
+ }
+
+ RunContinuation();
+ };
+ }
+
+ protected ThreadStart StartDelegate { get; set; }
+
+ protected Task Continuation { get; set; }
+
+ public Exception Exception { get; private set; }
+
+ public object Result { get; private set; }
+
+ public TaskStatus Status { get; protected set; }
+
+ public bool IsFaulted { get { return Status == TaskStatus.Faulted; } }
+
+ public bool IsCompleted { get { return Status == TaskStatus.RanToCompletion; } }
+
+ public virtual void Start()
+ {
+ var thread = new Thread(StartDelegate);
+ thread.Start();
+
+ Status = TaskStatus.Running;
+ }
+
+ public Task Then(TaskContinuation continuation)
+ {
+ Continuation = new Task(() => continuation(this));
+ if (Status == TaskStatus.RanToCompletion)
+ {
+ // Task already completed
+ RunContinuation();
+ }
+ return Continuation;
+ }
+
+ protected void RunContinuation()
+ {
+ if (Continuation == null)
+ {
+ return;
+ }
+ Continuation.Start();
+ }
+
+ private void Start(object result)
+ {
+ Result = result;
+ Start();
+ }
+ }
+}
View
12 SignalR.Client.NetMF/Tasks/TaskStatus.cs
@@ -0,0 +1,12 @@
+
+namespace System.Threading.Tasks
+{
+ public enum TaskStatus
+ {
+ Created,
+ Running,
+ RanToCompletion,
+ Canceled,
+ Faulted
+ }
+}
View
196 SignalR.NetMF.sln
@@ -0,0 +1,196 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR", "SignalR\SignalR.csproj", "{1B9A82C4-BCA1-4834-A33E-226F17BE070B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.ScaleOut", "SignalR.ScaleOut\SignalR.ScaleOut.csproj", "{32D16B36-970E-4CF2-B954-78CB1833CBC1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Client", "SignalR.Client\SignalR.Client.csproj", "{EB46B9C6-EE37-48F9-835E-E49580E40E0A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{1E4BA77C-4977-40AA-B297-3A2CB9990ABF}"
+ ProjectSection(SolutionItems) = preProject
+ Build\Build.proj = Build\Build.proj
+ ReleaseNotes.md = ReleaseNotes.md
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Tests", "SignalR.Tests\SignalR.Tests.csproj", "{FBA09237-84CC-4383-BD12-CDF58E4020E8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Client.Samples", "SignalR.Client.Samples\SignalR.Client.Samples.csproj", "{E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Stress", "SignalR.Stress\SignalR.Stress.csproj", "{758D93C8-7985-4F55-82DA-8BA5198CF4EF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.AspNet", "SignalR.Hosting.AspNet\SignalR.Hosting.AspNet.csproj", "{0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.AspNet.Samples", "SignalR.Hosting.AspNet.Samples\SignalR.Hosting.AspNet.Samples.csproj", "{1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.Owin", "SignalR.Hosting.Owin\SignalR.Hosting.Owin.csproj", "{A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.Owin.Samples", "SignalR.Hosting.Owin.Samples\SignalR.Hosting.Owin.Samples.csproj", "{8BF43A5B-4C96-4490-A9AF-5A057AC37C24}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.Self", "SignalR.Hosting.Self\SignalR.Hosting.Self.csproj", "{A2BD866D-906A-4742-AB3B-DB8740830400}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Hosting.Self.Samples", "SignalR.Hosting.Self.Samples\SignalR.Hosting.Self.Samples.csproj", "{8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Client.NetMF", "SignalR.Client.NetMF\SignalR.Client.NetMF.csproj", "{0B97268B-F932-4AC4-A9E4-746186FC4EF0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.Client.NetMF.Samples", "SignalR.Client.NetMF.Samples\SignalR.Client.NetMF.Samples.csproj", "{DEC00EF4-78F5-4587-BE21-352EBE76199F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {1B9A82C4-BCA1-4834-A33E-226F17BE070B}.Release|x86.ActiveCfg = Release|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {32D16B36-970E-4CF2-B954-78CB1833CBC1}.Release|x86.ActiveCfg = Release|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {EB46B9C6-EE37-48F9-835E-E49580E40E0A}.Release|x86.ActiveCfg = Release|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8}.Release|x86.ActiveCfg = Release|Any CPU
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Debug|x86.ActiveCfg = Debug|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Debug|x86.Build.0 = Debug|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Release|Any CPU.ActiveCfg = Release|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Release|Mixed Platforms.Build.0 = Release|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Release|x86.ActiveCfg = Release|x86
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5}.Release|x86.Build.0 = Release|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Debug|x86.ActiveCfg = Debug|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Debug|x86.Build.0 = Debug|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Release|Any CPU.ActiveCfg = Release|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Release|Mixed Platforms.Build.0 = Release|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Release|x86.ActiveCfg = Release|x86
+ {758D93C8-7985-4F55-82DA-8BA5198CF4EF}.Release|x86.Build.0 = Release|x86
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {0E513AE2-BEA8-40CF-B9F2-102B351F2FB2}.Release|x86.ActiveCfg = Release|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82}.Release|x86.ActiveCfg = Release|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {A5726CD0-DE18-40A9-A2EF-C2765EEDBA30}.Release|x86.ActiveCfg = Release|Any CPU
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Debug|x86.ActiveCfg = Debug|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Debug|x86.Build.0 = Debug|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Release|Any CPU.ActiveCfg = Release|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Release|Mixed Platforms.Build.0 = Release|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Release|x86.ActiveCfg = Release|x86
+ {8BF43A5B-4C96-4490-A9AF-5A057AC37C24}.Release|x86.Build.0 = Release|x86
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {A2BD866D-906A-4742-AB3B-DB8740830400}.Release|x86.ActiveCfg = Release|Any CPU
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Debug|x86.ActiveCfg = Debug|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Debug|x86.Build.0 = Debug|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Release|Any CPU.ActiveCfg = Release|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Release|Mixed Platforms.Build.0 = Release|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Release|x86.ActiveCfg = Release|x86
+ {8FD9E25A-2268-4F6E-85F3-B83DC018ECE9}.Release|x86.Build.0 = Release|x86
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {0B97268B-F932-4AC4-A9E4-746186FC4EF0}.Release|x86.ActiveCfg = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|Mixed Platforms.Deploy.0 = Release|Any CPU
+ {DEC00EF4-78F5-4587-BE21-352EBE76199F}.Release|x86.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal

No commit comments for this range

Something went wrong with that request. Please try again.