blob: 7f4998f48de01295f713b09b2efba6da716044f7 (
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2002 by Daniel Stenberg
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _BUTTON_H_
#define _BUTTON_H_
#include <stdbool.h>
#include "config.h"
extern struct event_queue button_queue;
void button_init (void);
int button_get (bool block);
int button_get_w_tmo(int ticks);
int button_status(void);
void button_clear_queue(void);
#if defined(HAVE_RECORDER_KEYPAD) || defined(HAVE_ONDIO_KEYPAD)
void button_set_flip(bool flip); /* turn 180 degrees */
#endif
#define BUTTON_NONE 0x0000
#ifdef HAVE_NEO_KEYPAD
#define BUTTON_UP 0x0080
#define BUTTON_DOWN 0x0010
#define BUTTON_LEFT 0x0001
#define BUTTON_RIGHT 0x0002
#define BUTTON_SELECT 0x0040
#define BUTTON_ON BUTTON_SELECT
#define BUTTON_PROGRAM 0x0020
#define BUTTON_MENU 0x0004
#define BUTTON_PLAY 0x0008
#define BUTTON_STOP 0x0100
#define BUTTON_IR 0x2000
#define BUTTON_REPEAT 0x4000
#define BUTTON_REL 0x8000
#define BUTTON_FLAG_MASK 0xF000
#define BUTTON_MASK 0x0FFF
#define BUTTON_ALL BUTTON_MASK
#define BUTTON_ALL_FLAGS BUTTON_FLAG_MASK
#define NEO_IR_BUTTON_POWER 0x0001
#define NEO_IR_BUTTON_SETTING 0x0002
#define NEO_IR_BUTTON_REWIND 0x0004
#define NEO_IR_BUTTON_FFORWARD 0x0008
#define NEO_IR_BUTTON_PLAY 0x0010
#define NEO_IR_BUTTON_VOLUP 0x0020
#define NEO_IR_BUTTON_VOLDN 0x0040
#define NEO_IR_BUTTON_BROWSE 0x0080
#define NEO_IR_BUTTON_EQ 0x0100
#define NEO_IR_BUTTON_MUTE 0x0200
#define NEO_IR_BUTTON_PROGRAM 0x0400
#define NEO_IR_BUTTON_STOP 0x0800
#define NEO_IR_BUTTON_NONE 0x0000
#define NEO_IR_BUTTON_REPEAT 0x1000
#else
/* Shared button codes */
#define BUTTON_ON 0x0001
#define BUTTON_UP 0x0010
#define BUTTON_DOWN 0x0020
#define BUTTON_LEFT 0x0040
#define BUTTON_RIGHT 0x0080
/* Button modifiers */
#define BUTTON_REMOTE 0x2000
#define BUTTON_REPEAT 0x4000
#define BUTTON_REL 0x8000
/* remote control buttons */
#define BUTTON_RC_VOL_UP (0x0008 | BUTTON_REMOTE)
#define BUTTON_RC_VOL_DOWN (0x0800 | BUTTON_REMOTE)
#define BUTTON_RC_PLAY (BUTTON_UP | BUTTON_REMOTE)
#define BUTTON_RC_STOP (BUTTON_DOWN | BUTTON_REMOTE)
#define BUTTON_RC_LEFT (BUTTON_LEFT | BUTTON_REMOTE)
#define BUTTON_RC_RIGHT (BUTTON_RIGHT| BUTTON_REMOTE)
#ifdef HAVE_RECORDER_KEYPAD
/* Recorder specific button codes */
#define BUTTON_OFF 0x0002
#define BUTTON_PLAY 0x0004
#define BUTTON_F1 0x0100
#define BUTTON_F2 0x0200
#define BUTTON_F3 0x0400
#elif defined(HAVE_PLAYER_KEYPAD)
/* Jukebox 6000 and Studio specific button codes */
#define BUTTON_MENU 0x0002
#define BUTTON_PLAY BUTTON_UP
#define BUTTON_STOP BUTTON_DOWN
#elif defined HAVE_ONDIO_KEYPAD
/* Ondio specific button codes */
#define BUTTON_MENU 0x0002
#define BUTTON_PLAY BUTTON_UP
#define BUTTON_STOP BUTTON_DOWN
/* ON is also interpreted as OFF, let's see if that helps a bit */
#define BUTTON_OFF BUTTON_ON
#define BUTTON_F1 0x0100 /* unreacheable */
#define BUTTON_F2 0x0200 /* unreacheable */
#define BUTTON_F3 0x0400 /* unreacheable */
#endif /* HAVE_RECORDER/PLAYER/ONDIO_KEYPAD */
#endif /* HAVE_NEO_KEYPAD */
#endif /* _BUTTON_H_ */
|