when, //какого - когда -- без пола
what_ //какая/какой/какое с полом
} question_t; //вопрос
-
+
+typedef enum {
+ million,
+ thousand,
+ zero,
+ empty
+} unit_t;
SWITCH_MODULE_LOAD_FUNCTION(mod_say_ru_load);
//воспроизводить по 3 цифры
static switch_status_t play_group( sex_t sex,question_t question, int a, int b, int c,
- char *what,int last, switch_core_session_t *session, switch_input_args_t *args)
+ unit_t what,int last, switch_core_session_t *session, switch_input_args_t *args)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d sex=%d q=%d last=%d\n", a,b,c,sex,question,last);
if (a) {
switch (sex) { //пол
case male: //мужчина
say_file("digits/%d00.wav", a); //сто
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav");//тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav");//миллионов
}
//-------------
case female: //женщина
say_file("digits/%d00.wav", a);//сто
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav");//тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav");//миллионов
}
break;
//-------------
case it: //оно
say_file("digits/%d00.wav", a);//сто
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav"); //тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav");//миллионов
}
break;
case what_: //какой/я/ое
switch (sex) { //пол
case male: //мужчина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionx.wav");//тысячный
say_file("digits/thousands.wav");//тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionm.wav");//Миллионный
break;
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionf.wav");//тысячная
say_file("digits/thousands.wav");//тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionf.wav");//Миллионная
}
break;
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionn.wav");//тысячное
say_file("digits/thousands.wav");//тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionn.wav");//Миллионное
break;
//-------------------------------------------------------
case when: //какого - когда без пола
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionx.wav");//тысячного
say_file("digits/thousands.wav");//тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d00xx.wav", a);//двухсот
say_file("digits/h-millionx.wav");//Миллионного
switch (sex) { //пол
case male: //мужчина
say_file("digits/%d0.wav", b); //двадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav", b); //тысяч
}
- else if (what=="millon") {
+ else if (what==million) {
say_file("digits/millions.wav", b); //миллионов
}
//-------------
case female: //женщина
say_file("digits/%d0.wav", b);//двадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav", b); //тысяч
}
- else if (what=="millon") {
+ else if (what==million) {
say_file("digits/millions.wav", b); //миллионов
}
break;
//-------------
case it: //оно
say_file("digits/%d0.wav", b);// двадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav", b); //тысяч
}
- else if (what=="millon") {
+ else if (what==million) {
say_file("digits/millions.wav", b); //миллионов
}
break;
case what_: //какой/я/ое >19 и c==0 20-30-40
switch (sex) { //пол
case male: //мужчина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-thousandm.wav", b); //тысячный
say_file("digits/h-thousand.wav", b); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-millionm.wav", b); //миллионный
}
break;
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-thousandf.wav", b); //тысячная
say_file("digits/h-thousand.wav", b); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-millionf.wav", b); //миллионная
}
break;
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-thousandn.wav", b); //тысячное
say_file("digits/h-thousand.wav", b); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-millionn.wav", b); //миллионное
break;
//-------------------------------------------------------
case when: //какого - когда без пола
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-thousandx.wav", b); //тысячного
say_file("digits/h-thousand.wav", b); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d0xx.wav", b);//двадцати
say_file("digits/h-millionx.wav", b); //миллионного
switch (sex) { //пол
case male: //мужчина
say_file("digits/%d%d.wav",b ,c); //девятнадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav"); //тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav"); //миллионов
}
//-------------
break;
case female: //женщина
say_file("digits/%d%d.wav",b ,c);//девятнадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav"); //тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav"); //миллионов
}
break;
//-------------
case it: //оно
say_file("digits/%d%d.wav",b ,c);// девятнадцать
- if (what=="thousand") {
+ if (what==thousand) {
say_file("digits/thousands.wav"); //тысяч
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/millions.wav"); //миллионов
}
break;
case what_: //какой/я/ое
switch (sex) { //пол
case male: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-thousandm.wav"); //тысячный
say_file("digits/h-thousand.wav"); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-millionm.wav"); //миллионный
}
}
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-thousandf.wav"); //тысячная
say_file("digits/h-thousand.wav"); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-millionf.wav"); //миллионная
}
break;
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-thousandn.wav"); //тысячное
say_file("digits/h-thousand.wav"); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-millionn.wav"); //миллионное
break;
//-------------------------------------------------------
case when: //какого - когда без пола
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-thousandx.wav"); //тысячного
say_file("digits/h-thousand.wav"); //тысяч
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {
say_file("digits/h-%d%dxx.wav", b,c);//десяти, пятнадцати ..
say_file("digits/h-millionx.wav"); //миллионного
- if ((c)||(what=="zero")) {// последняя цифра (самая сложная) или проговорить ноль , для случает когда первые цифры нули
+ if ((c)||(what==zero)) {// последняя цифра (самая сложная) или проговорить ноль , для случает когда первые цифры нули
if (c>2||c==0) {//0 и 3-9
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group c 1\n");
switch (sex)
{ //пол
case male: //мужчина
- if (what=="thousand") { //тысяч
+ if (what==thousand) { //тысяч
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три - четыре
say_file("digits/thousands-i.wav"); //тысячи
say_file("digits/thousands.wav"); //тысяч
}
}
- else if (what=="million") { //миллионов
+ else if (what==million) { //миллионов
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три четыре
say_file("digits/million-a.wav"); //миллиона
break;
case female: //женщина
- if (what=="thousand") { //тысяч
+ if (what==thousand) { //тысяч
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три - четыре
say_file("digits/thousands-i.wav"); //тысячи
say_file("digits/thousands.wav"); //тысяч
}
}
- else if (what=="million") { //миллионов
+ else if (what==million) { //миллионов
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три четыре
say_file("digits/million-a.wav"); //миллиона
//-------------
case it: //оно
- if (what=="thousand") { //тысяч
+ if (what==thousand) { //тысяч
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три - четыре
say_file("digits/thousands-i.wav"); //тысячи
say_file("digits/thousands.wav"); //тысяч
}
}
- else if (what=="million") { //миллионов
+ else if (what==million) { //миллионов
if ((c>2)&&(c<5)) {
say_file("digits/%d.wav", c);// три четыре
say_file("digits/million-a.wav"); //миллиона
switch (sex)
{ //пол
case male: //мужчина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-thousandm.wav"); //тысячный
say_file("digits/thousand.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-millionm.wav"); //миллионный
}
break;
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-thousandf.wav"); //тысячная
say_file("digits/thousand.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-millionf.wav"); //миллионная
}
break;
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-thousandn.wav"); //тысячное
say_file("digits/thousand.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-millionn.wav"); //миллионное
break;
//-------------------------------------------------------
case when: //какого - когда без пола
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-thousandx.wav"); //тысячного
say_file("digits/thousand.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
say_file("digits/h-millionx.wav"); //миллионого
switch (sex)
{ //пол
case male: //мужчина
- if (what=="thousand") {
+ if (what==thousand) {
if (c==1) {
say_file("digits/%df.wav", c); // одна две
say_file("digits/thousand.wav"); //тысяча
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/%d.wav", c); // один два
if (c==1) {
say_file("digits/million.wav", c); //миллион
break;
//-------------
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (c==1) {
say_file("digits/%df.wav", c); // одна две
say_file("digits/thousand.wav"); //тысяча
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/%d.wav", c); // один два
if (c==1) {
say_file("digits/million.wav"); //миллион
break;
//-------------
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (c==1) {
say_file("digits/%df.wav", c); // одна две
say_file("digits/thousand.wav"); //тысяча
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
say_file("digits/%d.wav", c); // один два
if (c==1) {
say_file("digits/million.wav"); //миллион
switch (sex)
{ //пол
case male: //мужчина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух,одна 2-х, ...
if (c!=1) { //не произность одна тысячный
say_file("digits/h-%dxx.wav", c);//одна, двух
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
if (c!=1) {
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
}
break;
case female: //женщина
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 1-х, 2-х ...
if (c!=1) { //не произность одна тысячная
say_file("digits/h-%dxx.wav", c);//одна, двух
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
if (c!=1) {
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
}
break;
case it: //оно
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 1-х, 2-х ...
if (c!=1) { //не произность одна тысячное
say_file("digits/h-%dxx.wav", c);//одна, двух
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
if (c!=1) {
say_file("digits/h-%dxx.wav", c);//одна, двух
break;
//-------------------------------------------------------
case when: //какого - когда без пола
- if (what=="thousand") {
+ if (what==thousand) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
if (c!=1) { //не произность одна тысячного
say_file("digits/h-%dxx.wav", c);//одна, двух
say_file("digits/thousands-i.wav"); //тысячи
}
}
- else if (what=="million") {
+ else if (what==million) {
if (last==0) {// если дальше нету цифр значит говорить двух, 3-х, 4-х ...
if (c!=1) {
say_file("digits/h-%dxx.wav", c);//одна, двух, трёх
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "int in=%d \n", in);
- if ((status = play_group(sex,question, places[8], places[7], places[6], "million",in%1000000, session, args)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = play_group(sex,question, places[8], places[7], places[6], million,in%1000000, session, args)) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d million!\n", places[8], places[7], places[6]);
return status;
}
- if ((status = play_group(sex,question, places[5], places[4], places[3], "thousand",in_%1000,session, args)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = play_group(sex,question, places[5], places[4], places[3], thousand,in_%1000,session, args)) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand!\n", places[5], places[4], places[3]);
return status;
}
- if ((status = play_group(sex,question, places[2], places[1], places[0], NULL, 0,session, args)) != SWITCH_STATUS_SUCCESS)
+ if ((status = play_group(sex,question, places[2], places[1], places[0], empty, 0,session, args)) != SWITCH_STATUS_SUCCESS)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d other!\n", places[2], places[1], places[0]);
return status;
}
} else { //если ноль что бы и его проговаривать в правильных падежах
- if ((status = play_group(sex,question, places[2], places[1], places[0], "zero",0, session, args)) != SWITCH_STATUS_SUCCESS)
+ if ((status = play_group(sex,question, places[2], places[1], places[0], zero,0, session, args)) != SWITCH_STATUS_SUCCESS)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d other!\n", places[2], places[1], places[0]);
return status;