Johan LACHENAL 1 year ago
commit 3d65446903

@ -1,6 +1,7 @@
using Microsoft.Kinect; using Microsoft.Kinect;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.Windows.Media;
namespace Lib namespace Lib
{ {
@ -18,6 +19,17 @@ namespace Lib
} }
} }
private SolidColorBrush _kinectStatusColor = new SolidColorBrush(Colors.Red); // Couleur rouge par défaut, signifiant inactive
public SolidColorBrush KinectStatusColor
{
get { return _kinectStatusColor; }
set
{
_kinectStatusColor = value;
OnPropertyChanged(nameof(KinectStatusColor));
}
}
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName) protected virtual void OnPropertyChanged(string propertyName)
{ {
@ -27,21 +39,11 @@ namespace Lib
public KinectManager() public KinectManager()
{ {
sensor = KinectSensor.GetDefault(); sensor = KinectSensor.GetDefault();
if (Sensor == null) UpdateStatusProperties();
{ // Abonnez-vous à l'événement IsAvailableChanged
StatusText = "Kinect n'est pas connecté"; if (sensor != null)
}
else if (!Sensor.IsOpen)
{
StatusText = "Kinect n'est pas ouvert";
}
else if (Sensor.IsAvailable)
{ {
StatusText = "Kinect est disponible"; sensor.IsAvailableChanged += KinectSensor_IsAvailableChanged;
}
else
{
StatusText = "Kinect n'est pas disponible";
} }
} }
public void StartSensor() public void StartSensor()
@ -79,25 +81,33 @@ namespace Lib
} }
} }
private void KinectSensor_IsAvailableChanged(object sender, IsAvailableChangedEventArgs args) private void KinectSensor_IsAvailableChanged(object sender, IsAvailableChangedEventArgs e)
{
UpdateStatusProperties();
}
private void UpdateStatusProperties()
{ {
if (Sensor == null) if (Sensor == null)
{ {
StatusText = "Kinect n'est pas connecté"; StatusText = "Kinect n'est pas connecté";
KinectStatusColor = new SolidColorBrush(Colors.Red);
} }
else if (!Sensor.IsOpen) else if (!Sensor.IsOpen)
{ {
StatusText = "Kinect n'est pas ouvert"; StatusText = "Kinect n'est pas ouvert";
KinectStatusColor = new SolidColorBrush(Colors.Yellow);
} }
else if (Sensor.IsAvailable) else if (Sensor.IsAvailable)
{ {
StatusText = "Kinect est disponible"; StatusText = "Kinect est disponible";
KinectStatusColor = new SolidColorBrush(Colors.Green);
} }
else else
{ {
StatusText = "Kinect n'est pas disponible"; StatusText = "Kinect n'est pas disponible";
} KinectStatusColor = new SolidColorBrush(Colors.Orange);
} }
} }
} }
}

@ -14,7 +14,7 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Top"> <StackPanel Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Top">
<Ellipse Width="20" Height="20" Fill="Green" /> <Ellipse Width="20" Height="20" Fill="{Binding CurrentKinectStream.KinectManager.KinectStatusColor}" />
<TextBlock Text="{Binding CurrentKinectStream.KinectManager.StatusText}" VerticalAlignment="Center" Margin="5,0,0,0"/> <TextBlock Text="{Binding CurrentKinectStream.KinectManager.StatusText}" VerticalAlignment="Center" Margin="5,0,0,0"/>
</StackPanel> </StackPanel>

Loading…
Cancel
Save