allow uuid_break to interrupt one or all in a delimited string of files the same as several individual files

This commit is contained in:
Anthony Minessale 2010-06-04 10:15:04 -05:00
parent fcb78c07a5
commit eba05c3c01
2 changed files with 8 additions and 4 deletions

View File

@ -2729,14 +2729,14 @@ SWITCH_STANDARD_API(break_function)
if (switch_channel_test_flag(channel, CF_BROADCAST)) { if (switch_channel_test_flag(channel, CF_BROADCAST)) {
switch_channel_stop_broadcast(channel); switch_channel_stop_broadcast(channel);
} else { } else {
switch_channel_set_flag(channel, CF_BREAK); switch_channel_set_flag_value(channel, CF_BREAK, all ? 2 : 1);
} }
if (qchannel) { if (qchannel) {
if (switch_channel_test_flag(qchannel, CF_BROADCAST)) { if (switch_channel_test_flag(qchannel, CF_BROADCAST)) {
switch_channel_stop_broadcast(qchannel); switch_channel_stop_broadcast(qchannel);
} else { } else {
switch_channel_set_flag(qchannel, CF_BREAK); switch_channel_set_flag_value(qchannel, CF_BREAK, all ? 2 : 1);
} }
} }

View File

@ -1195,14 +1195,18 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
for (;;) { for (;;) {
int do_speed = 1; int do_speed = 1;
int last_speed = -1; int last_speed = -1;
int f;
if (!switch_channel_ready(channel)) { if (!switch_channel_ready(channel)) {
status = SWITCH_STATUS_FALSE; status = SWITCH_STATUS_FALSE;
break; break;
} }
if (switch_channel_test_flag(channel, CF_BREAK)) { if ((f = switch_channel_test_flag(channel, CF_BREAK))) {
switch_channel_clear_flag(channel, CF_BREAK); switch_channel_clear_flag(channel, CF_BREAK);
if (f == 2) {
done = 1;
}
status = SWITCH_STATUS_BREAK; status = SWITCH_STATUS_BREAK;
break; break;
} }