add the saying of seconds
authorJeremy McNamara <jj@nufone.net>
Tue, 13 Jan 2004 00:47:43 +0000 (00:47 +0000)
committerJeremy McNamara <jj@nufone.net>
Tue, 13 Jan 2004 00:47:43 +0000 (00:47 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1996 65c4cc65-6c06-0410-ace0-fbb531ad65f3

say.c

diff --git a/say.c b/say.c
index 55f477d..52fc5b9 100755 (executable)
--- a/say.c
+++ b/say.c
@@ -478,6 +478,38 @@ int ast_say_date_with_format(struct ast_channel *chan, time_t time, char *ints,
                        case 'R':
                                res = ast_say_date_with_format(chan, time, ints, lang, "HM", timezone);
                                break;
+                       case 'S':
+                               /* Seconds */
+                               if (tm.tm_sec == 0) {
+                                       snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+                                       res = wait_file(chan,ints,nextmsg,lang);
+                               } else if (tm.tm_sec < 10) {
+                                       res = wait_file(chan,ints,DIGITS_DIR "oh",lang);
+                                       if (!res) {
+                                               snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+                                               res = wait_file(chan,ints,nextmsg,lang);
+                                       }
+                               } else if ((tm.tm_sec < 21) || (tm.tm_sec % 10 == 0)) {
+                                       snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+                                       res = wait_file(chan,ints,nextmsg,lang);
+                               } else {
+                                       int ten, one;
+                                       ten = (tm.tm_sec / 10) * 10;
+                                       one = (tm.tm_sec % 10);
+                                       snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", ten);
+                                       res = wait_file(chan,ints,nextmsg,lang);
+                                       if (!res) {
+                                               /* Fifty, not fifty-zero */
+                                               if (one != 0) {
+                                                       snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", one);
+                                                       res = wait_file(chan,ints,nextmsg,lang);
+                                               }
+                                       }
+                               }
+                               break;
+                       case 'T':
+                               res = ast_say_date_with_format(chan, time, ints, lang, "HMS", timezone);
+                               break;
                        case ' ':
                        case '  ':
                                /* Just ignore spaces and tabs */