sl@0: using System;
sl@0: using System.Drawing;
sl@0: using System.Collections;
sl@0: using System.ComponentModel;
sl@0: using System.Windows.Forms;
sl@0: using System.Data;
sl@6: using Devices.RemoteControl;
sl@0:
sl@0: namespace RemoteControlSample
sl@0: {
sl@0: ///
sl@0: /// Summary description for Form1.
sl@0: ///
sl@0: public class Form1 : System.Windows.Forms.Form
sl@0: {
sl@0: ///
sl@0: /// Required designer variable.
sl@0: ///
sl@0: private System.ComponentModel.Container components = null;
sl@0: private System.Windows.Forms.Label label1;
sl@0: private RemoteControlDevice _remote;
sl@0: private System.Windows.Forms.Label label2;
sl@0: private Timer _timer;
sl@0:
sl@0: public Form1()
sl@0: {
sl@0: //
sl@0: // Required for Windows Form Designer support
sl@0: //
sl@0: InitializeComponent();
sl@0:
sl@0: _timer = new Timer();
sl@0: _timer.Interval = 3000;
sl@0: _timer.Enabled = false;
sl@15: _timer.Tick +=new EventHandler(_timer_Tick);
sl@0: }
sl@0:
sl@0: ///
sl@0: /// Clean up any resources being used.
sl@0: ///
sl@0: protected override void Dispose( bool disposing )
sl@0: {
sl@0: if( disposing )
sl@0: {
sl@6: if (components != null)
sl@0: {
sl@0: components.Dispose();
sl@0: }
sl@0: }
sl@0: base.Dispose( disposing );
sl@0: }
sl@0:
sl@0: #region Windows Form Designer generated code
sl@0: ///
sl@0: /// Required method for Designer support - do not modify
sl@0: /// the contents of this method with the code editor.
sl@0: ///
sl@0: private void InitializeComponent()
sl@0: {
sl@0: this.label1 = new System.Windows.Forms.Label();
sl@0: this.label2 = new System.Windows.Forms.Label();
sl@0: this.SuspendLayout();
sl@6: //
sl@0: // label1
sl@6: //
sl@0: this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
sl@0: this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
sl@0: this.label1.ForeColor = System.Drawing.Color.White;
sl@0: this.label1.Location = new System.Drawing.Point(0, 0);
sl@0: this.label1.Name = "label1";
sl@0: this.label1.Size = new System.Drawing.Size(736, 266);
sl@0: this.label1.TabIndex = 0;
sl@0: this.label1.Text = "Ready...";
sl@0: this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
sl@6: //
sl@0: // label2
sl@6: //
sl@0: this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
sl@0: this.label2.Location = new System.Drawing.Point(72, 32);
sl@0: this.label2.Name = "label2";
sl@0: this.label2.Size = new System.Drawing.Size(576, 23);
sl@0: this.label2.TabIndex = 1;
sl@0: this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
sl@6: //
sl@0: // Form1
sl@6: //
sl@0: this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
sl@0: this.BackColor = System.Drawing.Color.LightSteelBlue;
sl@0: this.ClientSize = new System.Drawing.Size(736, 266);
sl@0: this.Controls.Add(this.label2);
sl@0: this.Controls.Add(this.label1);
sl@0: this.Name = "Form1";
sl@0: this.Text = "Remote Control Sample";
sl@0: this.Load += new System.EventHandler(this.Form1_Load);
sl@0: this.ResumeLayout(false);
sl@0:
sl@0: }
sl@6: #endregion Windows Form Designer generated code
sl@0:
sl@0: ///
sl@0: /// The main entry point for the application.
sl@0: ///
sl@0: [STAThread]
sl@6: static void Main()
sl@0: {
sl@0: Application.Run(new Form1());
sl@0: }
sl@0:
sl@0: private void Form1_Load(object sender, System.EventArgs e)
sl@0: {
sl@15: _remote = new RemoteControlDevice(this.Handle);
sl@15: _remote.ButtonPressed += new Devices.RemoteControl.RemoteControlDevice.RemoteControlDeviceEventHandler(_remote_ButtonPressed);
sl@0: }
sl@0:
sl@0:
sl@0: protected override void WndProc(ref Message message)
sl@0: {
sl@15: if (_remote != null)
sl@15: {
sl@15: _remote.ProcessMessage(message);
sl@15: }
sl@0: base.WndProc(ref message);
sl@0: }
sl@0:
sl@19: private bool _remote_ButtonPressed(object sender, RemoteControlEventArgs e)
sl@0: {
sl@19: bool processed = false;
sl@0: _timer.Enabled = false;
sl@3: if (e.Button != RemoteControlButton.Unknown)
sl@3: {
sl@3: label1.Text = e.Button.ToString();
sl@19: processed = true;
sl@3: }
sl@30: else if (e.MceButton != Hid.UsageTables.WindowsMediaCenterRemoteControl.Null)
sl@3: {
sl@5: //Display MCE button name
sl@3: label1.Text = e.MceButton.ToString();
sl@5: //Check if this is an HP extension
sl@31: if (Enum.IsDefined(typeof(Hid.UsageTables.HpWindowsMediaCenterRemoteControl), (ushort)e.MceButton))
sl@5: {
sl@5: //Also display HP button name
sl@31: label1.Text += " / HP:" + ((Hid.UsageTables.HpWindowsMediaCenterRemoteControl)e.MceButton).ToString();
sl@6: }
sl@19:
sl@19: processed = true;
sl@19: }
sl@19: else if (e.ConsumerControl != Hid.UsageTables.ConsumerControl.Null)
sl@19: {
sl@19: //Display consumer control name
sl@19: label1.Text = e.ConsumerControl.ToString();
sl@19: processed = true;
sl@3: }
sl@3: else
sl@3: {
sl@3: label1.Text = "Unknown";
sl@3: }
sl@6: label2.Text = e.Device.ToString();
sl@0: _timer.Enabled = true;
sl@19: return processed;
sl@0: }
sl@0:
sl@0: private void _timer_Tick(object sender, EventArgs e)
sl@0: {
sl@0: _timer.Enabled = false;
sl@0: label1.Text = "Ready...";
sl@0: }
sl@0: }
sl@0: }