private static void SlideBar_HandleEvent(object sender, EventArrivedEventArgs e) { /// Console.WriteLine("WMIACPIEvent event occurred."); ManagementBaseObject mbo = e.NewEvent; byte[] EvtBytes = mbo["EvtBytes"] as byte[]; if (EvtBytes.Equals(lastBytes)) { return; } else { lastBytes = EvtBytes; } SBMode returnStatus = SBMode.Nothing; if (UCSB != null) { returnStatus = UCSB.SlideBar_EventHandler(EvtBytes); } /// Special for Volume Control /// if (returnStatus == SBMode.VolumeControl) { device.AudioEndpointVolume.MasterVolumeLevelScalar = ScaleSlideBarPlaceForVolume(EvtBytes[19]); } }
public static void SetBit(ref byte Target, byte bitnum, SBMode Mode) { if (Mode == SBMode.On) { Target |= (byte)(1 << bitnum); } else if (Mode == SBMode.Off) { Target &= (byte)~(1 << bitnum); } else { Target ^= (byte)(1 << bitnum); } }
//public void SetMode(SBMode m) //{ // switch (m) // { // case SBMode.VolumeControl: // radioButtonVol.Checked = true; // break; // case SBMode.BrightnessControl: // radioButtonBrightness.Checked = true; // break; // } //} public SBMode SlideBar_EventHandler(byte[] eventBytes) // raw byte[] input { SBMode SBMODE = SBMode.Nothing; //SpeechSynthesizer ss = new SpeechSynthesizer(); if (InvokeRequired) { Invoke((MethodInvoker) delegate { labelSB.Text = "位置=" + eventBytes[19] + "速度=" + eventBytes[20] + "动作=" + eventBytes[18] + "模式=" + eventBytes[1] + "呼吸灯效=" + eventBytes[21] + "触钮灯效=" + eventBytes[22] + "启用=" + eventBytes[2] ; SBMODE = (SBMode)comboBox1.SelectedItem; if (eventBytes[1] == 25) { if (comboBox1.SelectedIndex + 1 >= comboBox1.Items.Count) { comboBox1.SelectedIndex = 0; } else { comboBox1.SelectedIndex++; } //ss.SpeakAsync("Changed to " + comboBox1.Items[comboBox1.SelectedIndex]); } }); } if (eventBytes[1] == 25) { return(SBMode.Nothing); } try { switch (SBMODE) { case SBMode.BrightnessControl: SetBrightness(eventBytes[19]); break; case SBMode.ChangeMusicTrackControl: PressMediaButton(eventBytes[19], eventBytes[18]); break; default: break; } } catch (Exception ex) { } return(SBMODE); }