mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-15 17:27:02 +00:00
Add optional one way playback (bug #3397)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -70,6 +70,7 @@ static struct timeval lasttime;
|
|||||||
static int usecnt;
|
static int usecnt;
|
||||||
static int silencesuppression = 0;
|
static int silencesuppression = 0;
|
||||||
static int silencethreshold = 1000;
|
static int silencethreshold = 1000;
|
||||||
|
static int playbackonly = 0;
|
||||||
|
|
||||||
|
|
||||||
AST_MUTEX_DEFINE_STATIC(usecnt_lock);
|
AST_MUTEX_DEFINE_STATIC(usecnt_lock);
|
||||||
@@ -565,9 +566,11 @@ static int oss_write(struct ast_channel *chan, struct ast_frame *f)
|
|||||||
return 0;
|
return 0;
|
||||||
/* Stop any currently playing sound */
|
/* Stop any currently playing sound */
|
||||||
cursound = -1;
|
cursound = -1;
|
||||||
if (!full_duplex) {
|
if (!full_duplex && !playbackonly) {
|
||||||
/* If we're half duplex, we have to switch to read mode
|
/* If we're half duplex, we have to switch to read mode
|
||||||
to honor immediate needs if necessary */
|
to honor immediate needs if necessary. But if we are in play
|
||||||
|
back only mode, then we don't switch because the console
|
||||||
|
is only being used one way -- just to playback something. */
|
||||||
res = soundcard_setinput(1);
|
res = soundcard_setinput(1);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
ast_log(LOG_WARNING, "Unable to set device to input mode\n");
|
ast_log(LOG_WARNING, "Unable to set device to input mode\n");
|
||||||
@@ -1038,6 +1041,8 @@ int load_module()
|
|||||||
strncpy(language, v->value, sizeof(language)-1);
|
strncpy(language, v->value, sizeof(language)-1);
|
||||||
else if (!strcasecmp(v->name, "extension"))
|
else if (!strcasecmp(v->name, "extension"))
|
||||||
strncpy(exten, v->value, sizeof(exten)-1);
|
strncpy(exten, v->value, sizeof(exten)-1);
|
||||||
|
else if (!strcasecmp(v->name, "playbackonly"))
|
||||||
|
playbackonly = ast_true(v->value);
|
||||||
v=v->next;
|
v=v->next;
|
||||||
}
|
}
|
||||||
ast_destroy(cfg);
|
ast_destroy(cfg);
|
||||||
|
@@ -25,3 +25,10 @@ extension=s
|
|||||||
; but your mileage may vary. Use the echo test to evaluate the best setting.
|
; but your mileage may vary. Use the echo test to evaluate the best setting.
|
||||||
;silencesuppression = yes
|
;silencesuppression = yes
|
||||||
;silencethreshold = 1000
|
;silencethreshold = 1000
|
||||||
|
;
|
||||||
|
; On half-duplex cards, the driver attempts to switch back and forth between
|
||||||
|
; read and write modes. Unfortunately, this fails sometimes on older hardware.
|
||||||
|
; To prevent the driver from switching (ie. only play files on your speakers),
|
||||||
|
; then set the playbackonly option to yes. Default is no. Note this option has
|
||||||
|
; no effect on full-duplex cards.
|
||||||
|
;playbackonly=no
|
||||||
|
Reference in New Issue
Block a user