diff options
author | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-13 00:47:43 +0000 |
---|---|---|
committer | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-13 00:47:43 +0000 |
commit | 10c5b2754bbb46691f19cf0fb45b89cef769aecc (patch) | |
tree | 75742d5786f85b5361bee3e5fcdff53835d6d669 /say.c | |
parent | 3a27761b486ce06b9ca01dbf5c779a39fbe627fc (diff) |
add the saying of seconds
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1996 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'say.c')
-rwxr-xr-x | say.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -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 */ |