From: Anthony Minessale II Date: Thu, 23 Sep 2004 15:26:01 +0000 (+0000) Subject: allow file arg in ast_control_streamfile to accept trailing :end to indicate an insta... X-Git-Tag: 1.0.10~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07a6cd45929fc8364a6a5e0bda2f262fb3d6e89d;p=thirdparty%2Fasterisk.git allow file arg in ast_control_streamfile to accept trailing :end to indicate an instant seek ti the end. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3824 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/app.c b/app.c index eb1a37e0a8..fe6af02018 100755 --- a/app.c +++ b/app.c @@ -416,6 +416,7 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char struct timeval started, ended; long elapsed = 0,last_elapsed =0; char *breaks=NULL; + char *end=NULL; int blen=2; int res=0; @@ -436,6 +437,13 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char if (chan) ast_stopstream(chan); + if(file) { + end = strchr(file,':'); + if(!strcasecmp(end,":end")) { + *end = '\0'; + end++; + } + } for (;;) { gettimeofday(&started,NULL); @@ -443,6 +451,10 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char ast_stopstream(chan); res = ast_streamfile(chan, file, chan->language); if (!res) { + if(end) { + ast_seekstream(chan->stream, 0, SEEK_END); + end=NULL; + } res = 1; if (elapsed) { ast_stream_fastforward(chan->stream, elapsed);