source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Microsoft.Samples.Kinect.Webserver/Sensor/KinectRequestHandlerFactory.cs@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 3.8 KB
Line 
1// -----------------------------------------------------------------------
2// <copyright file="KinectRequestHandlerFactory.cs" company="Microsoft">
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// </copyright>
5// -----------------------------------------------------------------------
6
7namespace Microsoft.Samples.Kinect.Webserver.Sensor
8{
9 using System.Collections.ObjectModel;
10
11 using Microsoft.Kinect.Toolkit;
12 using Microsoft.Samples.Kinect.Webserver;
13
14 /// <summary>
15 /// Implementation of IHttpRequestHandlerFactory used to create instances of
16 /// <see cref="KinectRequestHandler"/> objects.
17 /// </summary>
18 public class KinectRequestHandlerFactory : IHttpRequestHandlerFactory
19 {
20 /// <summary>
21 /// Sensor chooser used to obtain a KinectSensor.
22 /// </summary>
23 private readonly KinectSensorChooser sensorChooser;
24
25 /// <summary>
26 /// Collection of sensor stream handler factories used to process kinect data and deliver
27 /// a data streams ready for web consumption.
28 /// </summary>
29 private readonly Collection<ISensorStreamHandlerFactory> streamHandlerFactories;
30
31 /// <summary>
32 /// Initializes a new instance of the KinectRequestHandlerFactory class.
33 /// </summary>
34 /// <param name="sensorChooser">
35 /// Sensor chooser that will be used to obtain a KinectSensor.
36 /// </param>
37 /// <remarks>
38 /// Default set of sensor stream handler factories will be used.
39 /// </remarks>
40 public KinectRequestHandlerFactory(KinectSensorChooser sensorChooser)
41 {
42 this.sensorChooser = sensorChooser;
43 this.streamHandlerFactories = CreateDefaultStreamHandlerFactories();
44 }
45
46 /// <summary>
47 /// Initializes a new instance of the KinectRequestHandlerFactory class.
48 /// </summary>
49 /// <param name="sensorChooser">
50 /// Sensor chooser that will be used to obtain a KinectSensor.
51 /// </param>
52 /// <param name="streamHandlerFactories">
53 /// Collection of stream handler factories to be used to process kinect data and deliver
54 /// data streams ready for web consumption.
55 /// </param>
56 public KinectRequestHandlerFactory(KinectSensorChooser sensorChooser, Collection<ISensorStreamHandlerFactory> streamHandlerFactories)
57 {
58 this.sensorChooser = sensorChooser;
59 this.streamHandlerFactories = streamHandlerFactories;
60 }
61
62 /// <summary>
63 /// Create collection of default stream handler factories.
64 /// </summary>
65 /// <returns>
66 /// Collection containing default stream handler factories.
67 /// </returns>
68 public static Collection<ISensorStreamHandlerFactory> CreateDefaultStreamHandlerFactories()
69 {
70 var streamHandlerTypes = new[]
71 {
72 StreamHandlerType.Interaction,
73 StreamHandlerType.Skeleton,
74 StreamHandlerType.BackgroundRemoval,
75 StreamHandlerType.SensorStatus
76 };
77
78 var factoryCollection = new Collection<ISensorStreamHandlerFactory>();
79 foreach (var type in streamHandlerTypes)
80 {
81 factoryCollection.Add(new SensorStreamHandlerFactory(type));
82 }
83
84 return factoryCollection;
85 }
86
87 /// <summary>
88 /// Creates a request handler object.
89 /// </summary>
90 /// <returns>
91 /// A new <see cref="IHttpRequestHandler"/> instance.
92 /// </returns>
93 public IHttpRequestHandler CreateHandler()
94 {
95 return new KinectRequestHandler(this.sensorChooser, this.streamHandlerFactories);
96 }
97 }
98}
Note: See TracBrowser for help on using the repository browser.