mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 19:18:06 +00:00
111 lines
4.7 KiB
C
111 lines
4.7 KiB
C
/*******************************************************************************
|
|
* conference_private.h
|
|
*
|
|
* Tue Jan 12, 2015
|
|
* Copyright 2015 Belledonne Communications
|
|
* Author: Linphone's team
|
|
* Email info@belledonne-communications.com
|
|
******************************************************************************/
|
|
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
#ifndef CONFERENCE_PRIVATE_H
|
|
#define CONFERENCE_PRIVATE_H
|
|
|
|
#include "linphone/core.h"
|
|
#include "linphone/conference.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
LinphoneConferenceClassLocal,
|
|
LinphoneConferenceClassRemote
|
|
} LinphoneConferenceClass;
|
|
|
|
/**
|
|
* List of states used by #LinphoneConference
|
|
*/
|
|
typedef enum {
|
|
LinphoneConferenceStopped, /*< Initial state */
|
|
LinphoneConferenceStarting, /*< A participant has been added but the conference is not running yet */
|
|
LinphoneConferenceRunning, /*< The conference is running */
|
|
LinphoneConferenceStartingFailed /*< A participant has been added but the initialization of the conference has failed */
|
|
} LinphoneConferenceState;
|
|
/**
|
|
* Type of the funtion to pass as callback to linphone_conference_params_set_state_changed_callback()
|
|
* @param conference The conference instance which the state has changed
|
|
* @param new_state The new state of the conferenece
|
|
* @param user_data Pointer pass to user_data while linphone_conference_params_set_state_changed_callback() was being called
|
|
*/
|
|
typedef void (*LinphoneConferenceStateChangedCb)(LinphoneConference *conference, LinphoneConferenceState new_state, void *user_data);
|
|
|
|
|
|
/**
|
|
* A function to converte a #LinphoneConferenceState into a string
|
|
*/
|
|
const char *linphone_conference_state_to_string(LinphoneConferenceState state);
|
|
|
|
|
|
/**
|
|
* Set a callback which will be called when the state of the conferenec is switching
|
|
* @param params A #LinphoneConferenceParams object
|
|
* @param cb The callback to call
|
|
* @param user_data Pointer to pass to the user_data parameter of #LinphoneConferenceStateChangedCb
|
|
*/
|
|
void linphone_conference_params_set_state_changed_callback(LinphoneConferenceParams *params, LinphoneConferenceStateChangedCb cb, void *user_data);
|
|
|
|
|
|
LinphoneConference *linphone_local_conference_new(LinphoneCore *core);
|
|
LinphoneConference *linphone_local_conference_new_with_params(LinphoneCore *core, const LinphoneConferenceParams *params);
|
|
LinphoneConference *linphone_remote_conference_new(LinphoneCore *core);
|
|
LinphoneConference *linphone_remote_conference_new_with_params(LinphoneCore *core, const LinphoneConferenceParams *params);
|
|
|
|
/**
|
|
* Get the state of a conference
|
|
*/
|
|
LinphoneConferenceState linphone_conference_get_state(const LinphoneConference *obj);
|
|
|
|
int linphone_conference_add_participant(LinphoneConference *obj, LinphoneCall *call);
|
|
int linphone_conference_remove_participant_with_call(LinphoneConference *obj, LinphoneCall *call);
|
|
int linphone_conference_terminate(LinphoneConference *obj);
|
|
int linphone_conference_get_size(const LinphoneConference *obj);
|
|
|
|
int linphone_conference_enter(LinphoneConference *obj);
|
|
int linphone_conference_leave(LinphoneConference *obj);
|
|
bool_t linphone_conference_is_in(const LinphoneConference *obj);
|
|
|
|
AudioStream *linphone_conference_get_audio_stream(const LinphoneConference *obj);
|
|
|
|
int linphone_conference_mute_microphone(LinphoneConference *obj, bool_t val);
|
|
bool_t linphone_conference_microphone_is_muted(const LinphoneConference *obj);
|
|
float linphone_conference_get_input_volume(const LinphoneConference *obj);
|
|
|
|
int linphone_conference_start_recording(LinphoneConference *obj, const char *path);
|
|
int linphone_conference_stop_recording(LinphoneConference *obj);
|
|
|
|
void linphone_conference_on_call_stream_starting(LinphoneConference *obj, LinphoneCall *call, bool_t is_paused_by_remote);
|
|
void linphone_conference_on_call_stream_stopping(LinphoneConference *obj, LinphoneCall *call);
|
|
void linphone_conference_on_call_terminating(LinphoneConference *obj, LinphoneCall *call);
|
|
|
|
LINPHONE_PUBLIC bool_t linphone_conference_check_class(LinphoneConference *obj, LinphoneConferenceClass _class);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //CONFERENCE_PRIVATE_H
|