/* * Copyright (c) 2010-2019 Belledonne Communications SARL. * * This file is part of Liblinphone. * * 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 3 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, see . */ #ifndef LINPHONE_MISC_H_ #define LINPHONE_MISC_H_ #include "linphone/types.h" #ifdef __cplusplus extern "C" { #endif /** * Lowest volume measurement that can be returned by linphone_call_get_play_volume() or linphone_call_get_record_volume(), corresponding to pure silence. * @ingroup call_misc **/ #define LINPHONE_VOLUME_DB_LOWEST (-120) /* WARNING: keep this in sync with mediastreamer2/msvolume.h */ /** * Disable a sip transport * Use with #LinphoneSipTransports * @ingroup initializing */ #define LC_SIP_TRANSPORT_DISABLED 0 /** * Randomly chose a sip port for this transport * Use with #LinphoneSipTransports * @ingroup initializing */ #define LC_SIP_TRANSPORT_RANDOM (-1) /** * Don't create any server socket for this transport, ie don't bind on any port. * Use with #LinphoneSipTransports * @ingroup initializing **/ #define LC_SIP_TRANSPORT_DONTBIND (-2) /** * Function returning a human readable value for LinphoneStreamType. * @ingroup initializing **/ LINPHONE_PUBLIC const char *linphone_stream_type_to_string(const LinphoneStreamType); /** * Human readable version of the #LinphoneRegistrationState * @param cs sate * @ingroup proxies */ LINPHONE_PUBLIC const char *linphone_registration_state_to_string(LinphoneRegistrationState cs); /** * Convert enum member to string. * @ingroup media_parameters **/ LINPHONE_PUBLIC const char *linphone_media_encryption_to_string(LinphoneMediaEncryption menc); LINPHONE_PUBLIC const char* linphone_privacy_to_string(LinphonePrivacy privacy); LINPHONE_PUBLIC const char *linphone_subscription_state_to_string(LinphoneSubscriptionState state); LINPHONE_PUBLIC const char *linphone_publish_state_to_string(LinphonePublishState state); LINPHONE_PUBLIC const char *linphone_ice_state_to_string(LinphoneIceState state); LINPHONE_PUBLIC const char *linphone_global_state_to_string(LinphoneGlobalState gs); LINPHONE_PUBLIC const char *linphone_core_log_collection_upload_state_to_string(const LinphoneCoreLogCollectionUploadState lcus); LINPHONE_PUBLIC const char *linphone_call_state_to_string(LinphoneCallState cs); /** * Converts a _LinphoneConfiguringState enum to a string. * @ingroup misc **/ LINPHONE_PUBLIC const char *linphone_configuring_state_to_string(LinphoneConfiguringState cs); /** * Returns a #LinphoneChatMessageState as a string. */ LINPHONE_PUBLIC const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state); /** * Converts a #LinphoneReason enum to a string. * @param[in] err A #LinphoneReason * @return The string representation of the specified #LinphoneReason * @ingroup misc **/ LINPHONE_PUBLIC const char *linphone_reason_to_string(LinphoneReason err); /** * Return humain readable presence status * @param ss * @deprecated Use #LinphonePresenceModel, #LinphonePresenceActivity and linphone_presence_activity_to_string() instead. * @donotwrap */ LINPHONE_PUBLIC LINPHONE_DEPRECATED const char *linphone_online_status_to_string(LinphoneOnlineStatus ss); /** * Convert a string into #LinphoneTunnelMode enum * @param string String to convert * @return An #LinphoneTunnelMode enum. If the passed string is NULL or * does not match with any mode, the #LinphoneTunnelModeDisable is returned. */ LINPHONE_PUBLIC LinphoneTunnelMode linphone_tunnel_mode_from_string(const char *string); /** * Convert a tunnel mode enum into string * @param mode Enum to convert * @return "disable", "enable" or "auto" */ LINPHONE_PUBLIC const char *linphone_tunnel_mode_to_string(LinphoneTunnelMode mode); /** * Check whether Matroksa format is supported by the player * @return TRUE if it is supported */ LINPHONE_PUBLIC bool_t linphone_local_player_matroska_supported(void); /** * Converts a #LinphoneTransportType enum to a lowercase string. * @ingroup misc **/ LINPHONE_PUBLIC const char* linphone_transport_to_string(LinphoneTransportType transport); /** * Converts a lowercase string to a #LinphoneTransportType enum. * @ingroup misc * @return Transport matching input, or #LinphoneTransportUdp if nothing is found **/ LINPHONE_PUBLIC LinphoneTransportType linphone_transport_parse(const char* transport); /** * Check whether an error code is in Retry-After field. * @param[in] err An error code * @return TRUE if it is in Retry-After field * @ingroup misc **/ LINPHONE_PUBLIC bool_t linphone_error_code_is_retry_after(int err); /** * Converts an error code to a LinphoneReason. * @param[in] err An error code * @return The #LinphoneReason corresponding to the specified error code * @ingroup misc **/ LINPHONE_PUBLIC LinphoneReason linphone_error_code_to_reason(int err); /** * Converts a #LinphoneReason to an error code. * @param[in] reason A #LinphoneReason * @return The error code corresponding to the specified #LinphoneReason * @ingroup misc */ LINPHONE_PUBLIC int linphone_reason_to_error_code(LinphoneReason reason); /** * Increment refcount. * @param[in] range #LinphoneRange object * @ingroup misc **/ LINPHONE_PUBLIC LinphoneRange *linphone_range_ref(LinphoneRange *range); /** * Decrement refcount and possibly free the object. * @param[in] range #LinphoneRange object * @ingroup misc **/ LINPHONE_PUBLIC void linphone_range_unref(LinphoneRange *range); /** * Gets the user data in the #LinphoneRange object * @param[in] range the #LinphoneRange * @return the user data * @ingroup misc */ LINPHONE_PUBLIC void *linphone_range_get_user_data(const LinphoneRange *range); /** * Sets the user data in the #LinphoneRange object * @param[in] range the #LinphoneRange object * @param[in] data the user data * @ingroup misc */ LINPHONE_PUBLIC void linphone_range_set_user_data(LinphoneRange *range, void *data); /** * Gets the lower value of the range * @param[in] range a #LinphoneRange * @return The lower value * @ingroup misc */ LINPHONE_PUBLIC int linphone_range_get_min(const LinphoneRange *range); /** * Gets the higher value of the range * @param[in] range a #LinphoneRange * @return The higher value * @ingroup misc */ LINPHONE_PUBLIC int linphone_range_get_max(const LinphoneRange *range); /** * Sets the lower value of the range * @param[in] range a #LinphoneRange * @param[in] min the value to set * @ingroup misc */ LINPHONE_PUBLIC void linphone_range_set_min(LinphoneRange *range, int min); /** * Sets the higher value of the range * @param[in] range a #LinphoneRange * @param[in] max the value to set * @ingroup misc */ LINPHONE_PUBLIC void linphone_range_set_max(LinphoneRange *range, int max); #ifdef __cplusplus } #endif #endif /* LINPHONE_MISC_H_ */