diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-01-12 11:11:58 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-01-12 11:11:58 +0000 |
commit | 3924e531fa1bde05b655f8b61e94de0f75a21ecd (patch) | |
tree | 64fbf074744cead3b27623c3c6481ec4ff8fee77 /pjmedia | |
parent | f5b261001aa343bbf5efa41b5bade69e08f54628 (diff) |
Added new WAV player API: pjmedia_wav_player_get_len()
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1680 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/include/pjmedia/wav_port.h | 11 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/wav_player.c | 25 |
2 files changed, 34 insertions, 2 deletions
diff --git a/pjmedia/include/pjmedia/wav_port.h b/pjmedia/include/pjmedia/wav_port.h index e3279bad..889eea7b 100644 --- a/pjmedia/include/pjmedia/wav_port.h +++ b/pjmedia/include/pjmedia/wav_port.h @@ -75,6 +75,17 @@ PJ_DECL(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool, /** + * Get the data length, in bytes. + * + * @param port The file player port. + * + * @return The length of the data, in bytes. Upon error it will + * return negative value. + */ +PJ_DECL(pj_ssize_t) pjmedia_wav_player_get_len(pjmedia_port *port); + + +/** * Set the file play position of WAV player. * * @param port The file player port. diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c index 225f1e58..78af891d 100644 --- a/pjmedia/src/pjmedia/wav_player.c +++ b/pjmedia/src/pjmedia/wav_player.c @@ -400,6 +400,27 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool, /* + * Get the data length, in bytes. + */ +PJ_DEF(pj_ssize_t) pjmedia_wav_player_get_len(pjmedia_port *port) +{ + struct file_port *fport; + pj_ssize_t size; + + /* Sanity check */ + PJ_ASSERT_RETURN(port, -PJ_EINVAL); + + /* Check that this is really a player port */ + PJ_ASSERT_RETURN(port->info.signature == SIGNATURE, -PJ_EINVALIDOP); + + fport = (struct file_port*) port; + + size = (pj_ssize_t) fport->fsize; + return size - fport->start_data; +} + + +/* * Set position. */ PJ_DEF(pj_status_t) pjmedia_wav_player_port_set_pos(pjmedia_port *port, @@ -408,10 +429,10 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_set_pos(pjmedia_port *port, struct file_port *fport; /* Sanity check */ - PJ_ASSERT_RETURN(port, -PJ_EINVAL); + PJ_ASSERT_RETURN(port, PJ_EINVAL); /* Check that this is really a player port */ - PJ_ASSERT_RETURN(port->info.signature == SIGNATURE, -PJ_EINVALIDOP); + PJ_ASSERT_RETURN(port->info.signature == SIGNATURE, PJ_EINVALIDOP); fport = (struct file_port*) port; |