dect
/
asterisk
Archived
13
0
Fork 0

More formatting fixes

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3088 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
citats 2004-05-27 00:07:18 +00:00
parent 5f3db1b218
commit 117ee582df
4 changed files with 32 additions and 41 deletions

46
app.c
View File

@ -407,9 +407,8 @@ int ast_linear_stream(struct ast_channel *chan, const char *filename, int fd, in
return res;
}
int ast_control_streamfile(struct ast_channel *chan, char *file,char *fwd,char *rev,char *stop,char *pause,int skipms)
int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char *rev, char *stop, char *pause, int skipms)
{
struct timeval started, ended;
long elapsed = 0,last_elapsed =0;
char breaks[5];
@ -418,68 +417,63 @@ int ast_control_streamfile(struct ast_channel *chan, char *file,char *fwd,char *
if (chan->_state != AST_STATE_UP)
res = ast_answer(chan);
if(stop != NULL && stop[0]) {
if (stop != NULL && stop[0]) {
breaks[x++] = stop[0];
}
if(pause != NULL && pause[0]) {
if (pause != NULL && pause[0]) {
breaks[x++] = pause[0];
}
breaks[x] = '\0';
if(chan)
if (chan)
ast_stopstream(chan);
for(;;) {
for (;;) {
gettimeofday(&started,NULL);
if(chan)
if (chan)
ast_stopstream(chan);
res = ast_streamfile(chan, file, chan->language);
if(!res) {
if (!res) {
res = 1;
if(elapsed) {
ast_stream_fastforward(chan->stream,elapsed);
if (elapsed) {
ast_stream_fastforward(chan->stream, elapsed);
last_elapsed = elapsed - 200;
}
if(res) {
res = ast_waitstream_fr(chan,breaks,fwd,rev,skipms);
}
else {
if (res)
res = ast_waitstream_fr(chan, breaks, fwd, rev, skipms);
else
break;
}
}
if (res < 1)
break;
if(pause != NULL && res == *pause) {
gettimeofday(&ended,NULL);
if (pause != NULL && res == *pause) {
gettimeofday(&ended, NULL);
elapsed = (((ended.tv_sec * 1000) + ended.tv_usec / 1000) - ((started.tv_sec * 1000) + started.tv_usec / 1000) + last_elapsed);
for(;;) {
if(chan)
if (chan)
ast_stopstream(chan);
res = ast_waitfordigit(chan, 1000);
if(res == -1 || res == *pause || (stop && res == *stop))
if (res == -1 || res == *pause || (stop && res == *stop))
break;
}
if(res == *pause) {
if (res == *pause) {
res = 0;
continue;
}
}
if(res == -1)
if (res == -1)
break;
if(stop != NULL && res == *stop) {
if (stop != NULL && res == *stop) {
res = 0;
break;
}
}
if(chan)
if (chan)
ast_stopstream(chan);
return res;
}

View File

@ -57,33 +57,31 @@ static int controlplayback_exec(struct ast_channel *chan, void *data)
char tmp[256];
char *skip = NULL, *fwd = NULL, *rev = NULL, *stop = NULL, *pause = NULL, *file = NULL;
if (!data || ast_strlen_zero((char *)data)) {
ast_log(LOG_WARNING, "ControlPlayback requires an argument (filename)\n");
return -1;
}
strncpy(tmp, (char *)data, sizeof(tmp)-1);
file = tmp;
if((skip=strchr(tmp,'|'))) {
if ((skip=strchr(tmp,'|'))) {
*skip = '\0';
*skip++;
fwd=strchr(skip,'|');
if(fwd) {
if (fwd) {
*fwd = '\0';
*fwd++;
rev = strchr(fwd,'|');
if(rev) {
if (rev) {
*rev = '\0';
*rev++;
stop = strchr(rev,'|');
if(stop) {
if (stop) {
*stop = '\0';
*stop++;
pause = strchr(stop,'|');
if(pause) {
if (pause) {
*pause = '\0';
*pause++;
}
@ -93,19 +91,18 @@ static int controlplayback_exec(struct ast_channel *chan, void *data)
}
skipms = skip ? atoi(skip) : 3000;
if(!skipms)
if (!skipms)
skipms = 3000;
if(!fwd || ! is_on_phonepad(*fwd))
if (!fwd || !is_on_phonepad(*fwd))
fwd = "#";
if(!rev || ! is_on_phonepad(*rev))
if (!rev || !is_on_phonepad(*rev))
rev = "*";
if(stop && ! is_on_phonepad(*stop))
if (stop && !is_on_phonepad(*stop))
stop = NULL;
if(pause && ! is_on_phonepad(*pause))
if (pause && !is_on_phonepad(*pause))
pause = NULL;
LOCAL_USER_ADD(u);
res = ast_control_streamfile(chan, file, fwd, rev, stop, pause, skipms);

View File

@ -2549,7 +2549,7 @@ static int wait_file2(struct ast_channel *chan, struct vm_state *vms, char *file
static int wait_file(struct ast_channel *chan, struct vm_state *vms, char *file)
{
return ast_control_streamfile(chan, file, "#", "*","1","0", skipms);
return ast_control_streamfile(chan, file, "#", "*", "1", "0", skipms);
}
static int play_message_datetime(struct ast_channel *chan, struct ast_vm_user *vmu, char *origtime, char *filename)

View File

@ -55,7 +55,7 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, char *di
int ast_linear_stream(struct ast_channel *chan, const char *filename, int fd, int allowoverride);
//! Stream a file with fast forward, pause, reverse.
int ast_control_streamfile(struct ast_channel *chan, char *file,char *fwd,char *rev,char *stop,char *pause,int skipms);
int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char *rev, char *stop, char *pause, int skipms);
#if defined(__cplusplus) || defined(c_plusplus)
}