/*
 * File:        AMMO.H
 *
 * Purpose:		Defines the ATI Remote Wonder plug-in key groups and key
 *				definitions.
 *
 * Author:		ATI
 *
 * Copyright:	Copyright (c) 2002 ATI Technologies Inc
 *
 * Use of this Software Development Kit is subject to the terms and conditions
 * of the ATI Technologies Inc. Software Development Kit License Agreement for 
 * the "REMOTE WONDER Plug-In SDK". If you have not accepted and agreed to this 
 * License, you have no rights to use the software contained herein.  
 */

#include <windows.h>

///////////////////////////////////////////////////////
// Function prototypes for plug-in
///////////////////////////////////////////////////////

DWORD	WhatKeysDoYouWant				(void);
char	*EnumerateProgrammableFunction	(WORD wIndex);
void	Configure						(HANDLE hWnd);
int		AreYouInFocus					(void);
BOOL	HandleKey						(BOOL bCustom, WORD wKeyEvent, WORD wState);

///////////////////////////////////////////////////////
// Remote control key groups
///////////////////////////////////////////////////////

#define CUSTOM_RAW		0x0001		// A - F, sent raw
#define CUSTOM_MAPPED	0x0002		// A - F, remapped to custom commands
#define MOUSE_GROUP		0x0004		// 8 directions, left, right, and the hand
#define CHANNEL_GROUP	0x0008		// Channel Up, Channel Down
#define VOLUME_GROUP	0x0010		// Volume Up, Volume Down, Mute
#define NUMBER_GROUP	0x0020		// Numeric keys 0 - 9
#define CURSOR_GROUP	0x0040		// Up, Down, Left, Right
#define PLAY_GROUP		0x0080		// Fast Forward, Rewind, Play, Stop, Pause
#define MENU			0x0100		// Menu key
#define SETUP			0x0200		// Setup key
#define ENTER			0x0400		// Ok key
#define RECORD			0x0800		// Record key
#define STOPWATCH		0x1000		// Stopwatch key
#define RESIZE			0x2000		// Resize key
#define WEB_LAUNCH		0x4000		// WEB launch key

///////////////////////////////////////////////////////
// Key states
///////////////////////////////////////////////////////
#define RMCTRL_KEY_OFF					0
#define RMCTRL_KEY_ON					1
#define RMCTRL_KEY_REPEAT				2

///////////////////////////////////////////////////////
// Remote control key defintions
///////////////////////////////////////////////////////

// Numeric Keys
#define RMCTRL_0						0
#define RMCTRL_1						1
#define RMCTRL_2						2
#define RMCTRL_3						3
#define RMCTRL_4						4
#define RMCTRL_5						5
#define RMCTRL_6						6
#define RMCTRL_7						7
#define RMCTRL_8						8
#define RMCTRL_9						9

// Mouse keys
#define RMCTRL_HAND						10
#define RMCTRL_LEFTMOUSE				11
#define RMCTRL_RIGHTMOUSE				12
#define RMCTRL_LEFTMOUSEDOUBLECLICK		13
#define RMCTRL_RIGHTMOUSEDOUBLECLICK	14
#define RMCTRL_DIRPADRIGHT				15	
#define RMCTRL_DIRPADUP					16
#define RMCTRL_DIRPADLEFT				17
#define RMCTRL_DIRPADDOWN				18
#define RMCTRL_DIRPADRIGHTUP			19
#define RMCTRL_DIRPADRIGHTDOWN			20
#define RMCTRL_DIRPADLEFTUP				21
#define RMCTRL_DIRPADLEFTDOWN			22

// Channel Keys
#define RMCTRL_CHANNELUP				23
#define RMCTRL_CHANNELDOWN				24

// Volume Keys
#define RMCTRL_VOLUMEUP					25
#define RMCTRL_VOLUMEDOWN				26
#define RMCTRL_MUTE						27

// Menu Key
#define RMCTRL_MENU						28

// Setup Key
#define RMCTRL_SETUP					29

// Cursor Keys
#define RMCTRL_UP						30
#define	RMCTRL_DOWN						31
#define RMCTRL_LEFT						32
#define RMCTRL_RIGHT					33

// Enter (OK) Key
#define RMCTRL_ENTER					34

// Play Keys
#define RMCTRL_FF						35
#define RMCTRL_RW						36
#define RMCTRL_PLAY						37
#define RMCTRL_PAUSE					38
#define RMCTRL_STOP						39

// Record key
#define RMCTRL_RECORD					40

// Stopwatch key
#define RMCTRL_STOPWATCH				41

// Programmable Keys
#define RMCTRL_A						42
#define RMCTRL_B						43
#define RMCTRL_C						44
#define RMCTRL_D						45
#define RMCTRL_E						46
#define RMCTRL_F						47

// Resize key
#define RMCTRL_RESIZE					48

// Web launch key
#define RMCTRL_WEB_LAUNCH				49
