conference.h 3.12 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
/*******************************************************************************
 *            conference.cc
 *
 *  Thu Nov 26, 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_H
#define CONFERENCE_H

29 30
#include "linphonecore.h"

Sylvain Berfini's avatar
Sylvain Berfini committed
31 32 33 34
#ifdef __cplusplus
extern "C" {
#endif
	
35

36
//typedef struct _LinphoneConference LinphoneConference;
37

38
typedef enum {
39 40
	LinphoneConferenceClassLocal,
	LinphoneConferenceClassRemote
41 42
} LinphoneConferenceClass;

43 44
LinphoneConference *linphone_local_conference_new(LinphoneCore *core);
LinphoneConference *linphone_remote_conference_new(LinphoneCore *core);
45 46
void linphone_conference_free(LinphoneConference *obj);

47 48
int linphone_conference_add_participant(LinphoneConference *obj, LinphoneCall *call);
int linphone_conference_remove_participant_with_call(LinphoneConference *obj, LinphoneCall *call);
49
LINPHONE_PUBLIC int linphone_conference_remove_participant(LinphoneConference *obj, const LinphoneAddress *uri);
50 51
int linphone_conference_terminate(LinphoneConference *obj);

52 53
int linphone_conference_enter(LinphoneConference *obj);
int linphone_conference_leave(LinphoneConference *obj);
54
LINPHONE_PUBLIC bool_t linphone_conference_is_in(const LinphoneConference *obj);
55 56 57 58 59
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);
60

61
LINPHONE_PUBLIC int linphone_conference_get_size(const LinphoneConference *obj);
62
LINPHONE_PUBLIC MSList *linphone_conference_get_participants(const LinphoneConference *obj);
63 64 65 66 67 68 69 70

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);

71 72
bool_t linphone_conference_check_class(LinphoneConference *obj, LinphoneConferenceClass _class);

Sylvain Berfini's avatar
Sylvain Berfini committed
73 74 75 76
#ifdef __cplusplus
}
#endif

77
#endif // CONFERENCE_H