Improve multi (#7136)
[opentx.git] / radio / src / translations / tts_nl.cpp
blob43c81516370f6282c2ae97ceb80bc16d2bbec31b
1 /*
2 * Authors (alphabetical order)
3 * - Andre Bernet <bernet.andre@gmail.com>
4 * - Andreas Weitl
5 * - Bertrand Songis <bsongis@gmail.com>
6 * - Bryan J. Rentoul (Gruvin) <gruvin@gmail.com>
7 * - Cameron Weeks <th9xer@gmail.com>
8 * - Erez Raviv
9 * - Gabriel Birkus
10 * - Jean-Pierre Parisy
11 * - Karl Szmutny
12 * - Michael Blandford
13 * - Michal Hlavinka
14 * - Pat Mackenzie
15 * - Philip Moss
16 * - Rob Thomson
17 * - Romolo Manfredini <romolo.manfredini@gmail.com>
18 * - Thomas Husterer
20 * opentx is based on code named
21 * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/,
22 * er9x by Erez Raviv: http://code.google.com/p/er9x/,
23 * and the original (and ongoing) project by
24 * Thomas Husterer, th9x: http://code.google.com/p/th9x/
26 * This program is free software; you can redistribute it and/or modify
27 * it under the terms of the GNU General Public License version 2 as
28 * published by the Free Software Foundation.
30 * This program is distributed in the hope that it will be useful,
31 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 * GNU General Public License for more details.
37 // NOTE: This file is identical to the EN version
39 #include "opentx.h"
41 enum DutchPrompts {
42 NL_PROMPT_NUMBERS_BASE = 0,
43 NL_PROMPT_ZERO = NL_PROMPT_NUMBERS_BASE+0, //02-99
44 NL_PROMPT_HUNDRED = NL_PROMPT_NUMBERS_BASE+100, //100,200 .. 900
45 NL_PROMPT_THOUSAND = NL_PROMPT_NUMBERS_BASE+109, //1000
46 NL_PROMPT_AND = NL_PROMPT_NUMBERS_BASE+110,
47 NL_PROMPT_MINUS = NL_PROMPT_NUMBERS_BASE+111,
48 NL_PROMPT_POINT = NL_PROMPT_NUMBERS_BASE+112,
49 NL_PROMPT_UNITS_BASE = 113,
50 NL_PROMPT_POINT_BASE = 167, //.0 - .9
54 #define NL_PUSH_UNIT_PROMPT(u, p) nl_pushUnitPrompt((u), (p), id)
56 I18N_PLAY_FUNCTION(nl, pushUnitPrompt, uint8_t unitprompt, int16_t number)
58 if (number == 1)
59 PUSH_UNIT_PROMPT(unitprompt, 0);
60 else
61 PUSH_UNIT_PROMPT(unitprompt, 1);
64 I18N_PLAY_FUNCTION(nl, playNumber, getvalue_t number, uint8_t unit, uint8_t att)
66 if (number < 0) {
67 PUSH_NUMBER_PROMPT(NL_PROMPT_MINUS);
68 number = -number;
72 int8_t mode = MODE(att);
73 if (mode > 0) {
74 if (mode == 2) {
75 number /= 10;
77 div_t qr = div((int)number, 10);
78 if (qr.rem) {
79 PLAY_NUMBER(qr.quot, 0, 0);
80 PUSH_NUMBER_PROMPT(NL_PROMPT_POINT_BASE + qr.rem);
81 number = -1;
83 else {
84 number = qr.quot;
88 int16_t tmp = number;
90 if (number >= 1000) {
91 PLAY_NUMBER(number / 1000, 0, 0);
92 PUSH_NUMBER_PROMPT(NL_PROMPT_THOUSAND);
93 number %= 1000;
94 if (number == 0)
95 number = -1;
97 if (number >= 100) {
98 PUSH_NUMBER_PROMPT(NL_PROMPT_HUNDRED + (number/100)-1);
99 number %= 100;
100 if (number == 0)
101 number = -1;
103 if (number >= 0) {
104 PUSH_NUMBER_PROMPT(NL_PROMPT_ZERO + number);
107 if (unit) {
108 NL_PUSH_UNIT_PROMPT(unit, tmp);
112 I18N_PLAY_FUNCTION(nl, playDuration, int seconds PLAY_DURATION_ATT)
114 if (seconds == 0) {
115 PLAY_NUMBER(seconds, 0, 0);
116 return;
119 if (seconds < 0) {
120 PUSH_NUMBER_PROMPT(NL_PROMPT_MINUS);
121 seconds = -seconds;
124 uint8_t tmp = seconds / 3600;
125 seconds %= 3600;
126 if (tmp > 0 || IS_PLAY_TIME()) {
127 PLAY_NUMBER(tmp, UNIT_HOURS, 0);
130 tmp = seconds / 60;
131 seconds %= 60;
132 if (tmp > 0) {
133 PLAY_NUMBER(tmp, UNIT_MINUTES, 0);
134 if (seconds > 0)
135 PUSH_NUMBER_PROMPT(NL_PROMPT_AND);
138 if (seconds > 0) {
139 PLAY_NUMBER(seconds, UNIT_SECONDS, 0);
143 LANGUAGE_PACK_DECLARE(nl, "Dutch");