<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
  <compounddef id="player_8c" kind="file">
    <compoundname>player.c</compoundname>
    <includes refid="private_8h" local="yes">private.h</includes>
      <sectiondef kind="func">
      <memberdef kind="function" id="player_8c_1a097cc5571080ada2008060bafa50baf9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_open</definition>
        <argsstring>(LinphonePlayer *obj, const char *filename, LinphonePlayerEofCallback cb, void *user_data)</argsstring>
        <name>linphone_player_open</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>filename</declname>
        </param>
        <param>
          <type><ref refid="group__call__control_1ga66cc961544fb6f966d29d723ce86503a" kindref="member">LinphonePlayerEofCallback</ref></type>
          <declname>cb</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>user_data</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Open a new source on this player. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>filename</parametername>
</parameternamelist>
<parameterdescription>
<para>file to open. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cb</parametername>
</parameternamelist>
<parameterdescription>
<para>a callback used to notify end of play. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>user_data</parametername>
</parameternamelist>
<parameterdescription>
<para>a user-data provided in the callback to help the application to retrieve its context. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>0 if successful, -1 otherwise </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="31" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="31" bodyend="35"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1af7e7b8043fd47c68ce4e6dd8616b3924" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_start</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_start</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Start a play operation. The player must have been open previously with linphone_player_open(). <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>0 if successful, -1 otherwise </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="42" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="42" bodyend="44"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1ad76eb2e50b969d092fdc8a167fb31eb9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_pause</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_pause</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Suspend a play operation. The player must have been started previously with linphone_player_start(). <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>0 if successful, -1 otherwise </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="51" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="51" bodyend="53"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a33ffcbc6d6f6f490d0bbf0fcff870f7d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_seek</definition>
        <argsstring>(LinphonePlayer *obj, int time_ms)</argsstring>
        <name>linphone_player_seek</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <param>
          <type>int</type>
          <declname>time_ms</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Seek at a given position given in milliseconds. The player must be in the paused state. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>time_ms</parametername>
</parameternamelist>
<parameterdescription>
<para>the position to seek to. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>0 if successful, -1 otherwise </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="61" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="61" bodyend="63"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1aeebd9aaee42f2a84908780cf057ae769" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>MSPlayerState</type>
        <definition>MSPlayerState linphone_player_get_state</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_get_state</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Get the state of play operation. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>the state of the player within MSPlayerClosed, MSPlayerStarted, MSPlayerPaused. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="70" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="70" bodyend="72"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a87df0196d099492e2af6491420c8ef64" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_get_duration</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_get_duration</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Get the duration of the media <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The duration in milliseconds </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="79" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="79" bodyend="81"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a5b3c285127c02f36b6b68a88d475008f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int linphone_player_get_current_position</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_get_current_position</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Get the position of the playback <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Position of the playback in milliseconds </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="88" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="88" bodyend="90"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a3ce415bfe18ff76e316dd859fcd67daf" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_player_close</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_close</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Close the player. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>the player. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="96" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="96" bodyend="98"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1ae3bffbf554e1f904a51da0d07a935f97" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_player_destroy</definition>
        <argsstring>(LinphonePlayer *obj)</argsstring>
        <name>linphone_player_destroy</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
<para>Destroy a player. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>obj</parametername>
</parameternamelist>
<parameterdescription>
<para>The player </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="104" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="104" bodyend="106"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1aa1e6325148ff6f9a7164dcebde696484" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void _linphone_player_destroy</definition>
        <argsstring>(LinphonePlayer *player)</argsstring>
        <name>_linphone_player_destroy</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="108" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="108" bodyend="110"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a84f9904c85cc5d23b89672d89676a4df" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool_t</type>
        <definition>static bool_t call_player_check_state</definition>
        <argsstring>(LinphonePlayer *player, bool_t check_player)</argsstring>
        <name>call_player_check_state</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <param>
          <type>bool_t</type>
          <declname>check_player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="118" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="118" bodyend="133"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a49036a4eb11b68193dc261a479c35118" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>static void on_eof</definition>
        <argsstring>(void *user_data, MSFilter *f, unsigned int event_id, void *arg)</argsstring>
        <name>on_eof</name>
        <param>
          <type>void *</type>
          <declname>user_data</declname>
        </param>
        <param>
          <type>MSFilter *</type>
          <declname>f</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>event_id</declname>
        </param>
        <param>
          <type>void *</type>
          <declname>arg</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="135" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="135" bodyend="138"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1af2bdc2cf242cf2eff6727b2416f15714" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>static int call_player_open</definition>
        <argsstring>(LinphonePlayer *player, const char *filename)</argsstring>
        <name>call_player_open</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>filename</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="140" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="140" bodyend="148"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a406cab3530c4621d6a41c7b046115071" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>static int call_player_start</definition>
        <argsstring>(LinphonePlayer *player)</argsstring>
        <name>call_player_start</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="150" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="150" bodyend="154"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1aed53f66eaa8f927368e5eb9a3c0cda81" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>static int call_player_pause</definition>
        <argsstring>(LinphonePlayer *player)</argsstring>
        <name>call_player_pause</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="156" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="156" bodyend="160"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1af9b0929365f54eca93b44943c0732d1f" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>MSPlayerState</type>
        <definition>static MSPlayerState call_player_get_state</definition>
        <argsstring>(LinphonePlayer *player)</argsstring>
        <name>call_player_get_state</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="162" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="162" bodyend="168"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a16bcd98590498c1531fc660d00c9b869" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>static int call_player_seek</definition>
        <argsstring>(LinphonePlayer *player, int time_ms)</argsstring>
        <name>call_player_seek</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <param>
          <type>int</type>
          <declname>time_ms</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="170" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="170" bodyend="174"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1aaac351ff7626de6167914a5d800a2ef5" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>static void call_player_close</definition>
        <argsstring>(LinphonePlayer *player)</argsstring>
        <name>call_player_close</name>
        <param>
          <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
          <declname>player</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="176" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="176" bodyend="181"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1ac104e21f995db4b59acc3bc846ecc208" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>static void on_call_destroy</definition>
        <argsstring>(void *obj, belle_sip_object_t *call_being_destroyed)</argsstring>
        <name>on_call_destroy</name>
        <param>
          <type>void *</type>
          <declname>obj</declname>
        </param>
        <param>
          <type>belle_sip_object_t *</type>
          <declname>call_being_destroyed</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="183" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="183" bodyend="185"/>
      </memberdef>
      <memberdef kind="function" id="player_8c_1a28005e84a139d97b825b639df60b1954" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref> *</type>
        <definition>LinphonePlayer* linphone_call_build_player</definition>
        <argsstring>(LinphoneCall *call)</argsstring>
        <name>linphone_call_build_player</name>
        <param>
          <type><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref> *</type>
          <declname>call</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" line="187" column="1" bodyfile="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c" bodystart="187" bodyend="198"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="3"><highlight class="comment">linphone</highlight></codeline>
<codeline lineno="4"><highlight class="comment">Copyright<sp/>(C)<sp/>2014<sp/>Belledonne<sp/>Communications<sp/>SARL</highlight></codeline>
<codeline lineno="5"><highlight class="comment"></highlight></codeline>
<codeline lineno="6"><highlight class="comment">This<sp/>program<sp/>is<sp/>free<sp/>software;<sp/>you<sp/>can<sp/>redistribute<sp/>it<sp/>and/or</highlight></codeline>
<codeline lineno="7"><highlight class="comment">modify<sp/>it<sp/>under<sp/>the<sp/>terms<sp/>of<sp/>the<sp/>GNU<sp/>General<sp/>Public<sp/>License</highlight></codeline>
<codeline lineno="8"><highlight class="comment">as<sp/>published<sp/>by<sp/>the<sp/>Free<sp/>Software<sp/>Foundation;<sp/>either<sp/>version<sp/>2</highlight></codeline>
<codeline lineno="9"><highlight class="comment">of<sp/>the<sp/>License,<sp/>or<sp/>(at<sp/>your<sp/>option)<sp/>any<sp/>later<sp/>version.</highlight></codeline>
<codeline lineno="10"><highlight class="comment"></highlight></codeline>
<codeline lineno="11"><highlight class="comment">This<sp/>program<sp/>is<sp/>distributed<sp/>in<sp/>the<sp/>hope<sp/>that<sp/>it<sp/>will<sp/>be<sp/>useful,</highlight></codeline>
<codeline lineno="12"><highlight class="comment">but<sp/>WITHOUT<sp/>ANY<sp/>WARRANTY;<sp/>without<sp/>even<sp/>the<sp/>implied<sp/>warranty<sp/>of</highlight></codeline>
<codeline lineno="13"><highlight class="comment">MERCHANTABILITY<sp/>or<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE.<sp/><sp/>See<sp/>the</highlight></codeline>
<codeline lineno="14"><highlight class="comment">GNU<sp/>General<sp/>Public<sp/>License<sp/>for<sp/>more<sp/>details.</highlight></codeline>
<codeline lineno="15"><highlight class="comment"></highlight></codeline>
<codeline lineno="16"><highlight class="comment">You<sp/>should<sp/>have<sp/>received<sp/>a<sp/>copy<sp/>of<sp/>the<sp/>GNU<sp/>General<sp/>Public<sp/>License</highlight></codeline>
<codeline lineno="17"><highlight class="comment">along<sp/>with<sp/>this<sp/>program;<sp/>if<sp/>not,<sp/>write<sp/>to<sp/>the<sp/>Free<sp/>Software</highlight></codeline>
<codeline lineno="18"><highlight class="comment">Foundation,<sp/>Inc.,<sp/>59<sp/>Temple<sp/>Place<sp/>-<sp/>Suite<sp/>330,<sp/>Boston,<sp/>MA<sp/><sp/>02111-1307,<sp/>USA.</highlight></codeline>
<codeline lineno="19"><highlight class="comment">*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;private.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="22"><highlight class="normal"></highlight></codeline>
<codeline lineno="31"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_open(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*filename,<sp/><ref refid="group__call__control_1ga66cc961544fb6f966d29d723ce86503a" kindref="member">LinphonePlayerEofCallback</ref><sp/>cb,<sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*user_data){</highlight></codeline>
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;user_data=user_data;</highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;cb=cb;</highlight></codeline>
<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;open(obj,filename);</highlight></codeline>
<codeline lineno="35"><highlight class="normal">}</highlight></codeline>
<codeline lineno="36"><highlight class="normal"></highlight></codeline>
<codeline lineno="42"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_start(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj){</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;start(obj);</highlight></codeline>
<codeline lineno="44"><highlight class="normal">}</highlight></codeline>
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
<codeline lineno="51"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_pause(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj){</highlight></codeline>
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;pause(obj);</highlight></codeline>
<codeline lineno="53"><highlight class="normal">}</highlight></codeline>
<codeline lineno="54"><highlight class="normal"></highlight></codeline>
<codeline lineno="61"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_seek(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>time_ms){</highlight></codeline>
<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;seek(obj,time_ms);</highlight></codeline>
<codeline lineno="63"><highlight class="normal">}</highlight></codeline>
<codeline lineno="64"><highlight class="normal"></highlight></codeline>
<codeline lineno="70"><highlight class="normal">MSPlayerState<sp/>linphone_player_get_state(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj){</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;get_state(obj);</highlight></codeline>
<codeline lineno="72"><highlight class="normal">}</highlight></codeline>
<codeline lineno="73"><highlight class="normal"></highlight></codeline>
<codeline lineno="79"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_get_duration(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj)<sp/>{</highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;get_duration(obj);</highlight></codeline>
<codeline lineno="81"><highlight class="normal">}</highlight></codeline>
<codeline lineno="82"><highlight class="normal"></highlight></codeline>
<codeline lineno="88"><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>linphone_player_get_current_position(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj)<sp/>{</highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;get_position(obj);</highlight></codeline>
<codeline lineno="90"><highlight class="normal">}</highlight></codeline>
<codeline lineno="91"><highlight class="normal"></highlight></codeline>
<codeline lineno="96"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>linphone_player_close(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj){</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj-&gt;close(obj);</highlight></codeline>
<codeline lineno="98"><highlight class="normal">}</highlight></codeline>
<codeline lineno="99"><highlight class="normal"></highlight></codeline>
<codeline lineno="104"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>linphone_player_destroy(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj)<sp/>{</highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal">(obj-&gt;destroy)<sp/>obj-&gt;destroy(obj);</highlight></codeline>
<codeline lineno="106"><highlight class="normal">}</highlight></codeline>
<codeline lineno="107"><highlight class="normal"></highlight></codeline>
<codeline lineno="108"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>_linphone_player_destroy(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player)<sp/>{</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(player);</highlight></codeline>
<codeline lineno="110"><highlight class="normal">}</highlight></codeline>
<codeline lineno="111"><highlight class="normal"></highlight></codeline>
<codeline lineno="112"><highlight class="normal"></highlight></codeline>
<codeline lineno="113"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="114"><highlight class="comment"><sp/>*<sp/>Call<sp/>player<sp/>implementation<sp/>below.</highlight></codeline>
<codeline lineno="115"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="normal"></highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="118"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>bool_t<sp/>call_player_check_state(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player,<sp/>bool_t<sp/>check_player){</highlight></codeline>
<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(call-&gt;state!=<ref refid="group__call__control_1ggafc310fd9ba742f7730c632fd72b875eaacebe90cc045331e513d069872f9c84d3" kindref="member">LinphoneCallStreamsRunning</ref>){</highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_warning(</highlight><highlight class="stringliteral">&quot;Call<sp/>[%p]:<sp/>in-call<sp/>player<sp/>not<sp/>usable<sp/>in<sp/>state<sp/>[%s]&quot;</highlight><highlight class="normal">,call,linphone_call_state_to_string(call-&gt;state));</highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(call-&gt;audiostream==NULL)<sp/>{</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_error(</highlight><highlight class="stringliteral">&quot;call_player_check_state():<sp/>no<sp/>audiostream.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(check_player<sp/>&amp;&amp;<sp/>call-&gt;audiostream-&gt;av_player.player==NULL){</highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_error(</highlight><highlight class="stringliteral">&quot;call_player_check_state():<sp/>no<sp/>player.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="133"><highlight class="normal">}</highlight></codeline>
<codeline lineno="134"><highlight class="normal"></highlight></codeline>
<codeline lineno="135"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>on_eof(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*user_data,<sp/>MSFilter<sp/>*f,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>event_id,<sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*arg){</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player=(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*)user_data;</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(player-&gt;cb)<sp/>player-&gt;cb(player,player-&gt;user_data);</highlight></codeline>
<codeline lineno="138"><highlight class="normal">}</highlight></codeline>
<codeline lineno="139"><highlight class="normal"></highlight></codeline>
<codeline lineno="140"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>call_player_open(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref>*<sp/>player,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*filename){</highlight></codeline>
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSFilter<sp/>*filter;</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,FALSE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>filter=audio_stream_open_remote_play(call-&gt;audiostream,filename);</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!filter)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_filter_add_notify_callback(filter,&amp;on_eof,player,FALSE);</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
<codeline lineno="148"><highlight class="normal">}</highlight></codeline>
<codeline lineno="149"><highlight class="normal"></highlight></codeline>
<codeline lineno="150"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>call_player_start(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player){</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,TRUE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ms_filter_call_method_noarg(call-&gt;audiostream-&gt;av_player.player,MS_PLAYER_START);</highlight></codeline>
<codeline lineno="154"><highlight class="normal">}</highlight></codeline>
<codeline lineno="155"><highlight class="normal"></highlight></codeline>
<codeline lineno="156"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>call_player_pause(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player){</highlight></codeline>
<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,TRUE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ms_filter_call_method_noarg(call-&gt;audiostream-&gt;av_player.player,MS_PLAYER_PAUSE);</highlight></codeline>
<codeline lineno="160"><highlight class="normal">}</highlight></codeline>
<codeline lineno="161"><highlight class="normal"></highlight></codeline>
<codeline lineno="162"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>MSPlayerState<sp/>call_player_get_state(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player){</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSPlayerState<sp/>state=MSPlayerClosed;</highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,TRUE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>MSPlayerClosed;</highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_filter_call_method(call-&gt;audiostream-&gt;av_player.player,MS_PLAYER_GET_STATE,&amp;state);</highlight></codeline>
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>state;</highlight></codeline>
<codeline lineno="168"><highlight class="normal">}</highlight></codeline>
<codeline lineno="169"><highlight class="normal"></highlight></codeline>
<codeline lineno="170"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>call_player_seek(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>time_ms){</highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,TRUE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ms_filter_call_method(call-&gt;audiostream-&gt;av_player.player,MS_PLAYER_SEEK_MS,&amp;time_ms);</highlight></codeline>
<codeline lineno="174"><highlight class="normal">}</highlight></codeline>
<codeline lineno="175"><highlight class="normal"></highlight></codeline>
<codeline lineno="176"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>call_player_close(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*player){</highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call=(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref>*)player-&gt;impl;</highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(!call_player_check_state(player,TRUE))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>audio_stream_close_remote_play(call-&gt;audiostream);</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="181"><highlight class="normal">}</highlight></codeline>
<codeline lineno="182"><highlight class="normal"></highlight></codeline>
<codeline lineno="183"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>on_call_destroy(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*obj,<sp/>belle_sip_object_t<sp/>*call_being_destroyed){</highlight></codeline>
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>_linphone_player_destroy(obj);</highlight></codeline>
<codeline lineno="185"><highlight class="normal">}</highlight></codeline>
<codeline lineno="186"><highlight class="normal"></highlight></codeline>
<codeline lineno="187"><highlight class="normal"><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*linphone_call_build_player(<ref refid="group__call__control_1gac0a4861d7c4702c64f7106f2b893c69e" kindref="member">LinphoneCall</ref><sp/>*call){</highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref><sp/>*obj=ms_new0(<ref refid="group__call__control_1gae1497db82144ec61a4303c7e84d1603a" kindref="member">LinphonePlayer</ref>,1);</highlight></codeline>
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;open=call_player_open;</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;close=call_player_close;</highlight></codeline>
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;start=call_player_start;</highlight></codeline>
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;seek=call_player_seek;</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;pause=call_player_pause;</highlight></codeline>
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;get_state=call_player_get_state;</highlight></codeline>
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;impl=call;</highlight></codeline>
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>belle_sip_object_weak_ref(call,on_call_destroy,obj);</highlight></codeline>
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj;</highlight></codeline>
<codeline lineno="198"><highlight class="normal">}</highlight></codeline>
    </programlisting>
    <location file="C:/Jenkins/workspace/linphone-gtk-win32/coreapi/player.c"/>
  </compounddef>
</doxygen>
