mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-19 19:20:35 +00:00
Add variable to show which key was pressed to stop playback.
Issue #11377, initial patch by johan. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -55,7 +55,9 @@ static const char *descrip =
|
|||||||
" CPLAYBACKSTATUS - This variable contains the status of the attempt as a text\n"
|
" CPLAYBACKSTATUS - This variable contains the status of the attempt as a text\n"
|
||||||
" string, one of: SUCCESS | USERSTOPPED | ERROR\n"
|
" string, one of: SUCCESS | USERSTOPPED | ERROR\n"
|
||||||
" CPLAYBACKOFFSET - This contains the offset in ms into the file where\n"
|
" CPLAYBACKOFFSET - This contains the offset in ms into the file where\n"
|
||||||
" playback was at when it stopped. -1 is end of file.\n";
|
" playback was at when it stopped. -1 is end of file.\n"
|
||||||
|
" CPLAYBACKSTOPKEY - If the playback is stopped by the user this variable contains\n"
|
||||||
|
" the key that was pressed.\n";
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
OPT_OFFSET = (1 << 1),
|
OPT_OFFSET = (1 << 1),
|
||||||
@@ -82,6 +84,7 @@ static int controlplayback_exec(struct ast_channel *chan, void *data)
|
|||||||
int skipms = 0;
|
int skipms = 0;
|
||||||
long offsetms = 0;
|
long offsetms = 0;
|
||||||
char offsetbuf[20];
|
char offsetbuf[20];
|
||||||
|
char stopkeybuf[2];
|
||||||
char *tmp;
|
char *tmp;
|
||||||
struct ast_flags opts = { 0, };
|
struct ast_flags opts = { 0, };
|
||||||
char *opt_args[OPT_ARG_ARRAY_LEN];
|
char *opt_args[OPT_ARG_ARRAY_LEN];
|
||||||
@@ -132,8 +135,10 @@ static int controlplayback_exec(struct ast_channel *chan, void *data)
|
|||||||
|
|
||||||
/* If we stopped on one of our stop keys, return 0 */
|
/* If we stopped on one of our stop keys, return 0 */
|
||||||
if (res > 0 && args.stop && strchr(args.stop, res)) {
|
if (res > 0 && args.stop && strchr(args.stop, res)) {
|
||||||
res = 0;
|
|
||||||
pbx_builtin_setvar_helper(chan, "CPLAYBACKSTATUS", "USERSTOPPED");
|
pbx_builtin_setvar_helper(chan, "CPLAYBACKSTATUS", "USERSTOPPED");
|
||||||
|
snprintf(stopkeybuf, sizeof(stopkeybuf), "%c", res);
|
||||||
|
pbx_builtin_setvar_helper(chan, "CPLAYBACKSTOPKEY", stopkeybuf);
|
||||||
|
res = 0;
|
||||||
} else {
|
} else {
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
res = 0;
|
res = 0;
|
||||||
|
Reference in New Issue
Block a user