I18N_PLAY_FUNCTION(en, playDuration, int seconds PLAY_DURATION_ATT) { if (seconds == 0) { PLAY_NUMBER(seconds, 0, 0); return; } if (seconds < 0) { PUSH_NUMBER_PROMPT(EN_PROMPT_MINUS); seconds = -seconds; } uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0 || IS_PLAY_TIME()) { PLAY_NUMBER(tmp, UNIT_HOURS, 0); } tmp = seconds / 60; seconds %= 60; if (tmp > 0) { PLAY_NUMBER(tmp, UNIT_MINUTES, 0); if (seconds > 0) PUSH_NUMBER_PROMPT(EN_PROMPT_AND); } if (seconds > 0) { PLAY_NUMBER(seconds, UNIT_SECONDS, 0); } }
I18N_PLAY_FUNCTION(en, pushUnitPrompt, int16_t number, uint8_t unitprompt) { if (number == 1) PUSH_NUMBER_PROMPT(unitprompt); else PUSH_NUMBER_PROMPT(unitprompt+1); }
I18N_PLAY_FUNCTION(fr, playDuration, int16_t seconds) { if (seconds < 0) { PUSH_NUMBER_PROMPT(FR_PROMPT_MOINS); seconds = -seconds; } uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0) { PLAY_NUMBER(tmp, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_HEURE); } tmp = seconds / 60; seconds %= 60; if (tmp > 0) { PLAY_NUMBER(tmp, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_MINUTE); if (seconds > 0) PUSH_NUMBER_PROMPT(FR_PROMPT_ET); } if (seconds > 0) { PLAY_NUMBER(seconds, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_SECONDE); } }
I18N_PLAY_FUNCTION(pl, pushUnitPrompt, int16_t number, uint8_t unitprompt) { #if defined(SIMU) printf("numer do powiedzenia %d ======== \n\n",number); printf("UNITPROMPT %d ======== \n\n",unitprompt); #endif if (number == 1) { PUSH_NUMBER_PROMPT(unitprompt); } else if (number > 1 && number < 5){ PUSH_NUMBER_PROMPT(unitprompt+1); } else { int test_2 =0; test_2 =number % 10; int dziesiatka=0; int dzies_tmp=0; dzies_tmp=number % 100; dziesiatka=(dzies_tmp - (dzies_tmp % 10))/10; if ((test_2 > 1 && test_2 < 5) && dziesiatka !=1){ PUSH_NUMBER_PROMPT(unitprompt+1); } else{ PUSH_NUMBER_PROMPT(unitprompt+2); } } }
I18N_PLAY_FUNCTION(en, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { if (number < 0) { PUSH_NUMBER_PROMPT(EN_PROMPT_MINUS); number = -number; } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } unit++; } int8_t mode = MODE(att); if (mode > 0) { // we assume that we are PREC1 div_t qr = div(number, 10); if (qr.rem) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(EN_PROMPT_POINT_BASE + qr.rem); number = -1; } else { number = qr.quot; } } int16_t tmp = number; if (number >= 1000) { PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(EN_PROMPT_THOUSAND); number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(EN_PROMPT_HUNDRED + (number/100)-1); number %= 100; if (number == 0) number = -1; } if (number >= 0) { PUSH_NUMBER_PROMPT(EN_PROMPT_ZERO + number); } if (unit) { EN_PUSH_UNIT_PROMPT(tmp, EN_PROMPT_UNITS_BASE + unit*2); } }
I18N_PLAY_FUNCTION(pl, pushUnitPrompt, int16_t number, uint8_t unitprompt) { if (number == 1) PUSH_NUMBER_PROMPT(unitprompt); else if (number > 1 && number < 5) PUSH_NUMBER_PROMPT(unitprompt+1); else { int test_2 =0; test_2 =number % 10; int ten=0; ten=(number - (number % 10))/10; if ((test_2 > 1 && test_2 < 5) && ten >2) PUSH_NUMBER_PROMPT(unitprompt+1); else PUSH_NUMBER_PROMPT(unitprompt+2); } }
I18N_PLAY_FUNCTION(fr, playDuration, int seconds PLAY_DURATION_ATT) { if (seconds == 0) { PLAY_NUMBER(0, 0, FEMININ); return; } if (seconds < 0) { PUSH_NUMBER_PROMPT(FR_PROMPT_MOINS); seconds = -seconds; } uint8_t tmp = seconds / 3600; seconds %= 3600; if (IS_PLAY_TIME() && tmp==0) { PUSH_NUMBER_PROMPT(FR_PROMPT_MINUIT); } else if (IS_PLAY_TIME() && tmp==12) { PUSH_NUMBER_PROMPT(FR_PROMPT_MIDI); } else if (tmp > 0) { PLAY_NUMBER(tmp, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_HEURE); } tmp = seconds / 60; seconds %= 60; if (tmp > 0) { if (IS_PLAY_TIME()) { PLAY_NUMBER(tmp, 0, tmp==1 ? FEMININ : 0); } else { PLAY_NUMBER(tmp, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_MINUTE); #if !defined(NOANDSECONDE) if (seconds > 0) PUSH_NUMBER_PROMPT(FR_PROMPT_ET); #endif } } if (!IS_PLAY_TIME() && seconds > 0) { PLAY_NUMBER(seconds, 0, FEMININ); PUSH_NUMBER_PROMPT(FR_PROMPT_SECONDE); } }
I18N_PLAY_FUNCTION(cz, playDuration, int seconds PLAY_DURATION_ATT) { if (seconds < 0) { PUSH_NUMBER_PROMPT(CZ_PROMPT_MINUS); seconds = -seconds; } uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0 || IS_PLAY_TIME()) { PLAY_NUMBER(tmp, UNIT_HOURS+1, ZENSKY); } tmp = seconds / 60; seconds %= 60; if (tmp > 0) { PLAY_NUMBER(tmp, UNIT_MINUTES+1, ZENSKY); } if (seconds > 0) { PLAY_NUMBER(seconds, UNIT_SECONDS+1, ZENSKY); } }
// The whole funtion has to be changed I18N_PLAY_FUNCTION(pl, playDuration, int16_t seconds) { if (seconds < 0) { PUSH_NUMBER_PROMPT(PL_PROMPT_MINUS); seconds = -seconds; } uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0) { PLAY_NUMBER(tmp, UNIT_HOURS+1, ZENSKI); } tmp = seconds / 60; seconds %= 60; if (tmp > 0) { PLAY_NUMBER(tmp, UNIT_MINUTES+1, ZENSKI); } if (seconds > 0) { PLAY_NUMBER(seconds, UNIT_SECONDS+1, ZENSKI); } }
I18N_PLAY_FUNCTION(it, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { /* if digit >= 1000000000: temp_digit, digit = divmod(digit, 1000000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_BILLION, dir=2)) if digit >= 1000000: temp_digit, digit = divmod(digit, 1000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_MILLION, dir=2)) */ getvalue_t orignumber; if (number < 0) { PUSH_NUMBER_PROMPT(IT_PROMPT_MENO); number = -number; } orignumber=number; #if !defined(CPUARM) if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } unit++; } #endif int8_t mode = MODE(att); if (mode > 0) { #if defined(CPUARM) if (mode == 2) { number /= 10; } #else // we assume that we are PREC1 #endif div_t qr = div(number, 10); if (qr.rem > 0) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_VIRGOLA); if (mode==2 && qr.rem < 10) PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO); PLAY_NUMBER(qr.rem, 0, 0); } else { if (qr.quot==1) { PUSH_NUMBER_PROMPT(IT_PROMPT_UN); if (unit) { PUSH_NUMBER_PROMPT(IT_PROMPT_UNITS_BASE+(unit*2)); } return; } else { PLAY_NUMBER(qr.quot, 0, 0); } } } else { if (orignumber == 1 && unit) { PUSH_NUMBER_PROMPT(IT_PROMPT_UN); } else { if (number >= 1000) { if (number >= 2000) { PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_MILA); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_MILLE); } number %= 1000; if (number == 0) number = -1; } if (number >= 100) { if (number >= 200) PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO + number/100); PUSH_NUMBER_PROMPT(IT_PROMPT_CENT); number %= 100; if (number == 0) number = -1; } PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO+number); } } if (unit) { if (orignumber == 1) { PUSH_NUMBER_PROMPT(IT_PROMPT_UNITS_BASE+(unit*2)); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_UNITS_BASE+(unit*2)+1); } } }
I18N_PLAY_FUNCTION(it, playDuration, int seconds PLAY_DURATION_ATT) { if (seconds < 0) { PUSH_NUMBER_PROMPT(IT_PROMPT_MENO); seconds = -seconds; } uint8_t ore = 0; uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0) { ore=tmp; if (tmp > 1 || IS_PLAY_TIME()) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_ORE); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_UN); PUSH_NUMBER_PROMPT(IT_PROMPT_ORA); } } if (seconds>0) { tmp = seconds / 60; seconds %= 60; if (tmp>0 && seconds==0 && ore>0) { PUSH_NUMBER_PROMPT(IT_PROMPT_E); } if (tmp > 0) { if (tmp != 1) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_MINUTI); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_UN); PUSH_NUMBER_PROMPT(IT_PROMPT_MINUTO); } } if ((tmp>0 || ore>0) && seconds>0) { PUSH_NUMBER_PROMPT(IT_PROMPT_E); } } if (seconds != 0 || (ore==0 && tmp==0)) { if (seconds != 1) { PLAY_NUMBER(seconds, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_SECONDI); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_UN); PUSH_NUMBER_PROMPT(IT_PROMPT_SECONDO); } } }
I18N_PLAY_FUNCTION(it, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { /* if digit >= 1000000000: temp_digit, digit = divmod(digit, 1000000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_BILLION, dir=2)) if digit >= 1000000: temp_digit, digit = divmod(digit, 1000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_MILLION, dir=2)) */ if (number < 0) { PUSH_NUMBER_PROMPT(IT_PROMPT_MENO); number = -number; } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } #if defined(CPUARM) if ((att & PREC1) && (unit == UNIT_FEET || (unit == UNIT_DIST && number >= 100))) { number = div10_and_round(number); att -= PREC1; } #endif unit++; } int8_t mode = MODE(att); if (mode > 0) { div_t qr = div(number, (mode == 1 ? 10 : 100)); if (qr.rem > 0) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_VIRGOLA); if (mode==2 && qr.rem < 10) PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO); PLAY_NUMBER(qr.rem, unit, 0); } else { PLAY_NUMBER(qr.quot, unit, 0); } return; } if (number >= 1000) { if (number >= 2000) { PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(IT_PROMPT_MILA); } else { PUSH_NUMBER_PROMPT(IT_PROMPT_MILLE); } number %= 1000; if (number == 0) number = -1; } if (number >= 100) { if (number >= 200) PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO + number/100); PUSH_NUMBER_PROMPT(IT_PROMPT_CENT); number %= 100; if (number == 0) number = -1; } PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO+number); if (unit) { PUSH_NUMBER_PROMPT(IT_PROMPT_UNITS_BASE+unit-1); } }
I18N_PLAY_FUNCTION(es, playDuration, int seconds PLAY_DURATION_ATT) { if (seconds < 0) { PUSH_NUMBER_PROMPT(ES_PROMPT_MENO); seconds = -seconds; } uint8_t ore = 0; uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0 || IS_PLAY_TIME()) { ore = tmp; if (tmp > 1) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(ES_PROMPT_HORAS); } else { PUSH_NUMBER_PROMPT(ES_PROMPT_UNA); PUSH_NUMBER_PROMPT(ES_PROMPT_HORA); } } tmp = seconds / 60; seconds %= 60; if (tmp > 0 || ore >0) { if (tmp != 1) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(ES_PROMPT_MINUTOS); } else { PUSH_NUMBER_PROMPT(ES_PROMPT_UN); PUSH_NUMBER_PROMPT(ES_PROMPT_MINUTO); } PUSH_NUMBER_PROMPT(ES_PROMPT_Y); } if (seconds != 1) { PLAY_NUMBER(seconds, 0, 0); PUSH_NUMBER_PROMPT(ES_PROMPT_SEGUNDOS); } else { PUSH_NUMBER_PROMPT(ES_PROMPT_UN); PUSH_NUMBER_PROMPT(ES_PROMPT_SEGUNDO); } }
I18N_PLAY_FUNCTION(pt, playDuration, int16_t seconds) { if (seconds < 0) { PUSH_NUMBER_PROMPT(PT_PROMPT_MENOS); seconds = -seconds; } uint8_t ore = 0; uint8_t tmp = seconds / 3600; seconds %= 3600; if (tmp > 0) { ore=tmp; if (tmp > 2) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_HORAS); } else if (tmp==2) { PUSH_NUMBER_PROMPT(PT_PROMPT_DUAS); PUSH_NUMBER_PROMPT(PT_PROMPT_HORAS); } else if (tmp==1) { PUSH_NUMBER_PROMPT(PT_PROMPT_UMA); PUSH_NUMBER_PROMPT(PT_PROMPT_HORA); } } tmp = seconds / 60; seconds %= 60; if (tmp > 0 || ore >0) { if (tmp != 1) { PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_MINUTOS); } else { PUSH_NUMBER_PROMPT(PT_PROMPT_NUMBERS_BASE+1); PUSH_NUMBER_PROMPT(PT_PROMPT_MINUTO); } PUSH_NUMBER_PROMPT(PT_PROMPT_E); } if (seconds != 1) { PLAY_NUMBER(seconds, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_SEGUNDOS); } else { PUSH_NUMBER_PROMPT(PT_PROMPT_NUMBERS_BASE+1); PUSH_NUMBER_PROMPT(PT_PROMPT_SEGUNDO); } }
I18N_PLAY_FUNCTION(pt, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { if (number < 0) { PUSH_NUMBER_PROMPT(PT_PROMPT_MENOS); number = -number; } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_METERS) { unit = UNIT_FEET; } } #if defined(CPUARM) if ((att & PREC1) && (unit == UNIT_FEET || (unit == UNIT_METERS && number >= 100))) { number /= 10; att -= PREC1; } #endif unit++; } int8_t mode = MODE(att); if (mode > 0) { div_t qr = div(number, (mode == 1 ? 10 : 100)); if (qr.rem > 0) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_VIRGULA); if (mode==2 && qr.rem < 10) PUSH_NUMBER_PROMPT(PT_PROMPT_ZERO); PLAY_NUMBER(qr.rem, unit, 0); } else { PLAY_NUMBER(qr.quot, unit, 0); } return; } if (number >= 1000) { if (number >= 2000) { PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_MIL); } else { PUSH_NUMBER_PROMPT(PT_PROMPT_MIL); } number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(PT_PROMPT_CENTO + number/100); number %= 100; if (number == 0) number = -1; } PUSH_NUMBER_PROMPT(PT_PROMPT_ZERO+number); if (unit) { PUSH_NUMBER_PROMPT(PT_PROMPT_UNITS_BASE+unit-1); } }
I18N_PLAY_FUNCTION(pl, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { #if defined(SIMU) printf("numer do powiedzenia2 %d ======== \n\n",number); printf("UNIT2 %d ======== \n\n",unit); printf("ATT %d ======== \n\n",att); #endif if (number < 0) { PUSH_NUMBER_PROMPT(PL_PROMPT_MINUS); number = -number; } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_METERS) { unit = UNIT_FEET; } } #if defined(CPUARM) if ((att & PREC1) && (unit == UNIT_FEET || (unit == UNIT_METERS && number >= 100))) { number /= 10; att -= PREC1; } #endif unit++; } int8_t mode = MODE(att); if (mode > 0) { // we assume that we are PREC1 div_t qr = div(number, 10); if (qr.rem) { PLAY_NUMBER(qr.quot, 0, ZENSKI); if (qr.quot == 0) PUSH_NUMBER_PROMPT(PL_PROMPT_CALA); else PL_PUSH_UNIT_PROMPT(qr.quot, PL_PROMPT_CALA); PLAY_NUMBER(qr.rem, 0, ZENSKI); PUSH_NUMBER_PROMPT(PL_PROMPT_UNITS_BASE+((unit-1)*4)+3); return; } else number = qr.quot; } int16_t tmp = number; switch(unit) { case 0: att = MESKI; break; case 10: case 13: case 15: case 16: case 17: att = ZENSKI; break; case 100: att = NIJAKI; break; default: att = MESKI; break; } if ((number == 1) && (att == ZENSKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_JEDNA); number = -1; } if ((number == 1) && (att == NIJAKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_JEDNO); number = -1; } if ((number == 2) && (att == ZENSKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_DWIE); number = -1; } if (number >= 1000) { if (number >= 2000) PLAY_NUMBER(number / 1000, 0, 0); if (number >= 2000 && number < 5000) PUSH_NUMBER_PROMPT(PL_PROMPT_TISIACE); else PUSH_NUMBER_PROMPT(PL_PROMPT_TISIAC); number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(PL_PROMPT_STO + (number/100)-1); number %= 100; if (number == 0) number = -1; } if (number >= 0) { int test_2 =0; test_2 =number % 10; int dziesiatka=0; dziesiatka=(number - (number % 10))/10; #if defined(SIMU) printf("dziesiatki %d - %d ==== ",dziesiatka,test_2); #endif if (att == ZENSKI && test_2==2 && dziesiatka >= 2 ) { PUSH_NUMBER_PROMPT(PL_PROMPT_DZIESIATKI_ZENSKIE+dziesiatka); }else PUSH_NUMBER_PROMPT(PL_PROMPT_ZERO+number); } if (unit) { PL_PUSH_UNIT_PROMPT(tmp, (PL_PROMPT_UNITS_BASE+((unit-1)*4))); } }
I18N_PLAY_FUNCTION(pl, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { if (number < 0) { PUSH_NUMBER_PROMPT(PL_PROMPT_MINUS); number = -number; } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } #if defined(CPUARM) if ((att & PREC1) && (unit == UNIT_FEET || (unit == UNIT_DIST && number >= 100))) { number = div10_and_round(number); att -= PREC1; } #endif unit++; } int8_t mode = MODE(att); if (mode > 0) { // we assume that we are PREC1 div_t qr = div(number, 10); if (qr.rem) { PLAY_NUMBER(qr.quot, 0, ZENSKI); if (qr.quot == 0) PUSH_NUMBER_PROMPT(PL_PROMPT_CALA); else PL_PUSH_UNIT_PROMPT(qr.quot, PL_PROMPT_CALA); PLAY_NUMBER(qr.rem, 0, ZENSKI); PUSH_NUMBER_PROMPT(PL_PROMPT_UNITS_BASE+((unit-1)*4)+3); return; } else number = qr.quot; } int16_t tmp = number; switch(unit) { case 0: break; case 10: case 13: case 15: case 16: case 17: att = ZENSKI; break; case 100: att = NIJAKI; break; default: att = MESKI; break; } if ((number == 1) && (att == ZENSKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_JEDNA); number = -1; } if ((number == 1) && (att == NIJAKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_JEDNO); number = -1; } if ((number == 2) && (att == ZENSKI)) { PUSH_NUMBER_PROMPT(PL_PROMPT_DWIE); number = -1; } if (number >= 1000) { if (number >= 2000) PLAY_NUMBER(number / 1000, 0, 0); if (number >= 2000 && number < 5000) PUSH_NUMBER_PROMPT(PL_PROMPT_TISIACE); else PUSH_NUMBER_PROMPT(PL_PROMPT_TISIAC); number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(PL_PROMPT_STO + (number/100)-1); number %= 100; if (number == 0) number = -1; } if (number >= 0) { int test_2 =0; test_2 =number % 10; int ten=0; ten=(number - (number % 10))/10; if (att == ZENSKI && test_2==2 && ten >= 2 ) { PUSH_NUMBER_PROMPT(PL_PROMPT_DZIESIATKI_ZENSKIE+ten); }else PUSH_NUMBER_PROMPT(PL_PROMPT_ZERO+number); } if (unit) { PL_PUSH_UNIT_PROMPT(tmp, (PL_PROMPT_UNITS_BASE+((unit-1)*4))); } }
I18N_PLAY_FUNCTION(fr, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { /* if digit >= 1000000000: temp_digit, digit = divmod(digit, 1000000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_BILLION, dir=2)) if digit >= 1000000: temp_digit, digit = divmod(digit, 1000000) prompts.extend(self.getNumberPrompt(temp_digit)) prompts.append(Prompt(GUIDE_00_MILLION, dir=2)) */ if (number < 0) { PUSH_NUMBER_PROMPT(FR_PROMPT_MOINS); number = -number; } int8_t mode = MODE(att); if (mode > 0) { // we assume that we are PREC1 div_t qr = div(number, 10); if (qr.rem) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(FR_PROMPT_VIRGULE_BASE + qr.rem); number = -1; } else { number = qr.quot; } } if (number >= 1000) { if (number >= 2000) PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(FR_PROMPT_MILLE); number %= 1000; if (number == 0) number = -1; } if (number >= 100) { if (number >= 200) PUSH_NUMBER_PROMPT(FR_PROMPT_ZERO + number/100); PUSH_NUMBER_PROMPT(FR_PROMPT_CENT); number %= 100; if (number == 0) number = -1; } if (((number % 10) == 1) && number < 90 && (att & FEMININ)) { PUSH_NUMBER_PROMPT(FR_PROMPT_UNE+(number/10)); } else if (number >= 0) { PUSH_NUMBER_PROMPT(FR_PROMPT_ZERO+number); } if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } unit++; PUSH_NUMBER_PROMPT(FR_PROMPT_UNITS_BASE+unit); } }
I18N_PLAY_FUNCTION(cz, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { if (number < 0) { PUSH_NUMBER_PROMPT(CZ_PROMPT_MINUS); number = -number; } #if !defined(CPUARM) if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } unit++; } #endif int8_t mode = MODE(att); if (mode > 0) { #if defined(CPUARM) if (mode == 2) { number /= 10; } #else // we assume that we are PREC1 #endif div_t qr = div(number, 10); if (qr.rem) { PLAY_NUMBER(qr.quot, 0, ZENSKY); if (qr.quot == 0) PUSH_NUMBER_PROMPT(CZ_PROMPT_CELA); else CZ_PUSH_UNIT_PROMPT(qr.quot, CZ_PROMPT_CELA); PLAY_NUMBER(qr.rem, 0, ZENSKY); PUSH_NUMBER_PROMPT(CZ_PROMPT_UNITS_BASE+((unit-1)*4)+3); return; } else number = qr.quot; } int16_t tmp = number; switch(unit) { case 0: break; case 4: case 10: case 13: case 15: case 16: case 17: case 18: att = ZENSKY; break; case 8: case 19: att = STREDNI; break; default: att = MUZSKY; break; } if ((number == 1) && (att == MUZSKY)) { PUSH_NUMBER_PROMPT(CZ_PROMPT_JEDEN); number = -1; } if ((number == 1) && (att == STREDNI)) { PUSH_NUMBER_PROMPT(CZ_PROMPT_JEDNO); number = -1; } if ((number == 2) && ((att == ZENSKY) || (att == STREDNI))) { PUSH_NUMBER_PROMPT(CZ_PROMPT_DVE); number = -1; } if (number >= 1000) { if (number >= 2000) PLAY_NUMBER(number / 1000, 0, 0); if (number >= 2000 && number < 5000) PUSH_NUMBER_PROMPT(CZ_PROMPT_TISICE); else PUSH_NUMBER_PROMPT(CZ_PROMPT_TISIC); number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(CZ_PROMPT_STO + (number/100)-1); number %= 100; if (number == 0) number = -1; } if (number >= 0) { PUSH_NUMBER_PROMPT(CZ_PROMPT_NULA+number); } if (unit) { CZ_PUSH_UNIT_PROMPT(tmp, (CZ_PROMPT_UNITS_BASE+((unit-1)*4))); } }
I18N_PLAY_FUNCTION(pt, playNumber, getvalue_t number, uint8_t unit, uint8_t att) { if (number < 0) { PUSH_NUMBER_PROMPT(PT_PROMPT_MENOS); number = -number; } #if !defined(CPUARM) if (unit) { unit--; convertUnit(number, unit); if (IS_IMPERIAL_ENABLE()) { if (unit == UNIT_DIST) { unit = UNIT_FEET; } if (unit == UNIT_SPEED) { unit = UNIT_KTS; } } unit++; } #endif int8_t mode = MODE(att); if (mode > 0) { #if defined(CPUARM) if (mode == 2) { number /= 10; } #else // we assume that we are PREC1 #endif div_t qr = div(number, 10); if (qr.rem > 0) { PLAY_NUMBER(qr.quot, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_VIRGULA); if (mode==2 && qr.rem < 10) PUSH_NUMBER_PROMPT(PT_PROMPT_ZERO); PLAY_NUMBER(qr.rem, unit, 0); } else { PLAY_NUMBER(qr.quot, unit, 0); } return; } if (number >= 1000) { if (number >= 2000) { PLAY_NUMBER(number / 1000, 0, 0); PUSH_NUMBER_PROMPT(PT_PROMPT_MIL); } else { PUSH_NUMBER_PROMPT(PT_PROMPT_MIL); } number %= 1000; if (number == 0) number = -1; } if (number >= 100) { PUSH_NUMBER_PROMPT(PT_PROMPT_CENTO + number/100); number %= 100; if (number == 0) number = -1; } PUSH_NUMBER_PROMPT(PT_PROMPT_ZERO+number); if (unit) { PUSH_NUMBER_PROMPT(PT_PROMPT_UNITS_BASE+unit-1); } }