diff --git a/src/Makefile b/src/Makefile index ec6fd356f..3112903cc 100644 --- a/src/Makefile +++ b/src/Makefile @@ -97,7 +97,7 @@ WS_HOW_HIGH = YES # Values = YES, NO VARIO = YES -# SDCARD Logs +# SDCARD # Values = YES, NO SDCARD = NO @@ -333,7 +333,9 @@ ifeq ($(EEPROM_PROGRESS_BAR), YES) endif ifeq ($(SDCARD), YES) + MODS:=${MODS}S CPPDEFS += -DSDCARD + CPPSRC += logs.cpp endif RUN_FROM_FLASH = 1 @@ -367,9 +369,8 @@ ifeq ($(PCB), V4) CPPSRC += stock/audio.cpp haptic.cpp ifeq ($(SDCARD), YES) - CPPSRC += gruvin9x/logs.cpp FatFs/fattime.c gruvin9x/rtc.cpp gruvin9x/diskio.cpp + CPPSRC += FatFs/fattime.c gruvin9x/rtc.cpp gruvin9x/diskio.cpp EXTRABOARDSRC += FatFs/ff.c FatFs/option/ccsbcs.c - MODS:=${MODS}S endif ifeq ($(SOMO), YES) diff --git a/src/beeper.h b/src/beeper.h index 316f821ef..4cf6e3517 100644 --- a/src/beeper.h +++ b/src/beeper.h @@ -64,6 +64,7 @@ extern void beep(uint8_t val); #define AUDIO_WARNING1() beep(3) #define AUDIO_TX_BATTERY_LOW() beep(4) #define AUDIO_ERROR() beep(4) +#define AUDIO_ERROR_MESSAGE(e) beep(4) #define AUDIO_TIMER_30() { beepAgain=2; beep(2); } #define AUDIO_TIMER_20() { beepAgain=1; beep(2); } #define AUDIO_TIMER_10() beep(2) diff --git a/src/eeprom_arm.cpp b/src/eeprom_arm.cpp index e60314df8..ffcde9913 100644 --- a/src/eeprom_arm.cpp +++ b/src/eeprom_arm.cpp @@ -533,8 +533,8 @@ void eeReadAll() { generalDefault(); - alert(STR_EEPROMWARN, STR_BADEEPROMDATA); - message(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL); + ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM); + MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING); modelDefault(0); @@ -914,7 +914,6 @@ uint32_t unprotect_eeprom() } #if defined(SDCARD) -FATFS g_FATFS_Obj; // TODO not here const pm_char * eeBackupModel(uint8_t i_fileSrc) { char *buf = reusableBuffer.models.mainname; diff --git a/src/eeprom_avr.cpp b/src/eeprom_avr.cpp index d8077789c..ae38fa07b 100644 --- a/src/eeprom_avr.cpp +++ b/src/eeprom_avr.cpp @@ -570,7 +570,6 @@ const pm_char * eeBackupModel(uint8_t i_fileSrc) #ifdef SIMU printf("SD-card backup filename=%s\n", buf); fflush(stdout); - FRESULT #endif result = f_open(&archiveFile, buf, FA_CREATE_ALWAYS | FA_WRITE); @@ -868,10 +867,6 @@ void eeLoadModel(uint8_t id) resetProto(); resetAll(); - -#ifdef SDCARD - openLogs(); -#endif } } @@ -883,8 +878,8 @@ void eeReadAll() { generalDefault(); - alert(STR_EEPROMWARN, STR_BADEEPROMDATA); - message(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL); + ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM); + MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING); EeFsFormat(); diff --git a/src/ersky9x/audio.cpp b/src/ersky9x/audio.cpp index b78a4001a..6bfb4790c 100644 --- a/src/ersky9x/audio.cpp +++ b/src/ersky9x/audio.cpp @@ -36,6 +36,10 @@ const char * audioFilenames[] = { "inactiv", "lowbatt", + "thralert", + "swalert", + "eebad", + "eeformat" "error", "keyup", "keydown", @@ -509,6 +513,8 @@ void audioEvent(uint8_t e, uint8_t f) } break; // error + case AU_THROTTLE_ALERT: + case AU_SWITCH_ALERT: case AU_ERROR: audioQueue.play(BEEP_DEFAULT_FREQ, 50, 2, PLAY_NOW); break; diff --git a/src/ersky9x/audio.h b/src/ersky9x/audio.h index 946c49b49..fd4ed89d0 100644 --- a/src/ersky9x/audio.h +++ b/src/ersky9x/audio.h @@ -114,6 +114,7 @@ void audioEvent(uint8_t e, uint8_t f=BEEP_DEFAULT_FREQ); #define AUDIO_WARNING2() audioEvent(AU_WARNING2) #define AUDIO_TX_BATTERY_LOW() audioEvent(AU_TX_BATTERY_LOW) #define AUDIO_ERROR() audioEvent(AU_ERROR) +#define AUDIO_ERROR_MESSAGE(e) audioEvent(e) #define AUDIO_TIMER_30() audioEvent(AU_TIMER_30) #define AUDIO_TIMER_20() audioEvent(AU_TIMER_20) #define AUDIO_TIMER_10() audioEvent(AU_TIMER_10) diff --git a/src/ersky9x/diskio.c b/src/ersky9x/diskio.c index 755899b69..753926490 100644 --- a/src/ersky9x/diskio.c +++ b/src/ersky9x/diskio.c @@ -808,7 +808,7 @@ void sdInit() } uint8_t sdErrorCount = 0; -extern FATFS g_FATFS_Obj; +FATFS g_FATFS_Obj; void sdPoll10mS() { if (!CardIsConnected()) { diff --git a/src/general_menus.cpp b/src/general_menus.cpp index cd4078cee..1c15a8871 100644 --- a/src/general_menus.cpp +++ b/src/general_menus.cpp @@ -269,9 +269,6 @@ void menuProcSetup(uint8_t event) b = 100 - g_eeGeneral.backlightBright; CHECK_INCDEC_GENVAR(event, b, 0, 100); g_eeGeneral.backlightBright = 100 - b; -#ifndef SIMU - PWM->PWM_CH_NUM[0].PWM_CDTYUPD = g_eeGeneral.backlightBright ; -#endif } break; #endif diff --git a/src/gruvin9x/diskio.cpp b/src/gruvin9x/diskio.cpp index 3e5a18c09..66604375f 100644 --- a/src/gruvin9x/diskio.cpp +++ b/src/gruvin9x/diskio.cpp @@ -646,3 +646,4 @@ void sdPoll10mS (void) Stat = s; } +FATFS g_FATFS_Obj; diff --git a/src/gruvin9x/logs.cpp b/src/logs.cpp similarity index 76% rename from src/gruvin9x/logs.cpp rename to src/logs.cpp index 23954985f..e9ad91bf2 100644 --- a/src/gruvin9x/logs.cpp +++ b/src/logs.cpp @@ -31,76 +31,81 @@ * */ -#include "../open9x.h" -#include "../FatFs/ff.h" +#include "open9x.h" +#include "FatFs/ff.h" -char g_logFilename[21]; // "/O9XLOGS/M00_000.CSV\0" max required length = 21 -FATFS g_FATFS_Obj; // TODO not here +char g_logFilename[21]; // FIL g_oLogFile; const pm_char * g_logError = NULL; +uint8_t logDelay; const pm_char * openLogs() { // Determine and set log file filename FRESULT result; DIR folder; - char *buf = g_logFilename; + char filename[24]; // close any file left open. E.G. Changing models with log switch still on. if (g_oLogFile.fs) f_close(&g_oLogFile); - result = f_mount(0, &g_FATFS_Obj); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } + strcpy_P(filename, STR_LOGS_PATH); - strcpy_P(buf, STR_LOGS_PATH); - - result = f_opendir(&folder, buf); + result = f_opendir(&folder, filename); if (result != FR_OK) { if (result == FR_NO_PATH) - result = f_mkdir(buf); + result = f_mkdir(filename); if (result != FR_OK) return SDCARD_ERROR(result); } - buf[sizeof(LOGS_PATH)-1] = '/'; - memcpy(&buf[sizeof(LOGS_PATH)], g_model.name, sizeof(g_model.name)); - buf[sizeof(LOGS_PATH)+sizeof(g_model.name)] = '\0'; + filename[sizeof(LOGS_PATH)-1] = '/'; + memcpy(&filename[sizeof(LOGS_PATH)], g_model.name, sizeof(g_model.name)); + filename[sizeof(LOGS_PATH)+sizeof(g_model.name)] = '\0'; uint8_t i = sizeof(LOGS_PATH)+sizeof(g_model.name)-1; uint8_t len = 0; while (i>sizeof(LOGS_PATH)-1) { - if (!len && buf[i]) + if (!len && filename[i]) len = i+1; if (len) { - if (buf[i]) - buf[i] = idx2char(buf[i]); + if (filename[i]) + filename[i] = idx2char(filename[i]); else - buf[i] = '_'; + filename[i] = '_'; } i--; } if (len == 0) { uint8_t num = g_eeGeneral.currModel + 1; - strcpy_P(&buf[sizeof(LOGS_PATH)], STR_MODEL); - buf[sizeof(LOGS_PATH) + PSIZE(TR_MODEL)] = (char)((num / 10) + '0'); - buf[sizeof(LOGS_PATH) + PSIZE(TR_MODEL) + 1] = (char)((num % 10) + '0'); + strcpy_P(&filename[sizeof(LOGS_PATH)], STR_MODEL); + filename[sizeof(LOGS_PATH) + PSIZE(TR_MODEL)] = (char)((num / 10) + '0'); + filename[sizeof(LOGS_PATH) + PSIZE(TR_MODEL) + 1] = (char)((num % 10) + '0'); len = sizeof(LOGS_PATH) + PSIZE(TR_MODEL) + 2; } - strcpy_P(&buf[len], STR_LOGS_EXT); + strcpy_P(&filename[len], STR_LOGS_EXT); - result = f_open(&g_oLogFile, buf, FA_OPEN_ALWAYS | FA_WRITE); + result = f_open(&g_oLogFile, filename, FA_OPEN_ALWAYS | FA_WRITE); if (result != FR_OK) { return SDCARD_ERROR(result); } if (g_oLogFile.fsize == 0) { - f_puts("Date,Time,Buffer,RX,TX,A1,A2,", &g_oLogFile); +#if defined(PCBV4) + f_puts("Date,Time,", &g_oLogFile); +#endif + +#if defined(FRSKY) + f_puts("Buffer,RX,TX,A1,A2,", &g_oLogFile); +#endif + +#if defined(FRSKY_HUB) if (g_model.frsky.usrProto == USR_PROTO_FRSKY_HUB) f_puts("GPS Date,GPS Time,Long,Lat,Course,GPS Speed,GPS Alt,Baro Alt,Temp1,Temp2,RPM,Fuel,Volts,AccelX,AccelY,AccelZ,", &g_oLogFile); +#endif + f_puts("Rud,Ele,Thr,Ail,P1,P2,P3,THR,RUD,ELE,ID0,ID1,ID2,AIL,GEA,TRN\n", &g_oLogFile); } @@ -112,30 +117,44 @@ const pm_char * openLogs() return NULL; } +uint16_t lastLogTime = 0; + void closeLogs() { f_close(&g_oLogFile); + lastLogTime = 0; } void writeLogs() { - if (g_oLogFile.fs && isFunctionActive(FUNC_LOGS)) - { + if (isFunctionActive(FUNC_LOGS) && logDelay > 0) { + uint16_t tmr10ms = get_tmr10ms(); + if (lastLogTime == 0 || tmr10ms - lastLogTime >= 10*logDelay) { + lastLogTime = tmr10ms; + + if (!g_oLogFile.fs) { + if (openLogs()) + return; + } + +#if defined(PCBV4) static struct gtm t; struct gtm *at = &t; filltm(&g_unixTime, &t); f_printf(&g_oLogFile, "%4d-%02d-%02d,", at->tm_year+1900, at->tm_mon+1, at->tm_mday); f_printf(&g_oLogFile, "%02d:%02d:%02d,", at->tm_hour, at->tm_min, at->tm_sec); +#endif -#ifdef FRSKY +#if defined(FRSKY) f_printf(&g_oLogFile, "%d,", frskyStreaming); f_printf(&g_oLogFile, "%d,", frskyData.rssi[0].value); f_printf(&g_oLogFile, "%d,", frskyData.rssi[1].value); f_printf(&g_oLogFile, "%d,", frskyData.analog[0].value); f_printf(&g_oLogFile, "%d,", frskyData.analog[1].value); #endif -#ifdef FRSKY_HUB + +#if defined(FRSKY_HUB) if (g_model.frsky.usrProto == USR_PROTO_FRSKY_HUB) { f_printf(&g_oLogFile, "%4d-%02d-%02d,", frskyData.hub.year+2000, frskyData.hub.month, frskyData.hub.day); f_printf(&g_oLogFile, "%02d:%02d:%02d,", frskyData.hub.hour, frskyData.hub.min, frskyData.hub.sec); @@ -157,8 +176,10 @@ void writeLogs() f_printf(&g_oLogFile, "%d,", frskyData.hub.accelZ); } #endif + for (uint8_t i=0; ifunc, 0, FUNC_MAX-1); + if (checkIncDec_Ret) FSW_PARAM(sd) = 0; } } else if (attr) { @@ -2512,6 +2513,17 @@ void menuProcFunctionSwitches(uint8_t event) val_max = NUM_XCHNPLAY-1; putsChnRaw(17*FW, y, val_displayed+1, attr); } +#endif +#if defined(SDCARD) + else if (sd->func == FUNC_LOGS) { + if (val_displayed) { + lcd_outdezAtt(21*FW-3, y, val_displayed, attr|PREC1); + lcd_putc(lcdLastPos, y, 's'); + } + else { + lcd_putsiAtt(19*FW-4, y, STR_MMMINV, 0, attr); + } + } #endif else if (sd->func == FUNC_RESET) { val_max = 3; diff --git a/src/open9x.cpp b/src/open9x.cpp index 76c4f8098..85d51955d 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -987,7 +987,7 @@ void checkLowEEPROM() { if (g_eeGeneral.disableMemoryWarning) return; if (EeFsGetFree() < 100) { - alert(STR_EEPROMWARN, STR_EEPROMLOWMEM); + ALERT(STR_EEPROMWARN, STR_EEPROMLOWMEM, AU_ERROR); } } #endif @@ -1010,7 +1010,7 @@ void checkTHR() if(v<=lowLim) return; // first - display warning - message(STR_THROTTLEWARN, STR_THROTTLENOTIDLE, STR_PRESSANYKEYTOSKIP); + MESSAGE(STR_THROTTLEWARN, STR_THROTTLENOTIDLE, STR_PRESSANYKEYTOSKIP, AU_THROTTLE_ALERT); while (1) { @@ -1035,7 +1035,7 @@ void checkTHR() void checkAlarm() // added by Gohst { if (g_eeGeneral.disableAlarmWarning) return; - if (g_eeGeneral.beeperMode == e_mode_quiet) alert(STR_ALARMSWARN, STR_ALARMSDISABLED); + if (g_eeGeneral.beeperMode == e_mode_quiet) ALERT(STR_ALARMSWARN, STR_ALARMSDISABLED, AU_ERROR); } void checkSwitches() @@ -1055,7 +1055,7 @@ void checkSwitches() // first - display warning if (last_bad_switches != switches_states) { - message(STR_SWITCHWARN, NULL, STR_PRESSANYKEYTOSKIP); + MESSAGE(STR_SWITCHWARN, NULL, STR_PRESSANYKEYTOSKIP, AU_SWITCH_ALERT); uint8_t x = 2; for (uint8_t i=1; i<8; i++) { uint8_t attr = (states & (1 << i)) == (switches_states & (1 << i)) ? 0 : INVERS; @@ -1080,9 +1080,9 @@ void checkSwitches() } } -void alert(const pm_char * t, const pm_char *s) +void alert(const pm_char * t, const pm_char *s MESSAGE_SOUND_ARG) { - message(t, s, STR_PRESSANYKEY); + MESSAGE(t, s, STR_PRESSANYKEY, sound); while(1) { @@ -1102,7 +1102,7 @@ void alert(const pm_char * t, const pm_char *s) } } -void message(const pm_char *title, const pm_char *t, const char *last) +void message(const pm_char *title, const pm_char *t, const char *last MESSAGE_SOUND_ARG) { lcd_clear(); @@ -1122,7 +1122,7 @@ void message(const pm_char *title, const pm_char *t, const char *last) if (t) lcd_putsLeft(5*FH, t); if (last) { lcd_putsLeft(7*FH, last); - AUDIO_ERROR(); + AUDIO_ERROR_MESSAGE(sound); } refreshDisplay(); lcdSetRefVolt(g_eeGeneral.contrast); @@ -1767,6 +1767,12 @@ void evalFunctions() } } +#if defined(SDCARD) + if (sd->func == FUNC_LOGS) { + logDelay = FSW_PARAM(sd); + } +#endif + if (~activeFunctionSwitches & switch_mask) { if (sd->func == FUNC_RESET) { switch (FSW_PARAM(sd)) { @@ -2480,7 +2486,17 @@ void perMain() } } -#if defined(PCBV4) && defined(SDCARD) +#if defined(SDCARD) +#if defined(PCBV4) + static uint8_t mountTimer; + if (mountTimer-- == 0) { + mountTimer = 100; + if (g_FATFS_Obj.fs_type == 0) { + f_mount(0, &g_FATFS_Obj); + } + } +#endif + writeLogs(); #endif @@ -2502,10 +2518,6 @@ void perMain() displayBufferIndex = 20; } userDataDisplayBuf[displayBufferIndex] = userDataRxBuffer[byt]; - - // Write the raw byte out to log file, if open - if (testLogOpen && (g_oLogFile.fs != 0)) - f_putc(userDataRxBuffer[byt], &g_oLogFile); } #endif @@ -3492,6 +3504,14 @@ void menusTask(void * pdata) CoTickDelay(5); // 10ms for now } +#if defined(SDCARD) + closeLogs(); +#endif + +#if defined(HAPTIC) + hapticOff(); +#endif + SysTick->CTRL = 0; // turn off systick lcd_clear() ; @@ -3499,14 +3519,8 @@ void menusTask(void * pdata) g_eeGeneral.unexpectedShutdown=0; eeDirty(EE_GENERAL); eeCheck(true); -#if defined(SDCARD) && !defined(PCBARM) - closeLogs(); -#endif lcd_clear() ; refreshDisplay() ; -#if defined(HAPTIC) - hapticOff(); -#endif soft_power_off(); // Only turn power off if necessary if (shutdown_state == e_power_usb) { diff --git a/src/open9x.h b/src/open9x.h index 9c057050c..0cabc67c6 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -516,8 +516,18 @@ void readKeysAndTrims(); uint16_t evalChkSum(); -extern void alert(const pm_char * t, const pm_char * s); -extern void message(const pm_char *title, const pm_char *s, const char *last); +#if defined(PCBARM) || defined(SOMO) +#define MESSAGE_SOUND_ARG , uint8_t sound +#define MESSAGE(title, msg, info, sound) message(title, msg, info, sound) +#define ALERT(title, msg, sound) alert(title, msg, sound) +#else +#define MESSAGE_SOUND_ARG +#define MESSAGE(title, msg, info, sound) message(title, msg, info) +#define ALERT(title, msg, sound) alert(title, msg) +#endif + +extern void message(const pm_char *title, const pm_char *s, const char *last MESSAGE_SOUND_ARG); +extern void alert(const pm_char * t, const pm_char * s MESSAGE_SOUND_ARG); void perMain(); void per10ms(); @@ -873,6 +883,12 @@ extern uint16_t jeti_keys; enum AUDIO_SOUNDS { AU_INACTIVITY, AU_TX_BATTERY_LOW, +#if defined(PCBARM) || defined(SOMO) + AU_THROTTLE_ALERT, + AU_SWITCH_ALERT, + AU_BAD_EEPROM, + AU_EEPROM_FORMATTING, +#endif AU_ERROR, AU_KEYPAD_UP, AU_KEYPAD_DOWN, diff --git a/src/sdcard.h b/src/sdcard.h index a1f9b8e1b..d3d47b46e 100644 --- a/src/sdcard.h +++ b/src/sdcard.h @@ -53,10 +53,9 @@ #define LOGS_EXT ".csv" #define SOUNDS_EXT ".wav" -extern char g_logFilename[21]; // "/9XLOGS/M00_000.CSV\0" max required length = 21 extern FATFS g_FATFS_Obj; -extern FIL g_oLogFile; +extern uint8_t logDelay; extern const pm_char * openLogs(); extern void closeLogs(); extern void writeLogs(); diff --git a/src/simpgmspace.cpp b/src/simpgmspace.cpp index a718ff2a9..637416929 100644 --- a/src/simpgmspace.cpp +++ b/src/simpgmspace.cpp @@ -172,13 +172,15 @@ void *main_thread(void *) eeReadAll(); //load general setup and selected model + if (g_eeGeneral.backlightMode != e_backlight_mode_off) backlightOn(); // on Tx start turn the light on + if (main_thread_running == 1) { -#ifdef SPLASH doSplash(); -#endif + #if !defined(PCBARM) checkLowEEPROM(); #endif + checkTHR(); checkSwitches(); checkAlarm(); diff --git a/src/stock/audio.h b/src/stock/audio.h index f0cc0f0b0..8c02266f3 100644 --- a/src/stock/audio.h +++ b/src/stock/audio.h @@ -118,6 +118,11 @@ void audioDefevent(uint8_t e); #define AUDIO_WARNING2() audioDefevent(AU_WARNING2) #define AUDIO_TX_BATTERY_LOW() audioDefevent(AU_TX_BATTERY_LOW) #define AUDIO_ERROR() audioDefevent(AU_ERROR) +#if defined(SOMO) +#define AUDIO_ERROR_MESSAGE(e) audioDefevent(e) +#else +#define AUDIO_ERROR_MESSAGE(e) audioDefevent(AU_ERROR) +#endif #define AUDIO_TIMER_30() audioDefevent(AU_TIMER_30) #define AUDIO_TIMER_20() audioDefevent(AU_TIMER_20) #define AUDIO_TIMER_10() audioDefevent(AU_TIMER_10) diff --git a/src/translations/cz.h b/src/translations/cz.h index 5cc1bf503..896fa7637 100644 --- a/src/translations/cz.h +++ b/src/translations/cz.h @@ -116,9 +116,9 @@ #endif #if defined(PCBARM) #if defined(SDCARD) -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "SDCARD Logs\0 " #define TR_PLAY_TRACK "Play Track\0 " -#define TR_PLAY_VALUE "[Play Value]\0" +#define TR_PLAY_VALUE "Play Value\0 " #else #define TR_SDCLOGS "[SDCARD Logs]" #define TR_PLAY_TRACK "[Play Track]\0" diff --git a/src/translations/de.h b/src/translations/de.h index 7f5011ddc..2afda9729 100644 --- a/src/translations/de.h +++ b/src/translations/de.h @@ -116,9 +116,9 @@ #endif #if defined(PCBARM) #if defined(SDCARD) -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "SDCARD Logs\0 " #define TR_PLAY_TRACK "Play Track\0 " -#define TR_PLAY_VALUE "[Play Value]\0" +#define TR_PLAY_VALUE "Play Value\0 " #else #define TR_SDCLOGS "[SDCARD Logs]" #define TR_PLAY_TRACK "[Play Track]\0" diff --git a/src/translations/en.h b/src/translations/en.h index fb6fb4dbe..79f5950c3 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -116,7 +116,7 @@ #endif #if defined(PCBARM) #if defined(SDCARD) -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "SDCARD Logs\0 " #define TR_PLAY_TRACK "Play Track\0 " #define TR_PLAY_VALUE "Play Value\0 " #else diff --git a/src/translations/fr.h b/src/translations/fr.h index 354931894..0d06b288c 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -111,7 +111,7 @@ #endif #if defined(PCBARM) #if defined(SDCARD) -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "SDCARD Logs\0 " #define TR_PLAY_TRACK "Play Track\0 " #define TR_PLAY_VALUE "Play Value\0 " #else diff --git a/src/translations/it.h b/src/translations/it.h index 3d6396043..408dabc4d 100644 --- a/src/translations/it.h +++ b/src/translations/it.h @@ -116,9 +116,9 @@ #endif #if defined(PCBARM) #if defined(SDCARD) -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "SDCARD Logs\0 " #define TR_PLAY_TRACK "Play Track\0 " -#define TR_PLAY_VALUE "[Play Value]\0" +#define TR_PLAY_VALUE "Play Value\0 " #else #define TR_SDCLOGS "[SDCARD Logs]" #define TR_PLAY_TRACK "[Play Track]\0" diff --git a/util/tts.py b/util/tts.py index 44a5f1765..7d9b2b379 100644 --- a/util/tts.py +++ b/util/tts.py @@ -57,6 +57,7 @@ def generate(str, idx): if 'ad4' in sys.argv: subprocess.Popen(["AD4CONVERTER", "-E4", result], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + os.remove(result) result = result.replace(".wav", ".ad4") elif 'sox' in sys.argv: maxvolume = subprocess.Popen(["sox",result,"-n","stat","-v"],stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[1]