diff options
Diffstat (limited to 'pjmedia/src/pjmedia/tonegen.c')
-rw-r--r-- | pjmedia/src/pjmedia/tonegen.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/tonegen.c b/pjmedia/src/pjmedia/tonegen.c index 68d6634b..9333ab23 100644 --- a/pjmedia/src/pjmedia/tonegen.c +++ b/pjmedia/src/pjmedia/tonegen.c @@ -401,6 +401,26 @@ PJ_DEF(pj_status_t) pjmedia_tonegen_stop(pjmedia_port *port) /* + * Instruct the tone generator to stop current processing. + */ +PJ_DEF(pj_status_t) pjmedia_tonegen_rewind(pjmedia_port *port) +{ + struct tonegen *tonegen = (struct tonegen*) port; + PJ_ASSERT_RETURN(port->info.signature == SIGNATURE, PJ_EINVAL); + + TRACE_((THIS_FILE, "tonegen_rewind()")); + + /* Reset back to the first tone */ + pj_lock_acquire(tonegen->lock); + tonegen->cur_digit = 0; + tonegen->dig_samples = 0; + pj_lock_release(tonegen->lock); + + return PJ_SUCCESS; +} + + +/* * Callback to destroy tonegen */ static pj_status_t tonegen_destroy(pjmedia_port *port) |