From a626ea2ceb34e595d8610e8840c50861fa4096a6 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 22 Jan 2013 11:21:14 +0000 Subject: [PATCH] [Voice] Slider for the audio volume [Sky9x] Defaut audio volume is 12 (max is 23) Issue 166 continued --- src/act/board_act.h | 4 +- src/general_menus.cpp | 64 +++++++------ src/gruvin9x/somo14d.h | 4 +- src/myeeprom.h | 2 +- src/open9x.cpp | 11 ++- src/sky9x/audio_driver.cpp | 4 +- src/sky9x/audio_driver.h | 4 +- src/stock/voice.h | 4 +- src/translations/cz.h | 11 ++- src/translations/de.h | 11 ++- src/translations/en.h | 181 ++++++++++++++++++++++--------------- src/translations/es.h | 11 ++- src/translations/fr.h | 12 ++- src/translations/it.h | 13 ++- src/translations/pt.h | 14 ++- src/translations/se.h | 13 ++- src/x9d/audio_driver.h | 8 +- 17 files changed, 243 insertions(+), 128 deletions(-) diff --git a/src/act/board_act.h b/src/act/board_act.h index 8e9fb4522..917570db5 100644 --- a/src/act/board_act.h +++ b/src/act/board_act.h @@ -124,8 +124,6 @@ extern uint16_t sessionTimer; void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t size); #endif -#define NUM_VOL_LEVELS 24 - void audioInit( void ) ; void audioEnd( void ) ; @@ -145,6 +143,8 @@ inline void dacStop() { } +#define VOLUME_LEVEL_MAX 23 +#define VOLUME_LEVEL_DEF 12 inline void setVolume( register uint8_t volume ) { } diff --git a/src/general_menus.cpp b/src/general_menus.cpp index dac359d3d..3eaf15d1b 100644 --- a/src/general_menus.cpp +++ b/src/general_menus.cpp @@ -79,21 +79,34 @@ const MenuFuncP_PROGMEM menuTabDiag[] PROGMEM = { #define RADIO_SETUP_DATE_COLUMN (FW*15+5) #endif -#if defined(GRAPHICS) -void displaySlider(uint8_t x, uint8_t y, uint8_t value, uint8_t attr) -{ - lcd_putc(RADIO_SETUP_2ND_COLUMN+2*FW+(value*FW), y, '$'); - lcd_hline(RADIO_SETUP_2ND_COLUMN, y+3, 5*FW-1, SOLID); - if (attr && (!(attr & BLINK) || !BLINK_ON_PHASE)) lcd_filled_rect(RADIO_SETUP_2ND_COLUMN, y, 5*FW-1, FH-1); -} -#define SLIDER(y, value, min, max, label, values, event, attr) { \ - int8_t tmp = value; \ - displaySlider(RADIO_SETUP_2ND_COLUMN, y, tmp, attr); \ - value = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, label, NULL, tmp, min, max, attr, event); \ - } +#if !defined(CPUM64) + void displaySlider(uint8_t x, uint8_t y, uint8_t value, uint8_t max, uint8_t attr) + { + lcd_putc(RADIO_SETUP_2ND_COLUMN+(value*4*FW)/max, y, '$'); + lcd_hline(RADIO_SETUP_2ND_COLUMN, y+3, 5*FW-1, SOLID); + if (attr && (!(attr & BLINK) || !BLINK_ON_PHASE)) lcd_filled_rect(RADIO_SETUP_2ND_COLUMN, y, 5*FW-1, FH-1); + } + #define SLIDER_5POS(y, value, label, event, attr) { \ + int8_t tmp = value; \ + displaySlider(RADIO_SETUP_2ND_COLUMN, y, 2+tmp, 4, attr); \ + value = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, label, NULL, tmp, -2, +2, attr, event); \ + } +#elif defined(GRAPHICS) + void display5posSlider(uint8_t x, uint8_t y, uint8_t value, uint8_t attr) + { + lcd_putc(RADIO_SETUP_2ND_COLUMN+2*FW+(value*FW), y, '$'); + lcd_hline(RADIO_SETUP_2ND_COLUMN, y+3, 5*FW-1, SOLID); + if (attr && (!(attr & BLINK) || !BLINK_ON_PHASE)) lcd_filled_rect(RADIO_SETUP_2ND_COLUMN, y, 5*FW-1, FH-1); + } + #define SLIDER_5POS(y, value, label, event, attr) { \ + int8_t tmp = value; \ + display5posSlider(RADIO_SETUP_2ND_COLUMN, y, tmp, attr); \ + value = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, label, NULL, tmp, -2, +2, attr, event); \ + } + #define displaySlider(x, y, value, max, attr) lcd_outdezAtt(x, y, value, attr|LEFT) #else -#define SLIDER(y, value, min, max, label, values, event, attr) \ - value = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, label, values, value, min, max, attr, event) + #define SLIDER_5POS(y, value, label, event, attr) value = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, label, STR_VBEEPLEN, value, -2, +2, attr, event) + #define displaySlider(x, y, value, max, attr) lcd_outdezAtt(x, y, value, attr|LEFT) #endif enum menuGeneralSetupItems { @@ -228,7 +241,7 @@ void menuGeneralSetup(uint8_t event) break; case ITEM_SETUP_BEEPER_LENGTH: - SLIDER(y, g_eeGeneral.beeperLength, -2, 2, STR_LENGTH, STR_VBEEPLEN, event, attr); + SLIDER_5POS(y, g_eeGeneral.beeperLength, STR_LENGTH, event, attr); break; #if defined(AUDIO) @@ -245,22 +258,17 @@ void menuGeneralSetup(uint8_t event) case ITEM_SETUP_SPEAKER_VOLUME: { lcd_putsLeft(y, STR_SPEAKER_VOLUME); -#if defined(CPUARM) - lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.speakerVolume, attr|LEFT); + uint8_t b = g_eeGeneral.speakerVolume+VOLUME_LEVEL_DEF; + displaySlider(RADIO_SETUP_2ND_COLUMN, y, b, VOLUME_LEVEL_MAX, attr); if (attr) { - CHECK_INCDEC_GENVAR(event, g_eeGeneral.speakerVolume, 0, NUM_VOL_LEVELS-1); - } -#else - uint8_t b = g_eeGeneral.speakerVolume+7; - lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, b, attr|LEFT); - if (attr) { - CHECK_INCDEC_GENVAR(event, b, 0, 7); + CHECK_INCDEC_GENVAR(event, b, 0, VOLUME_LEVEL_MAX); if (checkIncDec_Ret) { - g_eeGeneral.speakerVolume = (int8_t)b-7; - SET_VOLUME(b); + g_eeGeneral.speakerVolume = (int8_t)b-VOLUME_LEVEL_DEF; +#if !defined(CPUARM) + setVolume(b); +#endif } } -#endif break; } #endif @@ -275,7 +283,7 @@ void menuGeneralSetup(uint8_t event) break; case ITEM_SETUP_HAPTIC_LENGTH: - SLIDER(y, g_eeGeneral.hapticLength, -2, 2, STR_LENGTH, STR_VBEEPLEN, event, attr); + SLIDER_5POS(y, g_eeGeneral.hapticLength, STR_LENGTH, event, attr); break; case ITEM_SETUP_HAPTIC_STRENGTH: diff --git a/src/gruvin9x/somo14d.h b/src/gruvin9x/somo14d.h index 48060cb38..259fcab79 100644 --- a/src/gruvin9x/somo14d.h +++ b/src/gruvin9x/somo14d.h @@ -46,4 +46,6 @@ extern bool isPlaying(uint8_t id); #define IS_PLAYING(id) isPlaying((id)) #define PLAY_VALUE(v, id) playValue((v), (id)) -#define SET_VOLUME(v) +#define VOLUME_LEVEL_MAX 7 +#define VOLUME_LEVEL_DEF 7 +#define setVolume(v) diff --git a/src/myeeprom.h b/src/myeeprom.h index 9349baad6..6bc011566 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -106,7 +106,7 @@ enum BeeperMode { #if defined(CPUARM) #define EXTRA_GENERAL_FIELDS \ - uint8_t speakerVolume; \ + int8_t speakerVolume; \ uint8_t backlightBright; \ int8_t currentCalib; \ int8_t temperatureWarn; \ diff --git a/src/open9x.cpp b/src/open9x.cpp index 9aafbba97..5d4313ccd 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -2177,7 +2177,7 @@ void evalFunctions() } } else if (sd->func == FUNC_VOLUME) { - requiredSpeakerVolume = ((1024 + getValue(FSW_PARAM(sd))) * NUM_VOL_LEVELS) / 2048; + requiredSpeakerVolume = ((1024 + getValue(FSW_PARAM(sd))) * VOLUME_LEVEL_MAX) / 2048; } #elif defined(VOICE) else if (sd->func == FUNC_PLAY_TRACK) { @@ -2888,7 +2888,7 @@ void doMixerCalculations() } #if defined(CPUARM) - requiredSpeakerVolume = g_eeGeneral.speakerVolume; + requiredSpeakerVolume = g_eeGeneral.speakerVolume + VOLUME_LEVEL_DEF; #endif evalFunctions(); @@ -3436,11 +3436,12 @@ inline void open9xInit(OPEN9X_INIT_ARGS) eeReadAll(); +#if defined(VOICE) + setVolume(g_eeGeneral.speakerVolume+VOLUME_LEVEL_DEF); +#endif + #if defined(CPUARM) - setVolume(g_eeGeneral.speakerVolume); setBacklight(g_eeGeneral.backlightBright); -#elif defined(VOICE) - SET_VOLUME(g_eeGeneral.speakerVolume+7); #endif #if defined(PCBSKY9X) diff --git a/src/sky9x/audio_driver.cpp b/src/sky9x/audio_driver.cpp index 9a944800a..8136e8cc7 100644 --- a/src/sky9x/audio_driver.cpp +++ b/src/sky9x/audio_driver.cpp @@ -165,7 +165,7 @@ void audioEnd() PMC->PMC_PCER0 &= ~0x40000000L ; // Disable peripheral clock to DAC } -static const int8_t volumeScale[NUM_VOL_LEVELS] = +static const int8_t volumeScale[VOLUME_LEVEL_MAX+1] = { 0, 2, 4, 6, 8, 10, 13, 17, 22, 27, 33, 40, 64, 82, 96, 105, 112, 117, 120, 122, 124, 125, 126, 127 @@ -173,7 +173,7 @@ static const int8_t volumeScale[NUM_VOL_LEVELS] = void setVolume(uint8_t volume) { - coprocVolumeRequired = volumeScale[min(volume, NUM_VOL_LEVELS-1)]; + coprocVolumeRequired = volumeScale[min(volume, VOLUME_LEVEL_MAX)]; __disable_irq() ; coprocCheck() ; __enable_irq() ; diff --git a/src/sky9x/audio_driver.h b/src/sky9x/audio_driver.h index fd76df51f..06ad1b23c 100644 --- a/src/sky9x/audio_driver.h +++ b/src/sky9x/audio_driver.h @@ -35,8 +35,6 @@ #ifndef audio_driver_h #define audio_driver_h -#define NUM_VOL_LEVELS 24 - void audioInit( void ) ; void audioEnd( void ) ; @@ -57,6 +55,8 @@ inline void dacStop() DACC->DACC_IDR = DACC_IDR_ENDTX ; // Disable interrupt } +#define VOLUME_LEVEL_MAX 23 +#define VOLUME_LEVEL_DEF 12 void setVolume(uint8_t volume); inline void dacFill(uint16_t *data, uint16_t size) diff --git a/src/stock/voice.h b/src/stock/voice.h index 04b91fa1e..7f79b4488 100644 --- a/src/stock/voice.h +++ b/src/stock/voice.h @@ -75,7 +75,9 @@ extern void pushPrompt16(uint16_t value); extern struct t_voice *voiceaddress( void ) ; extern struct t_voice Voice ; -#define SET_VOLUME(v) pushPrompt16((v) | 0xFFF0) +#define VOLUME_LEVEL_MAX 7 +#define VOLUME_LEVEL_DEF 7 +#define setVolume(v) pushPrompt16((v) | 0xFFF0) inline bool isPlaying() { diff --git a/src/translations/cz.h b/src/translations/cz.h index 1c8804bd3..594b73e58 100644 --- a/src/translations/cz.h +++ b/src/translations/cz.h @@ -216,7 +216,16 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Sm\203r""V\212\207k""Plyn""K\206id""Pot1""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" "MAX ""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "Sm\203r""V\212\207k""Plyn""K\206id""3PO2""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "Sm\203r""V\212\207k""Plyn""K\206id""Pot1""3PO2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "Sm\203r""V\212\207k""Plyn""K\206id""Pot1""Pot3""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" "MAX ""3PO1" TR_CYC_VSRCRAW +#elseN + #define TR_VSRCRAW "Sm\203r""V\212\207k""Plyn""K\206id""Pot1""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" "MAX ""3POS" TR_CYC_VSRCRAW +#endif #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "VYP""ABS""THs""TH%""THt" diff --git a/src/translations/de.h b/src/translations/de.h index 41b21e218..157c8af24 100644 --- a/src/translations/de.h +++ b/src/translations/de.h @@ -217,7 +217,16 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "StR\0""H\203R\0""Gas\0""QuR\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmH" "TrmG" "TrmQ" "MAX\0""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "StR\0""H\203R\0""Gas\0""QuR\0""3PO2""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmH" "TrmG" "TrmQ" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "StR\0""H\203R\0""Gas\0""QuR\0""P1\0 ""3PO2""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmH" "TrmG" "TrmQ" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "StR\0""H\203R\0""Gas\0""QuR\0""P1\0 ""P2\0 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmH" "TrmG" "TrmQ" "MAX\0""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "StR\0""H\203R\0""Gas\0""QuR\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmS" "TrmH" "TrmG" "TrmQ" "MAX\0""3POS" TR_CYC_VSRCRAW +#endif #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "AUS""ABS""GSs""GS%""GSt" diff --git a/src/translations/en.h b/src/translations/en.h index 9173d51ce..232f5504d 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -36,34 +36,39 @@ #define TR_VTRIMINC TR("Expo ""ExFine""Fine ""Medium""Coarse","Exponential""Extra Fine ""Fine ""Medium ""Coarse ") #define LEN_RETA123 "\001" + #if defined(PCBGRUVIN9X) -#if ROTARY_ENCODERS > 2 -#define TR_RETA123 "RETA123abcd" -#else -#define TR_RETA123 "RETA123ab" -#endif + #if ROTARY_ENCODERS > 2 + #define TR_RETA123 "RETA123abcd" + #else + #define TR_RETA123 "RETA123ab" + #endif #elif defined(PCBX9D) -#define TR_RETA123 "RETA12LR" + #define TR_RETA123 "RETA12LR" #else -#define TR_RETA123 "RETA123" + #define TR_RETA123 "RETA123" #endif #define LEN_VPROTOS "\006" -#ifdef PXX -#define TR_PXX "PXX\0 " + +#if defined(PXX) + #define TR_PXX "PXX\0 " #else -#define TR_PXX "[PXX]\0" + #define TR_PXX "[PXX]\0" #endif -#ifdef DSM2 -#define TR_DSM2 "DSM2\0 " + +#if defined(DSM2) + #define TR_DSM2 "DSM2\0 " #else -#define TR_DSM2 "[DSM2]" + #define TR_DSM2 "[DSM2]" #endif -#ifdef IRPROTOS -#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" + +#if defined(IRPROTOS) + #define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" #else -#define TR_IRPROTOS + #define TR_IRPROTOS #endif + #define TR_VPROTOS "PPM\0 ""PPM16\0""PPMsim" TR_PXX TR_DSM2 TR_IRPROTOS #define LEN_POSNEG "\003" @@ -85,58 +90,65 @@ #define TR_VCSWFUNC "---\0 ""v>ofs\0 ""vofs\0""|v|v2\0 ""v1=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs" #define LEN_VFSWFUNC "\013" + #if defined(VARIO) -#define TR_VVARIO "Vario\0 " + #define TR_VVARIO "Vario\0 " #else -#define TR_VVARIO "[Vario]\0 " + #define TR_VVARIO "[Vario]\0 " #endif + #if defined(AUDIO) -#define TR_SOUND "Play Sound\0" + #define TR_SOUND "Play Sound\0" #else -#define TR_SOUND "Beep\0 " + #define TR_SOUND "Beep\0 " #endif + #if defined(HAPTIC) -#define TR_HAPTIC "Haptic\0 " + #define TR_HAPTIC "Haptic\0 " #else -#define TR_HAPTIC "[Haptic]\0 " + #define TR_HAPTIC "[Haptic]\0 " #endif + #if defined(VOICE) -#define TR_PLAY_TRACK "Play Track\0" -#define TR_PLAY_VALUE "Play Value\0" + #define TR_PLAY_TRACK "Play Track\0" + #define TR_PLAY_VALUE "Play Value\0" #else -#define TR_PLAY_TRACK "[PlayTrack]" -#define TR_PLAY_VALUE "[PlayValue]" + #define TR_PLAY_TRACK "[PlayTrack]" + #define TR_PLAY_VALUE "[PlayValue]" #endif + #if defined(CPUARM) -#if defined(SDCARD) -#define TR_SDCLOGS "SD Logs\0 " -#else -#define TR_SDCLOGS "[SD Logs]\0 " -#endif -#define TR_FSW_VOLUME "Volume\0 " -#define TR_FSW_BG_MUSIC "BgMusic\0 ""BgMusic ||\0" + #if defined(SDCARD) + #define TR_SDCLOGS "SD Logs\0 " + #else + #define TR_SDCLOGS "[SD Logs]\0 " + #endif + #define TR_FSW_VOLUME "Volume\0 " + #define TR_FSW_BG_MUSIC "BgMusic\0 ""BgMusic ||\0" #elif defined(PCBGRUVIN9X) -#if defined(SDCARD) -#define TR_SDCLOGS "SD Logs\0 " + #if defined(SDCARD) + #define TR_SDCLOGS "SD Logs\0 " + #else + #define TR_SDCLOGS "[SD Logs]\0 " + #endif + #define TR_FSW_VOLUME + #define TR_FSW_BG_MUSIC #else -#define TR_SDCLOGS "[SD Logs]\0 " -#endif -#define TR_FSW_VOLUME -#define TR_FSW_BG_MUSIC -#else -#define TR_SDCLOGS -#define TR_FSW_VOLUME -#define TR_FSW_BG_MUSIC + #define TR_SDCLOGS + #define TR_FSW_VOLUME + #define TR_FSW_BG_MUSIC #endif + #ifdef GVARS -#define TR_FSW_ADJUST_GVAR "Adjust \0 " + #define TR_FSW_ADJUST_GVAR "Adjust \0 " #else -#define TR_FSW_ADJUST_GVAR + #define TR_FSW_ADJUST_GVAR #endif + #ifdef DEBUG -#define TR_FSW_TEST "Test\0" + #define TR_FSW_TEST "Test\0" #else -#define TR_FSW_TEST + #define TR_FSW_TEST #endif #define TR_VFSWFUNC "Safety\0 ""Trainer \0 ""Inst. Trim\0" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Backlight\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST @@ -151,11 +163,11 @@ #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cur+""Acc\0""Time" #ifdef IMPERIAL_UNITS -#define LENGTH_UNIT "ft\0" -#define SPEED_UNIT "kts" + #define LENGTH_UNIT "ft\0" + #define SPEED_UNIT "kts" #else -#define LENGTH_UNIT "m\0 " -#define SPEED_UNIT "kmh" + #define LENGTH_UNIT "m\0 " + #define SPEED_UNIT "kmh" #endif #define LEN_VTELEMUNIT "\003" @@ -199,37 +211,50 @@ #define LEN_VSWITCHES "\003" #if defined(PCBX9D) -#define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON" #elif defined(PCBSKY9X) -#define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON" + #define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON" #else -#define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC"" ON" + #define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC"" ON" #endif #define LEN_VSRCRAW "\004" + #if defined(PCBX9D) -#define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " -#define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " + #define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " + #define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " +#elif defined (P13POS) + #define TR_POTS_VSRCRAW "3PO2""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3PO1" +#elif defined (P23POS) + #define TR_POTS_VSRCRAW "P1\0 ""3PO2""P3\0 " + #define TR_SW_VSRCRAW "3PO1" +#elif defined (P33POS) + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""3PO2" + #define TR_SW_VSRCRAW "3PO1" #else -#define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " -#define TR_SW_VSRCRAW "3POS" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" #endif + #if defined(PCBX9D) -#define TR_ROTARY_ENCODERS_VSRCRAW + #define TR_ROTARY_ENCODERS_VSRCRAW #elif defined(PCBSKY9X) -#define TR_ROTARY_ENCODERS_VSRCRAW "REa " + #define TR_ROTARY_ENCODERS_VSRCRAW "REa " #elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2 -#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " #elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2 -#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " #else -#define TR_ROTARY_ENCODERS_VSRCRAW + #define TR_ROTARY_ENCODERS_VSRCRAW #endif + #if defined(HELI) -#define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" + #define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" #else -#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" + #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif + #define TR_VSRCRAW "Rud\0""Ele\0""Thr\0""Ail\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX " TR_SW_VSRCRAW TR_CYC_VSRCRAW #define LEN_VTMRMODES "\003" @@ -250,9 +275,9 @@ #endif #define OFS_EXIT 7 #if defined(PCBX9D) -#define TR_MENUWHENDONE CENTER"\006[ENTER] WHEN DONE" + #define TR_MENUWHENDONE CENTER"\006[ENTER] WHEN DONE" #else -#define TR_MENUWHENDONE CENTER"\006[MENU] WHEN DONE" + #define TR_MENUWHENDONE CENTER"\006[MENU] WHEN DONE" #endif #define TR_FREE "free" #define TR_DELETEMODEL "DELETE MODEL" @@ -345,11 +370,13 @@ #define TR_CAL "Cal" #define TR_VTRIM "Trim- +" #define TR_BG "BG:" + #if defined(PCBX9D) -#define TR_MENUTOSTART CENTER"\006[ENTER] TO START" + #define TR_MENUTOSTART CENTER"\006[ENTER] TO START" #else -#define TR_MENUTOSTART CENTER"\006[MENU] TO START" + #define TR_MENUTOSTART CENTER"\006[MENU] TO START" #endif + #define TR_SETMIDPOINT CENTER"\003SET STICKS MIDPOINT" #define TR_MOVESTICKSPOTS CENTER"\006MOVE STICKS/POTS" #define TR_RXBATT "Rx Batt:" @@ -364,11 +391,13 @@ #define STR_US (STR_TMR1LATMAXUS+12) #define TR_TMR1LATMINUS "Tmr1Lat min\006us" #define TR_TMR1JITTERUS "Tmr1 Jitter\006us" + #if defined(CPUARM) -#define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max\012ms" #else -#define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\014ms" #endif + #define TR_T10MSUS "T10ms\016us" #define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET "[MENU] to reset" @@ -399,13 +428,15 @@ #define TR_MENUFLIGHTPHASE "FLIGHT PHASE" #define TR_MENUFLIGHTPHASES "FLIGHT PHASES" #define TR_MENUHELISETUP "HELI SETUP" + #if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... -#define TR_MENUDREXPO "STICKS" -#define TR_MENULIMITS "OUTPUTS" + #define TR_MENUDREXPO "STICKS" + #define TR_MENULIMITS "OUTPUTS" #else -#define TR_MENUDREXPO "DR/EXPO" -#define TR_MENULIMITS "LIMITS" + #define TR_MENUDREXPO "DR/EXPO" + #define TR_MENULIMITS "LIMITS" #endif + #define TR_MENUCURVES "CURVES" #define TR_MENUCURVE "CURVE" #define TR_MENUCUSTOMSWITCH "CUSTOM SWITCH" diff --git a/src/translations/es.h b/src/translations/es.h index 60c503f77..e6872e8d5 100644 --- a/src/translations/es.h +++ b/src/translations/es.h @@ -209,7 +209,16 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""3PO2""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""3PO2""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""P2 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW +#endif #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" diff --git a/src/translations/fr.h b/src/translations/fr.h index b57ecf94d..f4f8d25c9 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -217,7 +217,16 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" "MAX\0""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0""3PO2""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0""P1\0 ""3PO2""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0""P1\0 ""P2\0 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "Dir\0""Prf\0""Gaz\0""Ail\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" "MAX\0""3POS" TR_CYC_VSRCRAW +#endif #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""GZs""GZ%""GZt" @@ -248,6 +257,7 @@ #define TR_BEEPCTR "Bips Centr" #define TR_PROTO INDENT"Proto." #define TR_PPMFRAME "Trame PPM" + #define TR_MS "ms" #define TR_SWITCH "Inter" #define TR_BITMAP "Bitmap" diff --git a/src/translations/it.h b/src/translations/it.h index 807282980..9f7e03c76 100644 --- a/src/translations/it.h +++ b/src/translations/it.h @@ -215,7 +215,18 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""3PO2""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""3PO2""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""P2 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW +#endif + + #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" diff --git a/src/translations/pt.h b/src/translations/pt.h index 96b528c51..7f3caf8f4 100644 --- a/src/translations/pt.h +++ b/src/translations/pt.h @@ -217,7 +217,18 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Lem\0""Pfd\0""Mot\0""Ail\0""Pot1""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmL" "TrmP" "TrmM" "TrmA" "MAX\0""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "Lem\0""Pfd\0""Mot\0""Ail\0""3PO2""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmL" "TrmP" "TrmM" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "Lem\0""Pfd\0""Mot\0""Ail\0""Pot1""3PO2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmL" "TrmP" "TrmM" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "Lem\0""Pfd\0""Mot\0""Ail\0""Pot1""Pot2""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmL" "TrmP" "TrmM" "TrmA" "MAX\0""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "Lem\0""Pfd\0""Mot\0""Ail\0""Pot1""Pot2""Pot3" TR_ROTARY_ENCODERS_VSRCRAW "TrmL" "TrmP" "TrmM" "TrmA" "MAX\0""3POS" TR_CYC_VSRCRAW +#endif + + #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""MTs""MT%""MTt" @@ -250,6 +261,7 @@ #define TR_PPMFRAME "PPM frame" #define TR_MS "ms" #define TR_SWITCH "Chave" + #define TR_BITMAP "Bitmap" #define TR_TRIMS "Trims" #define TR_FADEIN "Aparecer" diff --git a/src/translations/se.h b/src/translations/se.h index 7a8f17e4d..4cbe0eda7 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -220,7 +220,18 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "ROD ""H\205J ""GAS ""SKE ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" "MAX ""3POS" TR_CYC_VSRCRAW + +#if defined (P13POS) + #define TR_VSRCRAW "ROD ""H\205J ""GAS ""SKE ""3PO2""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P23POS) + #define TR_VSRCRAW "ROD ""H\205J ""GAS ""SKE ""P1 ""3PO2""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" "MAX ""3PO1" TR_CYC_VSRCRAW +#elif defined (P33POS) + #define TR_VSRCRAW "ROD ""H\205J ""GAS ""SKE ""P1 ""P2 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" "MAX ""3PO1" TR_CYC_VSRCRAW +#else + #define TR_VSRCRAW "ROD ""H\205J ""GAS ""SKE ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" "MAX ""3POS" TR_CYC_VSRCRAW +#endif + + #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "AV ""ABS""THs""TH%""THt" diff --git a/src/x9d/audio_driver.h b/src/x9d/audio_driver.h index ce59ceb59..c1bf81433 100644 --- a/src/x9d/audio_driver.h +++ b/src/x9d/audio_driver.h @@ -38,8 +38,6 @@ extern void audioInit( void ) ; extern void audioEnd( void ) ; -#define NUM_VOL_LEVELS 24 - extern void setFrequency( uint32_t frequency ) ; extern uint32_t getFrequency(); @@ -85,14 +83,16 @@ inline uint16_t dacQueue(uint16_t *data, uint16_t size) } } -static const int8_t volumeScale[NUM_VOL_LEVELS] = +#define VOLUME_LEVEL_MAX 23 +#define VOLUME_LEVEL_DEF 12 +static const int8_t volumeScale[VOLUME_LEVEL_MAX+1] = { 0, 2, 4, 6, 8, 10, 13, 17, 22, 27, 33, 40, 64, 82, 96, 105, 112, 117, 120, 122, 124, 125, 126, 127 } ; #if !defined(SIMU) -#define setVolume(v) I2C_set_volume(volumeScale[min(v, NUM_VOL_LEVELS-1)]) +#define setVolume(v) I2C_set_volume(volumeScale[min(v, VOLUME_LEVEL_MAX)]) #else #define setVolume(v) #endif