map 0x00000425 include common # # Top row # dead_caron 0x29 dead_tilde 0x29 shift # 1 exclam 0x2 shift # 2 quotedbl 0x3 shift at 0x3 altgr # 3 numbersign 0x4 shift sterling 0x4 altgr # 4 currency 0x5 shift dollar 0x5 altgr # 5 percent 0x6 shift # 6 ampersand 0x7 shift # 7 slash 0x8 shift braceleft 0x8 altgr # 8 parenleft 0x9 shift bracketleft 0x9 altgr # 9 parenright 0xa shift bracketright 0xa altgr # 0 equal 0xb shift braceright 0xb altgr plus 0xc question 0xc shift backslash 0xc altgr acute 0xd dead_acute 0xd grave 0xd shift dead_grave 0xd shift # # QWERTY first row # EuroSign 0x12 altgr udiaeresis 0x1a Udiaeresis 0x1a shift otilde 0x1b Otilde 0x1b shift section 0x1b altgr # # QWERTY second row # scaron 0x1f altgr Scaron 0x1f altgr shift odiaeresis 0x27 Odiaeresis 0x27 shift adiaeresis 0x28 Adiaeresis 0x28 shift asciicircum 0x28 altgr apostrophe 0x2b asterisk 0x2b shift onehalf 0x2b altgr # # QWERTY third row # less 0x56 greater 0x56 shift bar 0x56 altgr zcaron 0x2c altgr Zcaron 0x2c altgr shift comma 0x33 semicolon 0x33 shift period 0x34 colon 0x34 shift minus 0x35 underscore 0x35 shift on> [no description]
aboutsummaryrefslogtreecommitdiffstats
path: root/lib/lufa/Projects/MediaController/MediaController.h
blob: 0e8ed5d6f597c68a9a8d6f610a6d35e7b00651bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
             LUFA Library
     Copyright (C) Dean Camera, 2017.

  dean [at] fourwalledcubicle [dot] com
           www.lufa-lib.org
*/

/*
  Copyright 2017  Dean Camera (dean [at] fourwalledcubicle [dot] com)

  Permission to use, copy, modify, distribute, and sell this
  software and its documentation for any purpose is hereby granted
  without fee, provided that the above copyright notice appear in
  all copies and that both that the copyright notice and this
  permission notice and warranty disclaimer appear in supporting
  documentation, and that the name of the author not be used in
  advertising or publicity pertaining to distribution of the
  software without specific, written prior permission.

  The author disclaims all warranties with regard to this
  software, including all implied warranties of merchantability
  and fitness.  In no event shall the author be liable for any
  special, indirect or consequential damages or any damages
  whatsoever resulting from loss of use, data or profits, whether
  in an action of contract, negligence or other tortious action,
  arising out of or in connection with the use or performance of
  this software.
*/

/** \file
 *
 *  Header file for MediaControl.c.
 */

#ifndef _MEDIACONTROL_H_
#define _MEDIACONTROL_H_

	/* Includes: */
		#include <avr/io.h>
		#include <avr/wdt.h>
		#include <avr/power.h>
		#include <avr/interrupt.h>
		#include <stdbool.h>
		#include <string.h>

		#include "Descriptors.h"

		#include <LUFA/Drivers/Board/Joystick.h>
		#include <LUFA/Drivers/Board/LEDs.h>
		#include <LUFA/Drivers/Board/Buttons.h>
		#include <LUFA/Drivers/USB/USB.h>
		#include <LUFA/Platform/Platform.h>

	/* Macros: */
		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
		#define LEDMASK_USB_NOTREADY      LEDS_LED1

		/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
		#define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)

		/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
		#define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)

		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)

	/* Type Defines: */
		/** Type define for a Media Control HID report. This report contains the bits to match the usages defined
		 *  in the HID report of the device. When set to a true value, the relevant media controls on the host will
		 *  be triggered.
		 */
		typedef struct
		{
			unsigned Play           : 1;
			unsigned Pause          : 1;
			unsigned FForward       : 1;
			unsigned Rewind         : 1;
			unsigned NextTrack      : 1;
			unsigned PreviousTrack  : 1;
			unsigned Stop           : 1;
			unsigned PlayPause      : 1;
			unsigned Mute           : 1;
			unsigned VolumeUp       : 1;
			unsigned VolumeDown     : 1;
			unsigned RESERVED       : 5;
		} ATTR_PACKED USB_MediaReport_Data_t;

	/* Function Prototypes: */
		void SetupHardware(void);

		void EVENT_USB_Device_Connect(void);
		void EVENT_USB_Device_Disconnect(void);
		void EVENT_USB_Device_ConfigurationChanged(void);
		void EVENT_USB_Device_ControlRequest(void);
		void EVENT_USB_Device_StartOfFrame(void);

		bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
		                                         uint8_t* const ReportID,
		                                         const uint8_t ReportType,
		                                         void* ReportData,
		                                         uint16_t* const ReportSize);
		void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
		                                          const uint8_t ReportID,
		                                          const uint8_t ReportType,
		                                          const void* ReportData,
		                                          const uint16_t ReportSize);

#endif