Added new WAV player API: pjmedia_wav_player_get_len()
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1680 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/include/pjmedia/wav_port.h b/pjmedia/include/pjmedia/wav_port.h
index e3279ba..889eea7 100644
--- a/pjmedia/include/pjmedia/wav_port.h
+++ b/pjmedia/include/pjmedia/wav_port.h
@@ -75,6 +75,17 @@
/**
+ * 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 225f1e5..78af891 100644
--- a/pjmedia/src/pjmedia/wav_player.c
+++ b/pjmedia/src/pjmedia/wav_player.c
@@ -400,6 +400,27 @@
/*
+ * 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 @@
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;