summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-01-12 11:11:58 +0000
committerBenny Prijono <bennylp@teluu.com>2008-01-12 11:11:58 +0000
commit3924e531fa1bde05b655f8b61e94de0f75a21ecd (patch)
tree64fbf074744cead3b27623c3c6481ec4ff8fee77 /pjmedia
parentf5b261001aa343bbf5efa41b5bade69e08f54628 (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.h11
-rw-r--r--pjmedia/src/pjmedia/wav_player.c25
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;