Exemplo n.º 1
0
        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]);
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        //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);
        }