/// <summary> /// Selects the current Xbox /// </summary> /// <param name="xboxViewItem">Xbox to select</param> public void SelectXbox(XboxViewItem xboxViewItem) { foreach (ControllableXboxViewItem controllableXboxViewItem in this.AllDevices) { controllableXboxViewItem.IsSelected = controllableXboxViewItem.XboxViewItem == xboxViewItem; } }
/// <summary> /// Handler to expand and/or collapse the Xbox auxiliary panel when an Xbox is selected/deselected /// </summary> /// <param name="sender">Originating UI element for this event</param> /// <param name="e">Selection changed event args</param> private void OnDeviceSelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.RemovedItems.Count > 0) { foreach (object removedItem in e.RemovedItems) { XboxViewItem xbvi = removedItem as XboxViewItem; if (xbvi != null) { xbvi.IsClicked = false; xbvi.AuxPanelVisibility = Visibility.Collapsed; } } } if (e.AddedItems.Count > 0) { foreach (object addedItem in e.AddedItems) { XboxViewItem xbvi = addedItem as XboxViewItem; if (xbvi != null) { xbvi.IsClicked = true; xbvi.AuxPanelVisibility = (xbvi.Connected && !xbvi.IsOffline) ? Visibility.Visible : Visibility.Collapsed; } } } }
/// <summary> /// Unbinds a controller /// </summary> /// <param name="xboxViewItem">Xbox to unbind a controller on</param> /// <param name="quadrant">Quadrant to unbind controller from</param> private void UnregisterController(XboxViewItem xboxViewItem, uint quadrant) { try { xboxViewItem.XboxDevice.XboxConsole.XboxAutomation.UnbindController(quadrant); } catch { // Ignore failure } }
/// <summary> /// Binds a controller /// </summary> /// <param name="xboxViewItem">Xbox to bind a controller on</param> /// <param name="quadrant">Quadrant to bind controller to</param> private void RegisterController(XboxViewItem xboxViewItem, uint quadrant) { try { xboxViewItem.XboxDevice.XboxConsole.XboxAutomation.BindController(quadrant, 999); xboxViewItem.XboxDevice.XboxConsole.XboxAutomation.ConnectController(quadrant); } catch { // Ignore failure } }
/// <summary> /// Initializes a new instance of the <see cref="DebugOutputViewModel" /> class. /// </summary> /// <param name="xbvi">The XboxViewItem for the xbox associated with this debug output window</param> /// <param name="mainViewModel">A reference to the MainViewModel</param> public DebugOutputViewModel(XboxViewItem xbvi, MainViewModel mainViewModel) { this.mainViewModel = mainViewModel; this.XboxViewItem = xbvi; this.OpenLogDirectoryCommand = new Command((o) => Process.Start(this.logDirectory)); this.ResetTestCommand = new Command((o) => this.ResetTestFailingVisibility()); this.RemoveSymbolCommand = new Command((o) => this.RemoveSymbol(o as DebugOutputMonitorAPISession)); this.ResetCalledCommand = new Command((o) => this.ResetCalled(o as DebugOutputMonitorAPISession)); this.AddSymbolCommand = new Command((o) => this.AddSymbol()); this.SelectAllCommand = new Command((o) => this.SelectAll()); }
/// <summary> /// Set an xbox language to Dutch /// </summary> /// <param name="sender">Originating UI element for this event</param> /// <param name="e">Routed event args</param> private void SetLanguageDutch(object sender, RoutedEventArgs e) { ComboBoxItem cbi = sender as ComboBoxItem; if (cbi != null) { XboxViewItem xvi = cbi.DataContext as XboxViewItem; if (xvi != null) { xvi.SetLanguageDutchCommand.Execute(xvi); } } }
/// <summary> /// Handler to trigger refresh of Xbox related properties when Xbox is clicked on in device pool /// </summary> /// <param name="sender">Originating UI element for this event</param> /// <param name="e">Mouse button event args</param> private void OnListViewItemPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // Even if selection hasn't changed, refresh the properties each time clicked ListViewItem lvi = sender as ListViewItem; if (lvi != null) { XboxViewItem xbvi = lvi.DataContext as XboxViewItem; if (xbvi != null) { xbvi.RefreshState(); } } e.Handled = false; }
/// <summary> /// Initializes a new instance of the <see cref="ControllableXboxViewItem" /> class. /// </summary> /// <param name="virtualControllerViewModel">A reference to the virtual controller view model</param> /// <param name="xboxViewItem">Xbox to associate with this object</param> public ControllableXboxViewItem(VirtualControllerViewModel virtualControllerViewModel, XboxViewItem xboxViewItem) { this.virtualControllerViewModel = virtualControllerViewModel; this.xboxViewItem = xboxViewItem; }