[tuxdroid-svn] r731 - daemon/trunk/libs
Status: Beta
Brought to you by:
ks156
From: Paul_R <c2m...@c2...> - 2007-11-27 09:45:14
|
Author: Paul_R Date: 2007-11-27 10:45:14 +0100 (Tue, 27 Nov 2007) New Revision: 731 Modified: daemon/trunk/libs/USBDaemon_command_tux.c daemon/trunk/libs/USBDaemon_status_table.c daemon/trunk/libs/USBDaemon_status_table.h Log: * Added the commands and the statuses to be compatible with the new tuxaudio firmware. Note : This version isn't compatible with tuxaudio < SVN Rev 730. Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2007-11-27 09:38:35 UTC (rev 730) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2007-11-27 09:45:14 UTC (rev 731) @@ -493,11 +493,14 @@ ACK = send_usb_tux_cmd(PLAY_SOUND_CMD, data[2], data[3], 0); break; case TUX_CMD_STRUCT_SUB_STORING: - ACK = send_usb_tux_cmd(STORE_SOUND_CMD, data[2], 0, 0); + ACK = send_usb_tux_cmd(STORE_SOUND_CMD, 0, 0, 0); break; - case TUX_CMD_STRUCT_SUB_STORE_INDEX: - ACK = send_usb_tux_cmd(STORE_INDEX_CMD, data[2], data[3], data[4]); + case TUX_CMD_STRUCT_SUB_CONFIRM: + ACK = send_usb_tux_cmd(CONFIRM_STORAGE_CMD, data[2], 0, 0); break; + case TUX_CMD_STRUCT_SUB_ERASE: + ACK = send_usb_tux_cmd(ERASE_FLASH_CMD, 0, 0, 0); + break; case TUX_CMD_STRUCT_SUB_TEST: ACK = send_usb_tux_cmd(TEST_SOUND_CMD, 0, 0, 0); break; @@ -635,10 +638,13 @@ result[3] = tux_status.battery.loaded; break; case DATA_STATUS_AUDIO: - result[1] = audio.play; - result[2] = audio.record; - result[3] = audio.status; + result[1] = tux_status.audio.play_internal_sound; + result[2] = tux_status.audio.streaming; break; + case DATA_PROGRAMMING_AUDIO: + result[1] = tux_status.audio.record; + result[2] = tux_status.audio.last_block_size; + break; case DATA_STATUS_EYES_POSITION_COUNTER: result[1] = position1.eyes_position.Byte; break; Modified: daemon/trunk/libs/USBDaemon_status_table.c =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.c 2007-11-27 09:38:35 UTC (rev 730) +++ daemon/trunk/libs/USBDaemon_status_table.c 2007-11-27 09:45:14 UTC (rev 731) @@ -69,8 +69,10 @@ static void update_sound_flash_properties(const unsigned char *data) { tux_status.sound_flash.number_of_sounds = data[1]; + tux_status.sound_flash.flash_usage = data[2]; log_debug("%d sounds in flash", tux_status.sound_flash.number_of_sounds); + log_debug("the last block used is : %d ", tux_status.sound_flash.flash_usage); } static void update_ir(const unsigned char *new_status) @@ -249,7 +251,7 @@ tcp_server_send_raw(tcp_frame); } -static void audio_event(int play, int record, int status) +static void flash_programming_event(int numSound, int status) { tcp_frame_t tcp_frame; @@ -260,16 +262,34 @@ tcp_frame[2] = DATA_TP_RSP; tcp_frame[3] = SUBDATA_TP_STATUS; - tcp_frame[4] = DATA_STATUS_AUDIO; + tcp_frame[4] = DATA_PROGRAMMING_AUDIO; - tcp_frame[5] = play; - tcp_frame[6] = record; - tcp_frame[7] = status; + tcp_frame[5] = numSound; + tcp_frame[6] = status; tcp_server_send_raw(tcp_frame); } +static void audio_event(int numSound, int status) +{ + tcp_frame_t tcp_frame; + + tcp_frame_zero(&tcp_frame); + + tcp_frame[0] = SOURCE_TUX; + tcp_frame[1] = SS_DEFAULT; + tcp_frame[2] = DATA_TP_RSP; + tcp_frame[3] = SUBDATA_TP_STATUS; + + tcp_frame[4] = DATA_STATUS_AUDIO; + + tcp_frame[5] = numSound; + tcp_frame[6] = status; + tcp_server_send_raw(tcp_frame); +} + + static void pong_event(unsigned char pong_number, unsigned char pong_received) { tcp_frame_t tcp_frame; @@ -575,8 +595,18 @@ case STATUS_SENSORS1_CMD: if (sensors1.Byte != new_status[1]) sensors1_changed(new_status[1]); + + tux_status.audio.play_internal_sound = new_status[2]; + tux_status.audio.streaming = new_status[3]; + audio_event(new_status[2], new_status[3]); break; + case STATUS_FLASH_PROG_CMD: + tux_status.audio.record = new_status[1]; + tux_status.audio.last_block_size = new_status[2]; + flash_programming_event(new_status[1], new_status[2]); + break; + case STATUS_LIGHT_CMD: { int light_level; @@ -601,21 +631,6 @@ } break; - case STATUS_AUDIO_CMD: - { - int play; - int record; - int status; - play = new_status[1]; - record = new_status[2]; - status = new_status[3]; - audio.play = play; - audio.record = record; - audio.status = status; - audio_event(play, record, status); - } - break; - case STATUS_POSITION1_CMD: if (position1.eyes_position.Byte != new_status[1] || position1.mouth_position.Byte != new_status[2] Modified: daemon/trunk/libs/USBDaemon_status_table.h =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.h 2007-11-27 09:38:35 UTC (rev 730) +++ daemon/trunk/libs/USBDaemon_status_table.h 2007-11-27 09:45:14 UTC (rev 731) @@ -131,7 +131,7 @@ #define TUX_CMD_STRUCT_SUB_SEND 0x04 #define TUX_CMD_STRUCT_SUB_PLAY 0x05 #define TUX_CMD_STRUCT_SUB_STORING 0x06 -#define TUX_CMD_STRUCT_SUB_STORE_INDEX 0x07 +#define TUX_CMD_STRUCT_SUB_CONFIRM 0x07 #define TUX_CMD_STRUCT_SUB_TEST 0x08 #define TUX_CMD_STRUCT_SUB_BLINK 0x09 #define TUX_CMD_STRUCT_SUB_CH_GENERAL 0x0A @@ -140,6 +140,7 @@ #define TUX_CMD_STRUCT_SUB_UP 0x0C #define TUX_CMD_STRUCT_SUB_CLOSE 0x0D #define TUX_CMD_STRUCT_SUB_DOWN 0x0D +#define TUX_CMD_STRUCT_SUB_ERASE 0x0E /* Tux request information */ #define TUX_REQ_INFO_VERSION 0x01 @@ -182,6 +183,7 @@ #define DATA_STATUS_BATTERY 0x25 #define DATA_STATUS_AUDIO 0x26 #define DATA_STATUS_SOUND_FLASH 0x29 +#define DATA_PROGRAMMING_AUDIO 0x2A /* tux connection commands available on the usb dongle */ typedef enum @@ -249,11 +251,12 @@ } sensors2; struct { - int play; - int record; + int numSound; int status; } audio; + + struct { _PORT_BYTE_ eyes_position; @@ -302,11 +305,6 @@ EMPTY, } battery_status_t; -/** States of the audio recording (flash programming) process */ -typedef enum audiorec_status -{ - NOP, /**< XXX to be defined */ -} audiorec_status_t; /** * Tux status table. @@ -353,6 +351,8 @@ space remaining in the flash */ } sound_flash; + + /** Battery status. * 'loaded' can be used to filter out 'level' measurements that occurred * when the motors were running as the battery voltage is highly affected @@ -378,6 +378,8 @@ bool mute; /**< Set when the amplifier has been muted */ audiorec_status_t record_state; /**< XXX need to define the enum for the states */ + unsigned int record; + unsigned int last_block_size; } audio; }; |