private void DepthSourcePickerComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (DepthSourcePickerComboBox.SelectedItem != null)
{
//Remove the event from the previous selection
if (server != null)
{
for (int i = 0; i < server.kinects.Count; i++)
{
if (server.kinects[i].uniqueKinectID == DepthStreamUniqueID)
{
server.kinects[i].DepthFrameReceived -= MainWindow_DepthFrameReceived;
server.kinects[i].SkeletonChanged -= MainWindow_SkeletonChangedDepth;
DepthStreamUniqueID = "";
}
}
}
//Add the new frame event
if (DepthSourcePickerComboBox.SelectedItem.ToString().ToLower() == "none")
{
DepthStreamUniqueID = "";
DepthImage.Visibility = System.Windows.Visibility.Hidden;
//Set the frame rate display to 0
DepthFPSTextBlock.Text = "0.0";
depthTimeIntervals.Clear();
lastDepthTime = new TimeSpan(0);
}
else
{
string temp = DepthSourcePickerComboBox.SelectedItem.ToString().ToLower().Replace("kinect ", "");
int kinectIndex = -1;
if (int.TryParse(temp, out kinectIndex))
{
DepthStreamUniqueID = server.kinects[kinectIndex].uniqueKinectID;
DepthImage.Visibility = System.Windows.Visibility.Visible;
server.kinects[kinectIndex].DepthFrameReceived += MainWindow_DepthFrameReceived;
server.kinects[kinectIndex].SkeletonChanged += MainWindow_SkeletonChangedDepth;
CheckAndChangeDepthShader(kinectIndex);
}
}
}
}