Skip to content

Commit b89270c

Browse files
committed
- Migration of projet to github
1 parent 83b5e25 commit b89270c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+13887
-3
lines changed

AUTHORS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
libtuxdriver was written by:
2+
3+
Remi Jocaille <[email protected]>
4+
5+
Contributors:
6+
Frans Meulenbroeks aka eFfeM
7+
Paul Rathgeb <[email protected]>
8+
David Bourgeois <[email protected]>

COPYING

Lines changed: 340 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
tuxdriver
2-
=========
31

4-
New driver for TuxDroid (more infos here: http://forum.tuxdroid-community.org/viewtopic.php?id=205)
2+
libtuxdriver is a shared library to control Tuxdroid.
3+
4+
For all information about Tuxdroid, please visit:
5+
6+
http://tuxdroid-community.org/
7+
http://www.tux-droid.eu/
8+
9+

doc/Notes.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Defines:
2+
========
3+
4+
USE_MUTEX
5+
LOCK_TUX
6+
USB_DEBUG
7+
USB_IDFRAME
8+
GENERATE_DOC

doc/TuxSSV2-Tuxware-Libtuxdriver.odt

52.4 KB
Binary file not shown.

include/tux_driver.h

Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
/*
2+
* Tux Droid - Driver
3+
* Copyright (C) 2008 C2ME Sa <Acness : [email protected]>
4+
*
5+
* This program is free software; you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation; either version 2, or (at your option)
8+
* any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this program; if not, write to the Free Software
17+
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18+
* 02111-1307, USA.
19+
*/
20+
21+
#ifndef _TUX_DRIVER_H_
22+
#define _TUX_DRIVER_H_
23+
24+
#include <stdbool.h>
25+
26+
/**
27+
* Id enumeration of high level status.
28+
*/
29+
typedef enum {
30+
SW_ID_FLIPPERS_POSITION = 0,
31+
SW_ID_FLIPPERS_REMAINING_MVM,
32+
SW_ID_SPINNING_DIRECTION,
33+
SW_ID_SPINNING_REMAINING_MVM,
34+
SW_ID_LEFT_WING_BUTTON,
35+
SW_ID_RIGHT_WING_BUTTON,
36+
SW_ID_HEAD_BUTTON,
37+
SW_ID_REMOTE_BUTTON,
38+
SW_ID_MOUTH_POSITION,
39+
SW_ID_MOUTH_REMAINING_MVM,
40+
SW_ID_EYES_POSITION,
41+
SW_ID_EYES_REMAINING_MVM,
42+
SW_ID_DESCRIPTOR_COMPLETE,
43+
SW_ID_RF_STATE,
44+
SW_ID_DONGLE_PLUG,
45+
SW_ID_CHARGER_STATE,
46+
SW_ID_BATTERY_LEVEL,
47+
SW_ID_BATTERY_STATE,
48+
SW_ID_LIGHT_LEVEL,
49+
SW_ID_LEFT_LED_STATE,
50+
SW_ID_RIGHT_LED_STATE,
51+
SW_ID_CONNECTION_QUALITY,
52+
SW_ID_AUDIO_FLASH_PLAY,
53+
SW_ID_AUDIO_GENERAL_PLAY,
54+
SW_ID_FLASH_PROG_CURR_TRACK,
55+
SW_ID_FLASH_PROG_LAST_TRACK_SIZE,
56+
SW_ID_TUXCORE_SYMBOLIC_VERSION,
57+
SW_ID_TUXAUDIO_SYMBOLIC_VERSION,
58+
SW_ID_FUXUSB_SYMBOLIC_VERSION,
59+
SW_ID_FUXRF_SYMBOLIC_VERSION,
60+
SW_ID_TUXRF_SYMBOLIC_VERSION,
61+
SW_ID_DRIVER_SYMBOLIC_VERSION,
62+
SW_ID_SOUND_REFLASH_BEGIN,
63+
SW_ID_SOUND_REFLASH_END,
64+
SW_ID_SOUND_REFLASH_CURRENT_TRACK,
65+
SW_ID_EYES_MOTOR_ON,
66+
SW_ID_MOUTH_MOTOR_ON,
67+
SW_ID_FLIPPERS_MOTOR_ON,
68+
SW_ID_SPIN_LEFT_MOTOR_ON,
69+
SW_ID_SPIN_RIGHT_MOTOR_ON,
70+
SW_ID_FLASH_SOUND_COUNT,
71+
} SW_ID_DRIVER;
72+
73+
#if defined(__cplusplus)
74+
extern "C" {
75+
#endif
76+
77+
/**
78+
* Error codes
79+
*/
80+
#define TUX_ERROR_BEGIN 256
81+
typedef int TuxDrvError;
82+
typedef enum
83+
{
84+
E_TUXDRV_NOERROR = 0,
85+
E_TUXDRV_PARSERISDISABLED = TUX_ERROR_BEGIN,
86+
E_TUXDRV_INVALIDCOMMAND,
87+
E_TUXDRV_STACKOVERFLOW,
88+
E_TUXDRV_FILEERROR,
89+
E_TUXDRV_BADWAVFILE,
90+
E_TUXDRV_INVALIDIDENTIFIER,
91+
E_TUXDRV_INVALIDNAME,
92+
E_TUXDRV_INVALIDPARAMETER,
93+
E_TUXDRV_BUSY,
94+
E_TUXDRV_WAVSIZEEXCEDED,
95+
} tux_drv_error_t;
96+
97+
/**
98+
* CPU number enumeration.
99+
*/
100+
typedef enum {
101+
TUXCORE_CPU_NUM = 0,
102+
TUXAUDIO_CPU_NUM = 1,
103+
TUXRF_CPU_NUM = 2,
104+
FUXRF_CPU_NUM = 3,
105+
FUXUSB_CPU_NUM = 4,
106+
INVALID_CPU_NUM = -1,
107+
} CPU_IDENTIFIERS;
108+
109+
/**
110+
* Descriptor structure of a firmaware.
111+
*/
112+
typedef struct {
113+
CPU_IDENTIFIERS cpu_id;
114+
unsigned int version_major;
115+
unsigned int version_minor;
116+
unsigned int version_update;
117+
unsigned int revision;
118+
bool release;
119+
bool local_modification;
120+
bool mixed_revisions;
121+
unsigned int author;
122+
unsigned int variation;
123+
char version_string[256];
124+
} firmware_descriptor_t;
125+
126+
/**
127+
* Descriptor structure of sound flash.
128+
*/
129+
typedef struct {
130+
unsigned int number_of_sounds;
131+
unsigned int flash_usage;
132+
unsigned int available_record_time;
133+
} sound_flash_descriptor_t;
134+
135+
/**
136+
* Descriptor structure of ID connection.
137+
*/
138+
typedef struct {
139+
unsigned int number;
140+
} id_descriptor_t;
141+
142+
/**
143+
* Global descriptor structure of tuxdroid.
144+
*/
145+
typedef struct {
146+
struct firmwares_t {
147+
firmware_descriptor_t *package;
148+
firmware_descriptor_t *tuxcore;
149+
firmware_descriptor_t *tuxaudio;
150+
firmware_descriptor_t *tuxrf;
151+
firmware_descriptor_t *fuxrf;
152+
firmware_descriptor_t *fuxusb;
153+
} firmwares;
154+
struct driver_version_t {
155+
unsigned int version_major;
156+
unsigned int version_minor;
157+
unsigned int version_update;
158+
unsigned int version_build;
159+
char version_state[100];
160+
char version_string[100];
161+
} driver;
162+
sound_flash_descriptor_t *sound_flash;
163+
id_descriptor_t *id;
164+
} tux_descriptor_t;
165+
166+
/**
167+
* Simple callback definition.
168+
*/
169+
typedef void(*drv_simple_callback_t)(void);
170+
171+
/**
172+
* Status callback definition.
173+
*/
174+
typedef void(*drv_status_callback_t)(char *status);
175+
176+
/**
177+
* Tokens structure
178+
*/
179+
typedef char drv_token_str_t[1024];
180+
typedef drv_token_str_t drv_tokens_t[256];
181+
182+
/**
183+
* Logging target
184+
*/
185+
typedef enum log_target
186+
{
187+
LOG_TARGET_TUX,
188+
LOG_TARGET_SHELL
189+
} log_target_t;
190+
191+
/**
192+
* Logging levels, in increasing priorities
193+
*/
194+
typedef enum log_level
195+
{
196+
LOG_LEVEL_DEBUG,
197+
LOG_LEVEL_INFO,
198+
LOG_LEVEL_WARNING,
199+
LOG_LEVEL_ERROR,
200+
LOG_LEVEL_NONE
201+
} log_level_t;
202+
203+
extern void TuxDrv_Start(void);
204+
extern void TuxDrv_Stop(void);
205+
206+
/**
207+
* 31/08/2012 - Joël Maatteotti <sfuser: joelmatteitti>
208+
*/
209+
extern bool TuxDrv_Eyes_cmd_off(void);
210+
extern bool TuxDrv_Mouth_cmd_off(void);
211+
extern bool TuxDrv_Spinning_cmd_off(void);
212+
extern bool TuxDrv_Flippers_cmd_off(void);
213+
extern char *TuxDrv_SoundFlash_dump_descriptor(char *p);
214+
extern void TuxDrv_LightLevel_update(void);
215+
/** ------------------------- */
216+
217+
218+
extern const char *TuxDrv_StrError(TuxDrvError error_code);
219+
extern void TuxDrv_GetDescriptor(tux_descriptor_t *tux_desc);
220+
extern void TuxDrv_SetStatusCallback(drv_status_callback_t funct);
221+
extern void TuxDrv_SetEndCycleCallback(drv_simple_callback_t funct);
222+
extern void TuxDrv_SetDongleConnectedCallback(drv_simple_callback_t funct);
223+
extern void TuxDrv_SetDongleDisconnectedCallback(drv_simple_callback_t funct);
224+
extern TuxDrvError TuxDrv_PerformCommand(double delay, char *cmd_str);
225+
extern void TuxDrv_ClearCommandStack(void);
226+
extern TuxDrvError TuxDrv_PerformMacroFile(char *file_path);
227+
extern TuxDrvError TuxDrv_PerformMacroText(char *macro);
228+
extern TuxDrvError TuxDrv_SoundReflash(char *tracks);
229+
extern void TuxDrv_SetLogLevel(log_level_t level);
230+
extern void TuxDrv_SetLogTarget(log_target_t target);
231+
extern TuxDrvError TuxDrv_GetStatusName(int id, char* name);
232+
extern TuxDrvError TuxDrv_GetStatusId(char* name, int *id);
233+
extern TuxDrvError TuxDrv_GetStatusState(int id, char *state);
234+
extern TuxDrvError TuxDrv_GetStatusValue(int id, char *value);
235+
extern void TuxDrv_GetAllStatusState(char *state);
236+
extern int TuxDrv_TokenizeStatus(char *status, drv_tokens_t *tokens);
237+
extern void TuxDrv_ResetPositions(void);
238+
extern void TuxDrv_ResetDongle(void);
239+
extern double get_time(void);
240+
241+
#if defined(__cplusplus)
242+
}
243+
#endif
244+
245+
#endif /* _TUX_DRIVER_H_ */

0 commit comments

Comments
 (0)