Merged revisions 174219 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
  r174219 | file | 2009-02-09 10:49:24 -0400 (Mon, 09 Feb 2009) | 11 lines
  
  Merged revisions 174218 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r174218 | file | 2009-02-09 10:48:21 -0400 (Mon, 09 Feb 2009) | 4 lines
    
    Don't overwrite our pointer to the music class when music on hold stops. We will use this if it starts again to see if we can resume the music where it left off.
    (closes issue #14407)
    Reported by: mostyn
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@174221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2009-02-09 14:50:50 +00:00
parent 1b0db3b12d
commit 90b3566d84

View File

@@ -213,7 +213,7 @@ static void moh_files_release(struct ast_channel *chan, void *data)
state->save_pos = state->pos;
state->class = mohclass_unref(state->class);
mohclass_unref(state->class);
}
static int ast_moh_files_next(struct ast_channel *chan)
@@ -314,8 +314,6 @@ static void *moh_files_alloc(struct ast_channel *chan, void *params)
if (!chan->music_state && (state = ast_calloc(1, sizeof(*state)))) {
chan->music_state = state;
state->class = mohclass_ref(class);
state->save_pos = -1;
} else {
state = chan->music_state;
}
@@ -325,17 +323,13 @@ static void *moh_files_alloc(struct ast_channel *chan, void *params)
}
if (state->class != class) {
/* (re-)initialize */
if (state->class) {
state->class = mohclass_unref(state->class);
}
memset(state, 0, sizeof(*state));
state->class = mohclass_ref(class);
if (ast_test_flag(state->class, MOH_RANDOMIZE) && class->total_files) {
if (ast_test_flag(class, MOH_RANDOMIZE) && class->total_files) {
state->pos = ast_random() % class->total_files;
}
}
state->class = mohclass_ref(class);
state->origwfmt = chan->writeformat;
ast_verb(3, "Started music on hold, class '%s', on %s\n", class->name, chan->name);