summaryrefslogtreecommitdiff
path: root/protocols/Tox/libtox/src/toxcore/tox.h
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-02-15 12:18:35 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-02-15 12:18:35 +0300
commit31e72718ee54867accf0b739a24adc86f8b7ab54 (patch)
treef964c10c5d97d9fe4fd2bd8187c250faedcb0fd7 /protocols/Tox/libtox/src/toxcore/tox.h
parent282e9c18d9d3b726cce3d2ef0babc88029661cb8 (diff)
libtox update
Diffstat (limited to 'protocols/Tox/libtox/src/toxcore/tox.h')
-rw-r--r--protocols/Tox/libtox/src/toxcore/tox.h887
1 files changed, 502 insertions, 385 deletions
diff --git a/protocols/Tox/libtox/src/toxcore/tox.h b/protocols/Tox/libtox/src/toxcore/tox.h
index fd1901f69c..fa887fc779 100644
--- a/protocols/Tox/libtox/src/toxcore/tox.h
+++ b/protocols/Tox/libtox/src/toxcore/tox.h
@@ -124,7 +124,6 @@ extern "C" {
typedef struct Tox Tox;
#endif /* TOX_DEFINED */
-
/** @{
* @name API version
*/
@@ -202,7 +201,6 @@ bool tox_version_is_compatible(uint32_t major, uint32_t minor, uint32_t patch);
/** @} */
-
/** @{
* @name Numeric constants
*
@@ -344,7 +342,6 @@ uint32_t tox_max_hostname_length(void);
/** @} */
-
/** @{
* @name Global enumerations
*/
@@ -373,6 +370,7 @@ typedef enum Tox_User_Status {
} Tox_User_Status;
+const char *tox_user_status_to_string(Tox_User_Status value);
/**
* @brief Represents message types for tox_friend_send_message and conference
@@ -393,8 +391,9 @@ typedef enum Tox_Message_Type {
} Tox_Message_Type;
-/** @} */
+const char *tox_message_type_to_string(Tox_Message_Type value);
+/** @} */
/** @{
* @name Startup options
@@ -422,6 +421,7 @@ typedef enum Tox_Proxy_Type {
} Tox_Proxy_Type;
+const char *tox_proxy_type_to_string(Tox_Proxy_Type value);
/**
* @brief Type of savedata to create the Tox instance from.
@@ -445,6 +445,7 @@ typedef enum Tox_Savedata_Type {
} Tox_Savedata_Type;
+const char *tox_savedata_type_to_string(Tox_Savedata_Type value);
/**
* @brief Severity level of log messages.
@@ -478,6 +479,7 @@ typedef enum Tox_Log_Level {
} Tox_Log_Level;
+const char *tox_log_level_to_string(Tox_Log_Level value);
/**
* @brief This event is triggered when the toxcore library logs an events_alloc message.
@@ -490,6 +492,9 @@ typedef enum Tox_Log_Level {
* any time. Thus, user code must make sure it is equipped to handle concurrent
* execution, e.g. by employing appropriate mutex locking.
*
+ * When using the experimental_thread_safety option, no Tox API functions can
+ * be called from within the log callback.
+ *
* @param level The severity of the log message.
* @param file The source file from which the message originated.
* @param line The source line from which the message originated.
@@ -500,7 +505,6 @@ typedef enum Tox_Log_Level {
typedef void tox_log_cb(Tox *tox, Tox_Log_Level level, const char *file, uint32_t line, const char *func,
const char *message, void *user_data);
-
/**
* @brief Operating system functions used by Tox.
*
@@ -510,7 +514,6 @@ typedef void tox_log_cb(Tox *tox, Tox_Log_Level level, const char *file, uint32_
*/
typedef struct Tox_System Tox_System;
-
/**
* @brief This struct contains all the startup options for Tox.
*
@@ -526,6 +529,7 @@ typedef struct Tox_System Tox_System;
* members. The struct will become opaque (i.e. the definition will become
* private) in v0.3.0.
*/
+typedef struct Tox_Options Tox_Options;
struct Tox_Options {
/**
@@ -538,7 +542,6 @@ struct Tox_Options {
*/
bool ipv6_enabled;
-
/**
* Enable the use of UDP communication when available.
*
@@ -550,7 +553,6 @@ struct Tox_Options {
*/
bool udp_enabled;
-
/**
* Enable local network peer discovery.
*
@@ -558,7 +560,6 @@ struct Tox_Options {
*/
bool local_discovery_enabled;
-
/**
* Enable storing DHT announcements and forwarding corresponding requests.
*
@@ -571,7 +572,6 @@ struct Tox_Options {
*/
Tox_Proxy_Type proxy_type;
-
/**
* The IP address or DNS name of the proxy to be used.
*
@@ -586,7 +586,6 @@ struct Tox_Options {
*/
const char *proxy_host;
-
/**
* The port to use to connect to the proxy server.
*
@@ -595,7 +594,6 @@ struct Tox_Options {
*/
uint16_t proxy_port;
-
/**
* The start port of the inclusive port range to attempt to use.
*
@@ -610,13 +608,11 @@ struct Tox_Options {
*/
uint16_t start_port;
-
/**
* The end port of the inclusive port range to attempt to use.
*/
uint16_t end_port;
-
/**
* The port to use for the TCP server (relay). If 0, the TCP server is
* disabled.
@@ -630,19 +626,16 @@ struct Tox_Options {
*/
uint16_t tcp_port;
-
/**
* Enables or disables UDP hole-punching in toxcore. (Default: enabled).
*/
bool hole_punching_enabled;
-
/**
* The type of savedata to load from.
*/
Tox_Savedata_Type savedata_type;
-
/**
* The savedata.
*
@@ -651,25 +644,21 @@ struct Tox_Options {
*/
const uint8_t *savedata_data;
-
/**
* The length of the savedata.
*/
size_t savedata_length;
-
/**
* Logging callback for the new tox instance.
*/
tox_log_cb *log_callback;
-
/**
* User data pointer passed to the logging callback.
*/
void *log_user_data;
-
/**
* These options are experimental, so avoid writing code that depends on
* them. Options marked "experimental" may change their behaviour or go away
@@ -684,85 +673,99 @@ struct Tox_Options {
bool experimental_thread_safety;
/**
- * Low level operating system functionality such as send/recv and random
- * number generation.
+ * Low level operating system functionality such as send/recv, random
+ * number generation, and memory allocation.
*/
const Tox_System *operating_system;
+ /**
+ * Enable saving DHT-based group chats to Tox save data (via `tox_get_savedata`).
+ * This format will change in the future, so don't rely on it.
+ *
+ * As an alternative, clients can save the group chat ID in client-owned
+ * savedata. Then, when the client starts, it can use `tox_group_join`
+ * with the saved chat ID to recreate the group chat.
+ *
+ * Default: false.
+ */
+ bool experimental_groups_persistence;
};
+bool tox_options_get_ipv6_enabled(const Tox_Options *options);
-bool tox_options_get_ipv6_enabled(const struct Tox_Options *options);
+void tox_options_set_ipv6_enabled(Tox_Options *options, bool ipv6_enabled);
-void tox_options_set_ipv6_enabled(struct Tox_Options *options, bool ipv6_enabled);
+bool tox_options_get_udp_enabled(const Tox_Options *options);
-bool tox_options_get_udp_enabled(const struct Tox_Options *options);
+void tox_options_set_udp_enabled(Tox_Options *options, bool udp_enabled);
-void tox_options_set_udp_enabled(struct Tox_Options *options, bool udp_enabled);
+bool tox_options_get_local_discovery_enabled(const Tox_Options *options);
-bool tox_options_get_local_discovery_enabled(const struct Tox_Options *options);
+void tox_options_set_local_discovery_enabled(Tox_Options *options, bool local_discovery_enabled);
-void tox_options_set_local_discovery_enabled(struct Tox_Options *options, bool local_discovery_enabled);
+bool tox_options_get_dht_announcements_enabled(const Tox_Options *options);
-bool tox_options_get_dht_announcements_enabled(const struct Tox_Options *options);
+void tox_options_set_dht_announcements_enabled(Tox_Options *options, bool dht_announcements_enabled);
-void tox_options_set_dht_announcements_enabled(struct Tox_Options *options, bool dht_announcements_enabled);
+Tox_Proxy_Type tox_options_get_proxy_type(const Tox_Options *options);
-Tox_Proxy_Type tox_options_get_proxy_type(const struct Tox_Options *options);
+void tox_options_set_proxy_type(Tox_Options *options, Tox_Proxy_Type proxy_type);
-void tox_options_set_proxy_type(struct Tox_Options *options, Tox_Proxy_Type type);
+const char *tox_options_get_proxy_host(const Tox_Options *options);
-const char *tox_options_get_proxy_host(const struct Tox_Options *options);
+void tox_options_set_proxy_host(Tox_Options *options, const char *proxy_host);
-void tox_options_set_proxy_host(struct Tox_Options *options, const char *host);
+uint16_t tox_options_get_proxy_port(const Tox_Options *options);
-uint16_t tox_options_get_proxy_port(const struct Tox_Options *options);
+void tox_options_set_proxy_port(Tox_Options *options, uint16_t proxy_port);
-void tox_options_set_proxy_port(struct Tox_Options *options, uint16_t port);
+uint16_t tox_options_get_start_port(const Tox_Options *options);
-uint16_t tox_options_get_start_port(const struct Tox_Options *options);
+void tox_options_set_start_port(Tox_Options *options, uint16_t start_port);
-void tox_options_set_start_port(struct Tox_Options *options, uint16_t start_port);
+uint16_t tox_options_get_end_port(const Tox_Options *options);
-uint16_t tox_options_get_end_port(const struct Tox_Options *options);
+void tox_options_set_end_port(Tox_Options *options, uint16_t end_port);
-void tox_options_set_end_port(struct Tox_Options *options, uint16_t end_port);
+uint16_t tox_options_get_tcp_port(const Tox_Options *options);
-uint16_t tox_options_get_tcp_port(const struct Tox_Options *options);
+void tox_options_set_tcp_port(Tox_Options *options, uint16_t tcp_port);
-void tox_options_set_tcp_port(struct Tox_Options *options, uint16_t tcp_port);
+bool tox_options_get_hole_punching_enabled(const Tox_Options *options);
-bool tox_options_get_hole_punching_enabled(const struct Tox_Options *options);
+void tox_options_set_hole_punching_enabled(Tox_Options *options, bool hole_punching_enabled);
-void tox_options_set_hole_punching_enabled(struct Tox_Options *options, bool hole_punching_enabled);
+Tox_Savedata_Type tox_options_get_savedata_type(const Tox_Options *options);
-Tox_Savedata_Type tox_options_get_savedata_type(const struct Tox_Options *options);
+void tox_options_set_savedata_type(Tox_Options *options, Tox_Savedata_Type savedata_type);
-void tox_options_set_savedata_type(struct Tox_Options *options, Tox_Savedata_Type type);
+const uint8_t *tox_options_get_savedata_data(const Tox_Options *options);
-const uint8_t *tox_options_get_savedata_data(const struct Tox_Options *options);
+void tox_options_set_savedata_data(Tox_Options *options, const uint8_t savedata_data[], size_t length);
-void tox_options_set_savedata_data(struct Tox_Options *options, const uint8_t *data, size_t length);
+size_t tox_options_get_savedata_length(const Tox_Options *options);
-size_t tox_options_get_savedata_length(const struct Tox_Options *options);
+void tox_options_set_savedata_length(Tox_Options *options, size_t savedata_length);
-void tox_options_set_savedata_length(struct Tox_Options *options, size_t length);
+tox_log_cb *tox_options_get_log_callback(const Tox_Options *options);
-tox_log_cb *tox_options_get_log_callback(const struct Tox_Options *options);
+void tox_options_set_log_callback(Tox_Options *options, tox_log_cb *log_callback);
-void tox_options_set_log_callback(struct Tox_Options *options, tox_log_cb *callback);
+void *tox_options_get_log_user_data(const Tox_Options *options);
-void *tox_options_get_log_user_data(const struct Tox_Options *options);
+void tox_options_set_log_user_data(Tox_Options *options, void *log_user_data);
-void tox_options_set_log_user_data(struct Tox_Options *options, void *user_data);
+bool tox_options_get_experimental_thread_safety(const Tox_Options *options);
-bool tox_options_get_experimental_thread_safety(const struct Tox_Options *options);
+void tox_options_set_experimental_thread_safety(Tox_Options *options, bool experimental_thread_safety);
-void tox_options_set_experimental_thread_safety(struct Tox_Options *options, bool experimental_thread_safety);
+const Tox_System *tox_options_get_operating_system(const Tox_Options *options);
-const Tox_System *tox_options_get_operating_system(const struct Tox_Options *options);
+void tox_options_set_operating_system(Tox_Options *options, const Tox_System *operating_system);
-void tox_options_set_operating_system(struct Tox_Options *options, const Tox_System *operating_system);
+bool tox_options_get_experimental_groups_persistence(const Tox_Options *options);
+
+void tox_options_set_experimental_groups_persistence(Tox_Options *options, bool experimental_groups_persistence);
/**
* @brief Initialises a Tox_Options object with the default options.
@@ -775,7 +778,7 @@ void tox_options_set_operating_system(struct Tox_Options *options, const Tox_Sys
*
* @param options An options object to be filled with default options.
*/
-void tox_options_default(struct Tox_Options *options);
+void tox_options_default(Tox_Options *options);
typedef enum Tox_Err_Options_New {
@@ -791,6 +794,7 @@ typedef enum Tox_Err_Options_New {
} Tox_Err_Options_New;
+const char *tox_err_options_new_to_string(Tox_Err_Options_New value);
/**
* @brief Allocates a new Tox_Options object and initialises it with the default
@@ -804,7 +808,7 @@ typedef enum Tox_Err_Options_New {
*
* @return A new Tox_Options object with default options or NULL on failure.
*/
-struct Tox_Options *tox_options_new(Tox_Err_Options_New *error);
+Tox_Options *tox_options_new(Tox_Err_Options_New *error);
/**
* @brief Releases all resources associated with an options objects.
@@ -812,11 +816,10 @@ struct Tox_Options *tox_options_new(Tox_Err_Options_New *error);
* Passing a pointer that was not returned by tox_options_new results in
* undefined behaviour.
*/
-void tox_options_free(struct Tox_Options *options);
+void tox_options_free(Tox_Options *options);
/** @} */
-
/** @{
* @name Creation and destruction
*/
@@ -883,6 +886,7 @@ typedef enum Tox_Err_New {
} Tox_Err_New;
+const char *tox_err_new_to_string(Tox_Err_New value);
/**
* @brief Creates and initialises a new Tox instance with the options passed.
@@ -890,9 +894,6 @@ typedef enum Tox_Err_New {
* This function will bring the instance into a valid state. Running the event
* loop with a new instance will operate correctly.
*
- * If loading failed or succeeded only partially, the new or partially loaded
- * instance is returned and an error code is set.
- *
* @param options An options object as described above. If this parameter is
* NULL, the default options are used.
*
@@ -900,7 +901,7 @@ typedef enum Tox_Err_New {
*
* @return A new Tox instance pointer on success or NULL on failure.
*/
-Tox *tox_new(const struct Tox_Options *options, Tox_Err_New *error);
+Tox *tox_new(const Tox_Options *options, Tox_Err_New *error);
/**
* @brief Releases all resources associated with the Tox instance and
@@ -928,11 +929,10 @@ size_t tox_get_savedata_size(const Tox *tox);
* data. Call tox_get_savedata_size to find the number of bytes required. If this parameter
* is NULL, this function has no effect.
*/
-void tox_get_savedata(const Tox *tox, uint8_t *savedata);
+void tox_get_savedata(const Tox *tox, uint8_t savedata[]);
/** @} */
-
/** @{
* @name Connection lifecycle and event loop
*/
@@ -963,6 +963,7 @@ typedef enum Tox_Err_Bootstrap {
} Tox_Err_Bootstrap;
+const char *tox_err_bootstrap_to_string(Tox_Err_Bootstrap value);
/**
* @brief Sends a "get nodes" request to the given bootstrap node with IP, port,
@@ -979,7 +980,7 @@ typedef enum Tox_Err_Bootstrap {
* (TOX_PUBLIC_KEY_SIZE bytes).
* @return true on success.
*/
-bool tox_bootstrap(Tox *tox, const char *host, uint16_t port, const uint8_t *public_key, Tox_Err_Bootstrap *error);
+bool tox_bootstrap(Tox *tox, const char *host, uint16_t port, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Bootstrap *error);
/**
* @brief Adds additional host:port pair as TCP relay.
@@ -995,7 +996,7 @@ bool tox_bootstrap(Tox *tox, const char *host, uint16_t port, const uint8_t *pub
* (TOX_PUBLIC_KEY_SIZE bytes).
* @return true on success.
*/
-bool tox_add_tcp_relay(Tox *tox, const char *host, uint16_t port, const uint8_t *public_key, Tox_Err_Bootstrap *error);
+bool tox_add_tcp_relay(Tox *tox, const char *host, uint16_t port, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Bootstrap *error);
/**
* @brief Protocols that can be used to connect to the network or friends.
@@ -1030,6 +1031,8 @@ typedef enum Tox_Connection {
} Tox_Connection;
+const char *tox_connection_to_string(Tox_Connection value);
+
/**
* @brief Return whether we are connected to the DHT.
*
@@ -1046,7 +1049,6 @@ Tox_Connection tox_self_get_connection_status(const Tox *tox);
*/
typedef void tox_self_connection_status_cb(Tox *tox, Tox_Connection connection_status, void *user_data);
-
/**
* @brief Set the callback for the `self_connection_status` event.
*
@@ -1076,7 +1078,6 @@ void tox_iterate(Tox *tox, void *user_data);
/** @} */
-
/** @{
* @name Internal client information (Tox address/id)
*/
@@ -1091,7 +1092,7 @@ void tox_iterate(Tox *tox, void *user_data);
* parameter is NULL, this function has no effect.
* @see TOX_ADDRESS_SIZE for the address format.
*/
-void tox_self_get_address(const Tox *tox, uint8_t *address);
+void tox_self_get_address(const Tox *tox, uint8_t address[TOX_ADDRESS_SIZE]);
/**
* @brief Set the 4-byte nospam part of the address.
@@ -1116,7 +1117,7 @@ uint32_t tox_self_get_nospam(const Tox *tox);
* @param public_key A memory region of at least TOX_PUBLIC_KEY_SIZE bytes. If
* this parameter is NULL, this function has no effect.
*/
-void tox_self_get_public_key(const Tox *tox, uint8_t *public_key);
+void tox_self_get_public_key(const Tox *tox, uint8_t public_key[TOX_PUBLIC_KEY_SIZE]);
/**
* @brief Copy the Tox Secret Key from the Tox object.
@@ -1124,11 +1125,10 @@ void tox_self_get_public_key(const Tox *tox, uint8_t *public_key);
* @param secret_key A memory region of at least TOX_SECRET_KEY_SIZE bytes. If
* this parameter is NULL, this function has no effect.
*/
-void tox_self_get_secret_key(const Tox *tox, uint8_t *secret_key);
+void tox_self_get_secret_key(const Tox *tox, uint8_t secret_key[TOX_SECRET_KEY_SIZE]);
/** @} */
-
/** @{
* @name User-visible client information (nickname/status)
*/
@@ -1156,6 +1156,7 @@ typedef enum Tox_Err_Set_Info {
} Tox_Err_Set_Info;
+const char *tox_err_set_info_to_string(Tox_Err_Set_Info value);
/**
* @brief Set the nickname for the Tox client.
@@ -1168,7 +1169,7 @@ typedef enum Tox_Err_Set_Info {
*
* @return true on success.
*/
-bool tox_self_set_name(Tox *tox, const uint8_t *name, size_t length, Tox_Err_Set_Info *error);
+bool tox_self_set_name(Tox *tox, const uint8_t name[], size_t length, Tox_Err_Set_Info *error);
/**
* @brief Return the length of the current nickname as passed to tox_self_set_name.
@@ -1192,7 +1193,7 @@ size_t tox_self_get_name_size(const Tox *tox);
* @param name A valid memory location large enough to hold the nickname.
* If this parameter is NULL, the function has no effect.
*/
-void tox_self_get_name(const Tox *tox, uint8_t *name);
+void tox_self_get_name(const Tox *tox, uint8_t name[]);
/**
* @brief Set the client's status message.
@@ -1201,7 +1202,8 @@ void tox_self_get_name(const Tox *tox, uint8_t *name);
* length is 0, the status parameter is ignored (it can be NULL), and the
* user status is set back to empty.
*/
-bool tox_self_set_status_message(Tox *tox, const uint8_t *status_message, size_t length, Tox_Err_Set_Info *error);
+bool tox_self_set_status_message(
+ Tox *tox, const uint8_t status_message[], size_t length, Tox_Err_Set_Info *error);
/**
* @brief Return the length of the current status message as passed to tox_self_set_status_message.
@@ -1225,7 +1227,7 @@ size_t tox_self_get_status_message_size(const Tox *tox);
* @param status_message A valid memory location large enough to hold the
* status message. If this parameter is NULL, the function has no effect.
*/
-void tox_self_get_status_message(const Tox *tox, uint8_t *status_message);
+void tox_self_get_status_message(const Tox *tox, uint8_t status_message[]);
/**
* @brief Set the client's user status.
@@ -1241,11 +1243,12 @@ Tox_User_Status tox_self_get_status(const Tox *tox);
/** @} */
-
/** @{
* @name Friend list management
*/
+typedef uint32_t Tox_Friend_Number;
+
typedef enum Tox_Err_Friend_Add {
/**
@@ -1298,6 +1301,7 @@ typedef enum Tox_Err_Friend_Add {
} Tox_Err_Friend_Add;
+const char *tox_err_friend_add_to_string(Tox_Err_Friend_Add value);
/**
* @brief Add a friend to the friend list and send a friend request.
@@ -1322,8 +1326,10 @@ typedef enum Tox_Err_Friend_Add {
*
* @return the friend number on success, an unspecified value on failure.
*/
-uint32_t tox_friend_add(Tox *tox, const uint8_t *address, const uint8_t *message, size_t length,
- Tox_Err_Friend_Add *error);
+Tox_Friend_Number tox_friend_add(
+ Tox *tox, const uint8_t address[TOX_ADDRESS_SIZE],
+ const uint8_t message[], size_t length,
+ Tox_Err_Friend_Add *error);
/**
* @brief Add a friend without sending a friend request.
@@ -1343,7 +1349,8 @@ uint32_t tox_friend_add(Tox *tox, const uint8_t *address, const uint8_t *message
* @return the friend number on success, an unspecified value on failure.
* @see tox_friend_add for a more detailed description of friend numbers.
*/
-uint32_t tox_friend_add_norequest(Tox *tox, const uint8_t *public_key, Tox_Err_Friend_Add *error);
+Tox_Friend_Number tox_friend_add_norequest(
+ Tox *tox, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Friend_Add *error);
typedef enum Tox_Err_Friend_Delete {
@@ -1359,6 +1366,7 @@ typedef enum Tox_Err_Friend_Delete {
} Tox_Err_Friend_Delete;
+const char *tox_err_friend_delete_to_string(Tox_Err_Friend_Delete value);
/**
* @brief Remove a friend from the friend list.
@@ -1371,11 +1379,10 @@ typedef enum Tox_Err_Friend_Delete {
*
* @return true on success.
*/
-bool tox_friend_delete(Tox *tox, uint32_t friend_number, Tox_Err_Friend_Delete *error);
+bool tox_friend_delete(Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Delete *error);
/** @} */
-
/** @{
* @name Friend list queries
*/
@@ -1399,6 +1406,7 @@ typedef enum Tox_Err_Friend_By_Public_Key {
} Tox_Err_Friend_By_Public_Key;
+const char *tox_err_friend_by_public_key_to_string(Tox_Err_Friend_By_Public_Key value);
/**
* @brief Return the friend number associated with that Public Key.
@@ -1406,13 +1414,13 @@ typedef enum Tox_Err_Friend_By_Public_Key {
* @return the friend number on success, an unspecified value on failure.
* @param public_key A byte array containing the Public Key.
*/
-uint32_t tox_friend_by_public_key(const Tox *tox, const uint8_t *public_key, Tox_Err_Friend_By_Public_Key *error);
+Tox_Friend_Number tox_friend_by_public_key(const Tox *tox, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Friend_By_Public_Key *error);
/**
* @brief Checks if a friend with the given friend number exists and returns true if
* it does.
*/
-bool tox_friend_exists(const Tox *tox, uint32_t friend_number);
+bool tox_friend_exists(const Tox *tox, Tox_Friend_Number friend_number);
/**
* @brief Return the number of friends on the friend list.
@@ -1430,7 +1438,7 @@ size_t tox_self_get_friend_list_size(const Tox *tox);
* @param friend_list A memory region with enough space to hold the friend
* list. If this parameter is NULL, this function has no effect.
*/
-void tox_self_get_friend_list(const Tox *tox, uint32_t *friend_list);
+void tox_self_get_friend_list(const Tox *tox, Tox_Friend_Number friend_list[]);
typedef enum Tox_Err_Friend_Get_Public_Key {
@@ -1446,6 +1454,7 @@ typedef enum Tox_Err_Friend_Get_Public_Key {
} Tox_Err_Friend_Get_Public_Key;
+const char *tox_err_friend_get_public_key_to_string(Tox_Err_Friend_Get_Public_Key value);
/**
* @brief Copies the Public Key associated with a given friend number to a byte array.
@@ -1456,8 +1465,9 @@ typedef enum Tox_Err_Friend_Get_Public_Key {
*
* @return true on success.
*/
-bool tox_friend_get_public_key(const Tox *tox, uint32_t friend_number, uint8_t *public_key,
- Tox_Err_Friend_Get_Public_Key *error);
+bool tox_friend_get_public_key(
+ const Tox *tox, Tox_Friend_Number friend_number, uint8_t public_key[TOX_PUBLIC_KEY_SIZE],
+ Tox_Err_Friend_Get_Public_Key *error);
typedef enum Tox_Err_Friend_Get_Last_Online {
@@ -1473,6 +1483,7 @@ typedef enum Tox_Err_Friend_Get_Last_Online {
} Tox_Err_Friend_Get_Last_Online;
+const char *tox_err_friend_get_last_online_to_string(Tox_Err_Friend_Get_Last_Online value);
/**
* @brief Return a unix-time timestamp of the last time the friend associated with a given
@@ -1482,11 +1493,11 @@ typedef enum Tox_Err_Friend_Get_Last_Online {
*
* @param friend_number The friend number you want to query.
*/
-uint64_t tox_friend_get_last_online(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Get_Last_Online *error);
+uint64_t tox_friend_get_last_online(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Get_Last_Online *error);
/** @} */
-
/** @{
* @name Friend-specific state queries (can also be received through callbacks)
*/
@@ -1515,6 +1526,7 @@ typedef enum Tox_Err_Friend_Query {
} Tox_Err_Friend_Query;
+const char *tox_err_friend_query_to_string(Tox_Err_Friend_Query value);
/**
* @brief Return the length of the friend's name.
@@ -1524,7 +1536,8 @@ typedef enum Tox_Err_Friend_Query {
* The return value is equal to the `length` argument received by the last
* `friend_name` callback.
*/
-size_t tox_friend_get_name_size(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Query *error);
+size_t tox_friend_get_name_size(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Query *error);
/**
* @brief Write the name of the friend designated by the given friend number to a byte
@@ -1540,7 +1553,8 @@ size_t tox_friend_get_name_size(const Tox *tox, uint32_t friend_number, Tox_Err_
*
* @return true on success.
*/
-bool tox_friend_get_name(const Tox *tox, uint32_t friend_number, uint8_t *name, Tox_Err_Friend_Query *error);
+bool tox_friend_get_name(
+ const Tox *tox, Tox_Friend_Number friend_number, uint8_t name[], Tox_Err_Friend_Query *error);
/**
* @param friend_number The friend number of the friend whose name changed.
@@ -1549,8 +1563,9 @@ bool tox_friend_get_name(const Tox *tox, uint32_t friend_number, uint8_t *name,
* @param length A value equal to the return value of
* tox_friend_get_name_size.
*/
-typedef void tox_friend_name_cb(Tox *tox, uint32_t friend_number, const uint8_t *name, size_t length, void *user_data);
-
+typedef void tox_friend_name_cb(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t name[], size_t length, void *user_data);
/**
* @brief Set the callback for the `friend_name` event.
@@ -1566,7 +1581,8 @@ void tox_callback_friend_name(Tox *tox, tox_friend_name_cb *callback);
*
* If the friend number isinvalid, the return value is SIZE_MAX.
*/
-size_t tox_friend_get_status_message_size(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Query *error);
+size_t tox_friend_get_status_message_size(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Query *error);
/**
* @brief Write the status message of the friend designated by the given friend number to a byte
@@ -1580,8 +1596,9 @@ size_t tox_friend_get_status_message_size(const Tox *tox, uint32_t friend_number
*
* @param status_message A valid memory region large enough to store the friend's status message.
*/
-bool tox_friend_get_status_message(const Tox *tox, uint32_t friend_number, uint8_t *status_message,
- Tox_Err_Friend_Query *error);
+bool tox_friend_get_status_message(
+ const Tox *tox, Tox_Friend_Number friend_number, uint8_t status_message[],
+ Tox_Err_Friend_Query *error);
/**
* @param friend_number The friend number of the friend whose status message
@@ -1591,9 +1608,9 @@ bool tox_friend_get_status_message(const Tox *tox, uint32_t friend_number, uint8
* @param length A value equal to the return value of
* tox_friend_get_status_message_size.
*/
-typedef void tox_friend_status_message_cb(Tox *tox, uint32_t friend_number, const uint8_t *message, size_t length,
- void *user_data);
-
+typedef void tox_friend_status_message_cb(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t message[], size_t length, void *user_data);
/**
* @brief Set the callback for the `friend_status_message` event.
@@ -1615,15 +1632,16 @@ void tox_callback_friend_status_message(Tox *tox, tox_friend_status_message_cb *
* @deprecated This getter is deprecated. Use the event and store the status
* in the client state.
*/
-Tox_User_Status tox_friend_get_status(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Query *error);
+Tox_User_Status tox_friend_get_status(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Query *error);
/**
* @param friend_number The friend number of the friend whose user status
* changed.
* @param status The new user status.
*/
-typedef void tox_friend_status_cb(Tox *tox, uint32_t friend_number, Tox_User_Status status, void *user_data);
-
+typedef void tox_friend_status_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_User_Status status, void *user_data);
/**
* @brief Set the callback for the `friend_status` event.
@@ -1649,7 +1667,8 @@ void tox_callback_friend_status(Tox *tox, tox_friend_status_cb *callback);
* @deprecated This getter is deprecated. Use the event and store the status
* in the client state.
*/
-Tox_Connection tox_friend_get_connection_status(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Query *error);
+Tox_Connection tox_friend_get_connection_status(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Query *error);
/**
* @param friend_number The friend number of the friend whose connection status
@@ -1657,9 +1676,8 @@ Tox_Connection tox_friend_get_connection_status(const Tox *tox, uint32_t friend_
* @param connection_status The result of calling
* tox_friend_get_connection_status on the passed friend_number.
*/
-typedef void tox_friend_connection_status_cb(Tox *tox, uint32_t friend_number, Tox_Connection connection_status,
- void *user_data);
-
+typedef void tox_friend_connection_status_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Connection connection_status, void *user_data);
/**
* @brief Set the callback for the `friend_connection_status` event.
@@ -1686,7 +1704,8 @@ void tox_callback_friend_connection_status(Tox *tox, tox_friend_connection_statu
* @deprecated This getter is deprecated. Use the event and store the status
* in the client state.
*/
-bool tox_friend_get_typing(const Tox *tox, uint32_t friend_number, Tox_Err_Friend_Query *error);
+bool tox_friend_get_typing(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_Err_Friend_Query *error);
/**
* @param friend_number The friend number of the friend who started or stopped
@@ -1694,8 +1713,8 @@ bool tox_friend_get_typing(const Tox *tox, uint32_t friend_number, Tox_Err_Frien
* @param typing The result of calling tox_friend_get_typing on the passed
* friend_number.
*/
-typedef void tox_friend_typing_cb(Tox *tox, uint32_t friend_number, bool typing, void *user_data);
-
+typedef void tox_friend_typing_cb(
+ Tox *tox, Tox_Friend_Number friend_number, bool typing, void *user_data);
/**
* @brief Set the callback for the `friend_typing` event.
@@ -1708,7 +1727,6 @@ void tox_callback_friend_typing(Tox *tox, tox_friend_typing_cb *callback);
/** @} */
-
/** @{
* @name Sending private messages
*/
@@ -1727,6 +1745,7 @@ typedef enum Tox_Err_Set_Typing {
} Tox_Err_Set_Typing;
+const char *tox_err_set_typing_to_string(Tox_Err_Set_Typing value);
/**
* @brief Set the client's typing status for a friend.
@@ -1738,7 +1757,8 @@ typedef enum Tox_Err_Set_Typing {
*
* @return true on success.
*/
-bool tox_self_set_typing(Tox *tox, uint32_t friend_number, bool typing, Tox_Err_Set_Typing *error);
+bool tox_self_set_typing(
+ Tox *tox, Tox_Friend_Number friend_number, bool typing, Tox_Err_Set_Typing *error);
typedef enum Tox_Err_Friend_Send_Message {
@@ -1779,6 +1799,9 @@ typedef enum Tox_Err_Friend_Send_Message {
} Tox_Err_Friend_Send_Message;
+const char *tox_err_friend_send_message_to_string(Tox_Err_Friend_Send_Message value);
+
+typedef uint32_t Tox_Friend_Message_Id;
/**
* @brief Send a text chat message to an online friend.
@@ -1803,16 +1826,17 @@ typedef enum Tox_Err_Friend_Send_Message {
* containing the message text.
* @param length Length of the message to be sent.
*/
-uint32_t tox_friend_send_message(Tox *tox, uint32_t friend_number, Tox_Message_Type type, const uint8_t *message,
- size_t length, Tox_Err_Friend_Send_Message *error);
+Tox_Friend_Message_Id tox_friend_send_message(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Message_Type type,
+ const uint8_t message[], size_t length, Tox_Err_Friend_Send_Message *error);
/**
* @param friend_number The friend number of the friend who received the message.
* @param message_id The message ID as returned from tox_friend_send_message
* corresponding to the message sent.
*/
-typedef void tox_friend_read_receipt_cb(Tox *tox, uint32_t friend_number, uint32_t message_id, void *user_data);
-
+typedef void tox_friend_read_receipt_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Friend_Message_Id message_id, void *user_data);
/**
* @brief Set the callback for the `friend_read_receipt` event.
@@ -1826,7 +1850,6 @@ void tox_callback_friend_read_receipt(Tox *tox, tox_friend_read_receipt_cb *call
/** @} */
-
/** @{
* @name Receiving private messages and friend requests
*/
@@ -1836,9 +1859,10 @@ void tox_callback_friend_read_receipt(Tox *tox, tox_friend_read_receipt_cb *call
* @param message The message they sent along with the request.
* @param length The size of the message byte array.
*/
-typedef void tox_friend_request_cb(Tox *tox, const uint8_t *public_key, const uint8_t *message, size_t length,
- void *user_data);
-
+typedef void tox_friend_request_cb(
+ Tox *tox, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE],
+ const uint8_t message[], size_t length,
+ void *user_data);
/**
* @brief Set the callback for the `friend_request` event.
@@ -1854,9 +1878,9 @@ void tox_callback_friend_request(Tox *tox, tox_friend_request_cb *callback);
* @param message The message data they sent.
* @param length The size of the message byte array.
*/
-typedef void tox_friend_message_cb(Tox *tox, uint32_t friend_number, Tox_Message_Type type, const uint8_t *message,
- size_t length, void *user_data);
-
+typedef void tox_friend_message_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Message_Type type,
+ const uint8_t message[], size_t length, void *user_data);
/**
* @brief Set the callback for the `friend_message` event.
@@ -1869,11 +1893,12 @@ void tox_callback_friend_message(Tox *tox, tox_friend_message_cb *callback);
/** @} */
-
/** @{
* @name File transmission: common between sending and receiving
*/
+typedef uint32_t Tox_File_Number;
+
/**
* @brief Generates a cryptographic hash of the given data.
*
@@ -1893,7 +1918,7 @@ void tox_callback_friend_message(Tox *tox, tox_friend_message_cb *callback);
*
* @return true if hash was not NULL.
*/
-bool tox_hash(uint8_t *hash, const uint8_t *data, size_t length);
+bool tox_hash(uint8_t hash[TOX_HASH_LENGTH], const uint8_t data[], size_t length);
/**
* @brief A list of pre-defined file kinds.
@@ -1936,7 +1961,6 @@ enum Tox_File_Kind {
};
-
typedef enum Tox_File_Control {
/**
@@ -1961,6 +1985,7 @@ typedef enum Tox_File_Control {
} Tox_File_Control;
+const char *tox_file_control_to_string(Tox_File_Control value);
typedef enum Tox_Err_File_Control {
@@ -2007,6 +2032,7 @@ typedef enum Tox_Err_File_Control {
} Tox_Err_File_Control;
+const char *tox_err_file_control_to_string(Tox_Err_File_Control value);
/**
* @brief Sends a file control command to a friend for a given file transfer.
@@ -2018,8 +2044,9 @@ typedef enum Tox_Err_File_Control {
*
* @return true on success.
*/
-bool tox_file_control(Tox *tox, uint32_t friend_number, uint32_t file_number, Tox_File_Control control,
- Tox_Err_File_Control *error);
+bool tox_file_control(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, Tox_File_Control control,
+ Tox_Err_File_Control *error);
/**
* @brief When receiving TOX_FILE_CONTROL_CANCEL, the client should release the
@@ -2030,9 +2057,9 @@ bool tox_file_control(Tox *tox, uint32_t friend_number, uint32_t file_number, To
* associated with.
* @param control The file control command received.
*/
-typedef void tox_file_recv_control_cb(Tox *tox, uint32_t friend_number, uint32_t file_number, Tox_File_Control control,
- void *user_data);
-
+typedef void tox_file_recv_control_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, Tox_File_Control control,
+ void *user_data);
/**
* @brief Set the callback for the `file_recv_control` event.
@@ -2083,6 +2110,7 @@ typedef enum Tox_Err_File_Seek {
} Tox_Err_File_Seek;
+const char *tox_err_file_seek_to_string(Tox_Err_File_Seek value);
/**
* @brief Sends a file seek control command to a friend for a given file transfer.
@@ -2095,7 +2123,8 @@ typedef enum Tox_Err_File_Seek {
* @param file_number The friend-specific identifier for the file transfer.
* @param position The position that the file should be seeked to.
*/
-bool tox_file_seek(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, Tox_Err_File_Seek *error);
+bool tox_file_seek(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, uint64_t position, Tox_Err_File_Seek *error);
typedef enum Tox_Err_File_Get {
@@ -2121,6 +2150,7 @@ typedef enum Tox_Err_File_Get {
} Tox_Err_File_Get;
+const char *tox_err_file_get_to_string(Tox_Err_File_Get value);
/**
* @brief Copy the file id associated to the file transfer to a byte array.
@@ -2133,12 +2163,13 @@ typedef enum Tox_Err_File_Get {
*
* @return true on success.
*/
-bool tox_file_get_file_id(const Tox *tox, uint32_t friend_number, uint32_t file_number, uint8_t *file_id,
- Tox_Err_File_Get *error);
+bool tox_file_get_file_id(
+ const Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number,
+ uint8_t file_id[TOX_FILE_ID_LENGTH],
+ Tox_Err_File_Get *error);
/** @} */
-
/** @{
* @name File transmission: sending
*/
@@ -2178,6 +2209,7 @@ typedef enum Tox_Err_File_Send {
} Tox_Err_File_Send;
+const char *tox_err_file_send_to_string(Tox_Err_File_Send value);
/**
* @brief Send a file transmission request.
@@ -2237,8 +2269,10 @@ typedef enum Tox_Err_File_Send {
* On failure, this function returns an unspecified value. Any pattern in file numbers
* should not be relied on.
*/
-uint32_t tox_file_send(Tox *tox, uint32_t friend_number, uint32_t kind, uint64_t file_size, const uint8_t *file_id,
- const uint8_t *filename, size_t filename_length, Tox_Err_File_Send *error);
+Tox_File_Number tox_file_send(
+ Tox *tox, Tox_Friend_Number friend_number, uint32_t kind, uint64_t file_size,
+ const uint8_t file_id[TOX_FILE_ID_LENGTH], const uint8_t filename[], size_t filename_length,
+ Tox_Err_File_Send *error);
typedef enum Tox_Err_File_Send_Chunk {
@@ -2292,6 +2326,7 @@ typedef enum Tox_Err_File_Send_Chunk {
} Tox_Err_File_Send_Chunk;
+const char *tox_err_file_send_chunk_to_string(Tox_Err_File_Send_Chunk value);
/**
* @brief Send a chunk of file data to a friend.
@@ -2309,8 +2344,9 @@ typedef enum Tox_Err_File_Send_Chunk {
* @param position The file or stream position from which to continue reading.
* @return true on success.
*/
-bool tox_file_send_chunk(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position, const uint8_t *data,
- size_t length, Tox_Err_File_Send_Chunk *error);
+bool tox_file_send_chunk(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, uint64_t position,
+ const uint8_t data[], size_t length, Tox_Err_File_Send_Chunk *error);
/**
* If the length parameter is 0, the file transfer is finished, and the client's
@@ -2334,9 +2370,9 @@ bool tox_file_send_chunk(Tox *tox, uint32_t friend_number, uint32_t file_number,
* @param position The file or stream position from which to continue reading.
* @param length The number of bytes requested for the current chunk.
*/
-typedef void tox_file_chunk_request_cb(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position,
- size_t length, void *user_data);
-
+typedef void tox_file_chunk_request_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, uint64_t position,
+ size_t length, void *user_data);
/**
* @brief Set the callback for the `file_chunk_request` event.
@@ -2349,7 +2385,6 @@ void tox_callback_file_chunk_request(Tox *tox, tox_file_chunk_request_cb *callba
/** @} */
-
/** @{
* @name File transmission: receiving
*/
@@ -2372,9 +2407,9 @@ void tox_callback_file_chunk_request(Tox *tox, tox_file_chunk_request_cb *callba
* name will be sent along with the file send request.
* @param filename_length Size in bytes of the filename.
*/
-typedef void tox_file_recv_cb(Tox *tox, uint32_t friend_number, uint32_t file_number, uint32_t kind, uint64_t file_size,
- const uint8_t *filename, size_t filename_length, void *user_data);
-
+typedef void tox_file_recv_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, uint32_t kind, uint64_t file_size,
+ const uint8_t filename[], size_t filename_length, void *user_data);
/**
* @brief Set the callback for the `file_recv` event.
@@ -2401,9 +2436,9 @@ void tox_callback_file_recv(Tox *tox, tox_file_recv_cb *callback);
* @param data A byte array containing the received chunk.
* @param length The length of the received chunk.
*/
-typedef void tox_file_recv_chunk_cb(Tox *tox, uint32_t friend_number, uint32_t file_number, uint64_t position,
- const uint8_t *data, size_t length, void *user_data);
-
+typedef void tox_file_recv_chunk_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_File_Number file_number, uint64_t position,
+ const uint8_t data[], size_t length, void *user_data);
/**
* @brief Set the callback for the `file_recv_chunk` event.
@@ -2417,11 +2452,13 @@ void tox_callback_file_recv_chunk(Tox *tox, tox_file_recv_chunk_cb *callback);
/** @} */
-
/** @{
* @name Conference management
*/
+typedef uint32_t Tox_Conference_Number;
+typedef uint32_t Tox_Conference_Peer_Number;
+
/**
* @brief Conference types for the conference_invite event.
*/
@@ -2439,6 +2476,7 @@ typedef enum Tox_Conference_Type {
} Tox_Conference_Type;
+const char *tox_conference_type_to_string(Tox_Conference_Type value);
/**
* The invitation will remain valid until the inviting friend goes offline
@@ -2450,9 +2488,9 @@ typedef enum Tox_Conference_Type {
* conference.
* @param length The length of the cookie.
*/
-typedef void tox_conference_invite_cb(Tox *tox, uint32_t friend_number, Tox_Conference_Type type, const uint8_t *cookie,
- size_t length, void *user_data);
-
+typedef void tox_conference_invite_cb(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Conference_Type type,
+ const uint8_t cookie[], size_t length, void *user_data);
/**
* @brief Set the callback for the `conference_invite` event.
@@ -2466,8 +2504,7 @@ void tox_callback_conference_invite(Tox *tox, tox_conference_invite_cb *callback
/**
* @param conference_number The conference number of the conference to which we have connected.
*/
-typedef void tox_conference_connected_cb(Tox *tox, uint32_t conference_number, void *user_data);
-
+typedef void tox_conference_connected_cb(Tox *tox, Tox_Conference_Number conference_number, void *user_data);
/**
* @brief Set the callback for the `conference_connected` event.
@@ -2487,9 +2524,9 @@ void tox_callback_conference_connected(Tox *tox, tox_conference_connected_cb *ca
* @param message The message data.
* @param length The length of the message.
*/
-typedef void tox_conference_message_cb(Tox *tox, uint32_t conference_number, uint32_t peer_number,
- Tox_Message_Type type, const uint8_t *message, size_t length, void *user_data);
-
+typedef void tox_conference_message_cb(
+ Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ Tox_Message_Type type, const uint8_t message[], size_t length, void *user_data);
/**
* @brief Set the callback for the `conference_message` event.
@@ -2507,9 +2544,9 @@ void tox_callback_conference_message(Tox *tox, tox_conference_message_cb *callba
* @param title The title data.
* @param length The title length.
*/
-typedef void tox_conference_title_cb(Tox *tox, uint32_t conference_number, uint32_t peer_number, const uint8_t *title,
- size_t length, void *user_data);
-
+typedef void tox_conference_title_cb(
+ Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ const uint8_t title[], size_t length, void *user_data);
/**
* @brief Set the callback for the `conference_title` event.
@@ -2529,9 +2566,9 @@ void tox_callback_conference_title(Tox *tox, tox_conference_title_cb *callback);
* @param name A byte array containing the new nickname.
* @param length The size of the name byte array.
*/
-typedef void tox_conference_peer_name_cb(Tox *tox, uint32_t conference_number, uint32_t peer_number,
- const uint8_t *name, size_t length, void *user_data);
-
+typedef void tox_conference_peer_name_cb(
+ Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ const uint8_t name[], size_t length, void *user_data);
/**
* @brief Set the callback for the `conference_peer_name` event.
@@ -2546,8 +2583,7 @@ void tox_callback_conference_peer_name(Tox *tox, tox_conference_peer_name_cb *ca
* @param conference_number The conference number of the conference the
* peer is in.
*/
-typedef void tox_conference_peer_list_changed_cb(Tox *tox, uint32_t conference_number, void *user_data);
-
+typedef void tox_conference_peer_list_changed_cb(Tox *tox, Tox_Conference_Number conference_number, void *user_data);
/**
* @brief Set the callback for the `conference_peer_list_changed` event.
@@ -2572,6 +2608,7 @@ typedef enum Tox_Err_Conference_New {
} Tox_Err_Conference_New;
+const char *tox_err_conference_new_to_string(Tox_Err_Conference_New value);
/**
* @brief Creates a new conference.
@@ -2582,7 +2619,7 @@ typedef enum Tox_Err_Conference_New {
* - conference number on success
* - an unspecified value on failure
*/
-uint32_t tox_conference_new(Tox *tox, Tox_Err_Conference_New *error);
+Tox_Conference_Number tox_conference_new(Tox *tox, Tox_Err_Conference_New *error);
typedef enum Tox_Err_Conference_Delete {
@@ -2598,6 +2635,7 @@ typedef enum Tox_Err_Conference_Delete {
} Tox_Err_Conference_Delete;
+const char *tox_err_conference_delete_to_string(Tox_Err_Conference_Delete value);
/**
* @brief This function deletes a conference.
@@ -2606,7 +2644,7 @@ typedef enum Tox_Err_Conference_Delete {
*
* @return true on success.
*/
-bool tox_conference_delete(Tox *tox, uint32_t conference_number, Tox_Err_Conference_Delete *error);
+bool tox_conference_delete(Tox *tox, Tox_Conference_Number conference_number, Tox_Err_Conference_Delete *error);
/**
* @brief Error codes for peer info queries.
@@ -2635,6 +2673,7 @@ typedef enum Tox_Err_Conference_Peer_Query {
} Tox_Err_Conference_Peer_Query;
+const char *tox_err_conference_peer_query_to_string(Tox_Err_Conference_Peer_Query value);
/**
* @brief Return the number of online peers in the conference.
@@ -2643,15 +2682,17 @@ typedef enum Tox_Err_Conference_Peer_Query {
* peer_number for the functions querying these peers. Return value is
* unspecified on failure.
*/
-uint32_t tox_conference_peer_count(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Peer_Query *error);
+Tox_Conference_Peer_Number tox_conference_peer_count(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Err_Conference_Peer_Query *error);
/**
* @brief Return the length of the peer's name.
*
* Return value is unspecified on failure.
*/
-size_t tox_conference_peer_get_name_size(const Tox *tox, uint32_t conference_number, uint32_t peer_number,
- Tox_Err_Conference_Peer_Query *error);
+size_t tox_conference_peer_get_name_size(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ Tox_Err_Conference_Peer_Query *error);
/**
* @brief Copy the name of peer_number who is in conference_number to name.
@@ -2662,8 +2703,9 @@ size_t tox_conference_peer_get_name_size(const Tox *tox, uint32_t conference_num
*
* @return true on success.
*/
-bool tox_conference_peer_get_name(const Tox *tox, uint32_t conference_number, uint32_t peer_number, uint8_t *name,
- Tox_Err_Conference_Peer_Query *error);
+bool tox_conference_peer_get_name(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ uint8_t name[], Tox_Err_Conference_Peer_Query *error);
/**
* @brief Copy the public key of peer_number who is in conference_number to public_key.
@@ -2672,14 +2714,16 @@ bool tox_conference_peer_get_name(const Tox *tox, uint32_t conference_number, ui
*
* @return true on success.
*/
-bool tox_conference_peer_get_public_key(const Tox *tox, uint32_t conference_number, uint32_t peer_number,
- uint8_t *public_key, Tox_Err_Conference_Peer_Query *error);
+bool tox_conference_peer_get_public_key(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Conference_Peer_Query *error);
/**
* @brief Return true if passed peer_number corresponds to our own.
*/
-bool tox_conference_peer_number_is_ours(const Tox *tox, uint32_t conference_number, uint32_t peer_number,
- Tox_Err_Conference_Peer_Query *error);
+bool tox_conference_peer_number_is_ours(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number peer_number,
+ Tox_Err_Conference_Peer_Query *error);
/**
* @brief Return the number of offline peers in the conference.
@@ -2689,16 +2733,18 @@ bool tox_conference_peer_number_is_ours(const Tox *tox, uint32_t conference_numb
*
* Return value is unspecified on failure.
*/
-uint32_t tox_conference_offline_peer_count(const Tox *tox, uint32_t conference_number,
- Tox_Err_Conference_Peer_Query *error);
+uint32_t tox_conference_offline_peer_count(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ Tox_Err_Conference_Peer_Query *error);
/**
* @brief Return the length of the offline peer's name.
*
* Return value is unspecified on failure.
*/
-size_t tox_conference_offline_peer_get_name_size(const Tox *tox, uint32_t conference_number,
- uint32_t offline_peer_number, Tox_Err_Conference_Peer_Query *error);
+size_t tox_conference_offline_peer_get_name_size(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ Tox_Conference_Peer_Number offline_peer_number, Tox_Err_Conference_Peer_Query *error);
/**
* @brief Copy the name of offline_peer_number who is in conference_number to name.
@@ -2710,8 +2756,9 @@ size_t tox_conference_offline_peer_get_name_size(const Tox *tox, uint32_t confer
*
* @return true on success.
*/
-bool tox_conference_offline_peer_get_name(const Tox *tox, uint32_t conference_number, uint32_t offline_peer_number,
- uint8_t *name, Tox_Err_Conference_Peer_Query *error);
+bool tox_conference_offline_peer_get_name(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Conference_Peer_Number offline_peer_number,
+ uint8_t name[], Tox_Err_Conference_Peer_Query *error);
/**
* @brief Copy the public key of offline_peer_number who is in conference_number to public_key.
@@ -2720,14 +2767,16 @@ bool tox_conference_offline_peer_get_name(const Tox *tox, uint32_t conference_nu
*
* @return true on success.
*/
-bool tox_conference_offline_peer_get_public_key(const Tox *tox, uint32_t conference_number,
- uint32_t offline_peer_number, uint8_t *public_key, Tox_Err_Conference_Peer_Query *error);
+bool tox_conference_offline_peer_get_public_key(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ Tox_Conference_Peer_Number offline_peer_number, uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Conference_Peer_Query *error);
/**
* @brief Return a unix-time timestamp of the last time offline_peer_number was seen to be active.
*/
-uint64_t tox_conference_offline_peer_get_last_active(const Tox *tox, uint32_t conference_number,
- uint32_t offline_peer_number, Tox_Err_Conference_Peer_Query *error);
+uint64_t tox_conference_offline_peer_get_last_active(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ Tox_Conference_Peer_Number offline_peer_number, Tox_Err_Conference_Peer_Query *error);
typedef enum Tox_Err_Conference_Set_Max_Offline {
@@ -2743,12 +2792,14 @@ typedef enum Tox_Err_Conference_Set_Max_Offline {
} Tox_Err_Conference_Set_Max_Offline;
+const char *tox_err_conference_set_max_offline_to_string(Tox_Err_Conference_Set_Max_Offline value);
/**
* @brief Set maximum number of offline peers to store, overriding the default.
*/
-bool tox_conference_set_max_offline(Tox *tox, uint32_t conference_number, uint32_t max_offline_peers,
- Tox_Err_Conference_Set_Max_Offline *error);
+bool tox_conference_set_max_offline(
+ Tox *tox, Tox_Conference_Number conference_number, uint32_t max_offline,
+ Tox_Err_Conference_Set_Max_Offline *error);
typedef enum Tox_Err_Conference_Invite {
@@ -2774,6 +2825,7 @@ typedef enum Tox_Err_Conference_Invite {
} Tox_Err_Conference_Invite;
+const char *tox_err_conference_invite_to_string(Tox_Err_Conference_Invite value);
/**
* @brief Invites a friend to a conference.
@@ -2783,8 +2835,9 @@ typedef enum Tox_Err_Conference_Invite {
*
* @return true on success.
*/
-bool tox_conference_invite(Tox *tox, uint32_t friend_number, uint32_t conference_number,
- Tox_Err_Conference_Invite *error);
+bool tox_conference_invite(
+ Tox *tox, Tox_Friend_Number friend_number, Tox_Conference_Number conference_number,
+ Tox_Err_Conference_Invite *error);
typedef enum Tox_Err_Conference_Join {
@@ -2825,6 +2878,7 @@ typedef enum Tox_Err_Conference_Join {
} Tox_Err_Conference_Join;
+const char *tox_err_conference_join_to_string(Tox_Err_Conference_Join value);
/**
* @brief Joins a conference that the client has been invited to.
@@ -2843,8 +2897,10 @@ typedef enum Tox_Err_Conference_Join {
*
* @return conference number on success, an unspecified value on failure.
*/
-uint32_t tox_conference_join(Tox *tox, uint32_t friend_number, const uint8_t *cookie, size_t length,
- Tox_Err_Conference_Join *error);
+Tox_Conference_Number tox_conference_join(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t cookie[], size_t length,
+ Tox_Err_Conference_Join *error);
typedef enum Tox_Err_Conference_Send_Message {
@@ -2875,6 +2931,7 @@ typedef enum Tox_Err_Conference_Send_Message {
} Tox_Err_Conference_Send_Message;
+const char *tox_err_conference_send_message_to_string(Tox_Err_Conference_Send_Message value);
/**
* @brief Send a text chat message to the conference.
@@ -2895,8 +2952,10 @@ typedef enum Tox_Err_Conference_Send_Message {
*
* @return true on success.
*/
-bool tox_conference_send_message(Tox *tox, uint32_t conference_number, Tox_Message_Type type, const uint8_t *message,
- size_t length, Tox_Err_Conference_Send_Message *error);
+bool tox_conference_send_message(
+ Tox *tox, Tox_Conference_Number conference_number, Tox_Message_Type type,
+ const uint8_t message[], size_t length,
+ Tox_Err_Conference_Send_Message *error);
typedef enum Tox_Err_Conference_Title {
@@ -2922,6 +2981,7 @@ typedef enum Tox_Err_Conference_Title {
} Tox_Err_Conference_Title;
+const char *tox_err_conference_title_to_string(Tox_Err_Conference_Title value);
/**
* @brief Return the length of the conference title.
@@ -2931,7 +2991,8 @@ typedef enum Tox_Err_Conference_Title {
* The return value is equal to the `length` argument received by the last
* `conference_title` callback.
*/
-size_t tox_conference_get_title_size(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Title *error);
+size_t tox_conference_get_title_size(
+ const Tox *tox, Tox_Conference_Number conference_number, Tox_Err_Conference_Title *error);
/**
* @brief Write the title designated by the given conference number to a byte array.
@@ -2946,8 +3007,10 @@ size_t tox_conference_get_title_size(const Tox *tox, uint32_t conference_number,
*
* @return true on success.
*/
-bool tox_conference_get_title(const Tox *tox, uint32_t conference_number, uint8_t *title,
- Tox_Err_Conference_Title *error);
+bool tox_conference_get_title(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ uint8_t title[],
+ Tox_Err_Conference_Title *error);
/**
* @brief Set the conference title and broadcast it to the rest of the conference.
@@ -2956,8 +3019,10 @@ bool tox_conference_get_title(const Tox *tox, uint32_t conference_number, uint8_
*
* @return true on success.
*/
-bool tox_conference_set_title(Tox *tox, uint32_t conference_number, const uint8_t *title, size_t length,
- Tox_Err_Conference_Title *error);
+bool tox_conference_set_title(
+ Tox *tox, Tox_Conference_Number conference_number,
+ const uint8_t title[], size_t length,
+ Tox_Err_Conference_Title *error);
/**
* @brief Return the number of conferences in the Tox instance.
@@ -2980,7 +3045,7 @@ size_t tox_conference_get_chatlist_size(const Tox *tox);
* The conference number of a loaded conference may differ from the conference
* number it had when it was saved.
*/
-void tox_conference_get_chatlist(const Tox *tox, uint32_t *chatlist);
+void tox_conference_get_chatlist(const Tox *tox, Tox_Conference_Number chatlist[]);
/**
* @brief Returns the type of conference (Tox_Conference_Type) that conference_number is.
@@ -3001,12 +3066,14 @@ typedef enum Tox_Err_Conference_Get_Type {
} Tox_Err_Conference_Get_Type;
+const char *tox_err_conference_get_type_to_string(Tox_Err_Conference_Get_Type value);
/**
* @brief Get the type (text or A/V) for the conference.
*/
-Tox_Conference_Type tox_conference_get_type(const Tox *tox, uint32_t conference_number,
- Tox_Err_Conference_Get_Type *error);
+Tox_Conference_Type tox_conference_get_type(
+ const Tox *tox, Tox_Conference_Number conference_number,
+ Tox_Err_Conference_Get_Type *error);
/**
* @brief Get the conference unique ID.
@@ -3017,7 +3084,8 @@ Tox_Conference_Type tox_conference_get_type(const Tox *tox, uint32_t conference_
*
* @return true on success.
*/
-bool tox_conference_get_id(const Tox *tox, uint32_t conference_number, uint8_t *id);
+bool tox_conference_get_id(
+ const Tox *tox, Tox_Conference_Number conference_number, uint8_t id[TOX_CONFERENCE_ID_SIZE]);
typedef enum Tox_Err_Conference_By_Id {
@@ -3038,6 +3106,7 @@ typedef enum Tox_Err_Conference_By_Id {
} Tox_Err_Conference_By_Id;
+const char *tox_err_conference_by_id_to_string(Tox_Err_Conference_By_Id value);
/**
* @brief Return the conference number associated with the specified id.
@@ -3046,7 +3115,8 @@ typedef enum Tox_Err_Conference_By_Id {
*
* @return the conference number on success, an unspecified value on failure.
*/
-uint32_t tox_conference_by_id(const Tox *tox, const uint8_t *id, Tox_Err_Conference_By_Id *error);
+Tox_Conference_Number tox_conference_by_id(
+ const Tox *tox, const uint8_t id[TOX_CONFERENCE_ID_SIZE], Tox_Err_Conference_By_Id *error);
/**
* @brief Get the conference unique ID.
@@ -3058,7 +3128,8 @@ uint32_t tox_conference_by_id(const Tox *tox, const uint8_t *id, Tox_Err_Confere
* @return true on success.
* @deprecated use tox_conference_get_id instead (exactly the same function, just renamed).
*/
-bool tox_conference_get_uid(const Tox *tox, uint32_t conference_number, uint8_t *uid);
+bool tox_conference_get_uid(
+ const Tox *tox, Tox_Conference_Number conference_number, uint8_t uid[TOX_CONFERENCE_UID_SIZE]);
typedef enum Tox_Err_Conference_By_Uid {
@@ -3079,6 +3150,7 @@ typedef enum Tox_Err_Conference_By_Uid {
} Tox_Err_Conference_By_Uid;
+const char *tox_err_conference_by_uid_to_string(Tox_Err_Conference_By_Uid value);
/**
* @brief Return the conference number associated with the specified uid.
@@ -3088,11 +3160,11 @@ typedef enum Tox_Err_Conference_By_Uid {
* @return the conference number on success, an unspecified value on failure.
* @deprecated use tox_conference_by_id instead (exactly the same function, just renamed).
*/
-uint32_t tox_conference_by_uid(const Tox *tox, const uint8_t *uid, Tox_Err_Conference_By_Uid *error);
+Tox_Conference_Number tox_conference_by_uid(
+ const Tox *tox, const uint8_t uid[TOX_CONFERENCE_UID_SIZE], Tox_Err_Conference_By_Uid *error);
/** @} */
-
/** @{
* @name Low-level custom packet sending and receiving
*/
@@ -3142,6 +3214,7 @@ typedef enum Tox_Err_Friend_Custom_Packet {
} Tox_Err_Friend_Custom_Packet;
+const char *tox_err_friend_custom_packet_to_string(Tox_Err_Friend_Custom_Packet value);
/**
* @brief Send a custom lossy packet to a friend.
@@ -3163,8 +3236,10 @@ typedef enum Tox_Err_Friend_Custom_Packet {
*
* @return true on success.
*/
-bool tox_friend_send_lossy_packet(Tox *tox, uint32_t friend_number, const uint8_t *data, size_t length,
- Tox_Err_Friend_Custom_Packet *error);
+bool tox_friend_send_lossy_packet(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t data[], size_t length,
+ Tox_Err_Friend_Custom_Packet *error);
/**
* @brief Send a custom lossless packet to a friend.
@@ -3182,17 +3257,20 @@ bool tox_friend_send_lossy_packet(Tox *tox, uint32_t friend_number, const uint8_
*
* @return true on success.
*/
-bool tox_friend_send_lossless_packet(Tox *tox, uint32_t friend_number, const uint8_t *data, size_t length,
- Tox_Err_Friend_Custom_Packet *error);
+bool tox_friend_send_lossless_packet(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t data[], size_t length,
+ Tox_Err_Friend_Custom_Packet *error);
/**
* @param friend_number The friend number of the friend who sent a lossy packet.
* @param data A byte array containing the received packet data.
* @param length The length of the packet data byte array.
*/
-typedef void tox_friend_lossy_packet_cb(Tox *tox, uint32_t friend_number, const uint8_t *data, size_t length,
- void *user_data);
-
+typedef void tox_friend_lossy_packet_cb(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t data[], size_t length,
+ void *user_data);
/**
* @brief Set the callback for the `friend_lossy_packet` event.
@@ -3206,9 +3284,10 @@ void tox_callback_friend_lossy_packet(Tox *tox, tox_friend_lossy_packet_cb *call
* @param data A byte array containing the received packet data.
* @param length The length of the packet data byte array.
*/
-typedef void tox_friend_lossless_packet_cb(Tox *tox, uint32_t friend_number, const uint8_t *data, size_t length,
- void *user_data);
-
+typedef void tox_friend_lossless_packet_cb(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t data[], size_t length,
+ void *user_data);
/**
* @brief Set the callback for the `friend_lossless_packet` event.
@@ -3219,7 +3298,6 @@ void tox_callback_friend_lossless_packet(Tox *tox, tox_friend_lossless_packet_cb
/** @} */
-
/** @{
* @name Low-level network information
*/
@@ -3238,6 +3316,7 @@ typedef enum Tox_Err_Get_Port {
} Tox_Err_Get_Port;
+const char *tox_err_get_port_to_string(Tox_Err_Get_Port value);
/**
* @brief Writes the temporary DHT public key of this instance to a byte array.
@@ -3251,7 +3330,7 @@ typedef enum Tox_Err_Get_Port {
* @param dht_id A memory region of at least TOX_PUBLIC_KEY_SIZE bytes. If this
* parameter is NULL, this function has no effect.
*/
-void tox_self_get_dht_id(const Tox *tox, uint8_t *dht_id);
+void tox_self_get_dht_id(const Tox *tox, uint8_t dht_id[TOX_PUBLIC_KEY_SIZE]);
/**
* @brief Return the UDP port this Tox instance is bound to.
@@ -3267,14 +3346,13 @@ uint16_t tox_self_get_tcp_port(const Tox *tox, Tox_Err_Get_Port *error);
/** @} */
-/*******************************************************************************
- *
- * :: Group chats
- *
- ******************************************************************************/
-
-
+/** @{
+ * @name Group chats
+ */
+typedef uint32_t Tox_Group_Number;
+typedef uint32_t Tox_Group_Peer_Number;
+typedef uint32_t Tox_Group_Message_Id;
/*******************************************************************************
*
@@ -3282,9 +3360,7 @@ uint16_t tox_self_get_tcp_port(const Tox *tox, Tox_Err_Get_Port *error);
*
******************************************************************************/
-
-
-/** @{
+/**
* Maximum length of a group topic.
*/
#define TOX_GROUP_MAX_TOPIC_LENGTH 512
@@ -3308,7 +3384,7 @@ uint32_t tox_group_max_message_length(void);
/**
* Maximum length of a group custom lossy packet.
*/
-#define TOX_GROUP_MAX_CUSTOM_LOSSY_PACKET_LENGTH 500
+#define TOX_GROUP_MAX_CUSTOM_LOSSY_PACKET_LENGTH 1373
uint32_t tox_group_max_custom_lossy_packet_length(void);
@@ -3347,15 +3423,12 @@ uint32_t tox_group_chat_id_size(void);
uint32_t tox_group_peer_public_key_size(void);
-
/*******************************************************************************
*
* :: Group chat state enumerators
*
******************************************************************************/
-
-
/**
* Represents the group privacy state.
*/
@@ -3383,6 +3456,7 @@ typedef enum Tox_Group_Privacy_State {
} Tox_Group_Privacy_State;
+const char *tox_group_privacy_state_to_string(Tox_Group_Privacy_State value);
/**
* Represents the state of the group topic lock.
@@ -3401,6 +3475,8 @@ typedef enum Tox_Group_Topic_Lock {
} Tox_Group_Topic_Lock;
+const char *tox_group_topic_lock_to_string(Tox_Group_Topic_Lock value);
+
/**
* Represents the group voice state, which determines which Group Roles have permission to speak
* in the group chat. The voice state does not have any effect private messages or topic setting.
@@ -3422,6 +3498,8 @@ typedef enum Tox_Group_Voice_State {
TOX_GROUP_VOICE_STATE_FOUNDER,
} Tox_Group_Voice_State;
+const char *tox_group_voice_state_to_string(Tox_Group_Voice_State value);
+
/**
* Represents group roles.
*
@@ -3454,7 +3532,7 @@ typedef enum Tox_Group_Role {
} Tox_Group_Role;
-
+const char *tox_group_role_to_string(Tox_Group_Role value);
/*******************************************************************************
*
@@ -3462,8 +3540,6 @@ typedef enum Tox_Group_Role {
*
******************************************************************************/
-
-
typedef enum Tox_Err_Group_New {
/**
@@ -3499,6 +3575,7 @@ typedef enum Tox_Err_Group_New {
} Tox_Err_Group_New;
+const char *tox_err_group_new_to_string(Tox_Err_Group_New value);
/**
* Creates a new group chat.
@@ -3522,8 +3599,10 @@ typedef enum Tox_Err_Group_New {
*
* @return group_number on success, UINT32_MAX on failure.
*/
-uint32_t tox_group_new(Tox *tox, Tox_Group_Privacy_State privacy_state, const uint8_t *group_name,
- size_t group_name_length, const uint8_t *name, size_t name_length, Tox_Err_Group_New *error);
+Tox_Group_Number tox_group_new(
+ Tox *tox, Tox_Group_Privacy_State privacy_state,
+ const uint8_t group_name[], size_t group_name_length,
+ const uint8_t name[], size_t name_length, Tox_Err_Group_New *error);
typedef enum Tox_Err_Group_Join {
@@ -3565,6 +3644,7 @@ typedef enum Tox_Err_Group_Join {
} Tox_Err_Group_Join;
+const char *tox_err_group_join_to_string(Tox_Err_Group_Join value);
/**
* Joins a group chat with specified Chat ID.
@@ -3583,8 +3663,11 @@ typedef enum Tox_Err_Group_Join {
*
* @return group_number on success, UINT32_MAX on failure.
*/
-uint32_t tox_group_join(Tox *tox, const uint8_t *chat_id, const uint8_t *name, size_t name_length,
- const uint8_t *password, size_t password_length, Tox_Err_Group_Join *error);
+Tox_Group_Number tox_group_join(
+ Tox *tox, const uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE],
+ const uint8_t name[], size_t name_length,
+ const uint8_t password[], size_t password_length,
+ Tox_Err_Group_Join *error);
typedef enum Tox_Err_Group_Is_Connected {
@@ -3600,6 +3683,7 @@ typedef enum Tox_Err_Group_Is_Connected {
} Tox_Err_Group_Is_Connected;
+const char *tox_err_group_is_connected_to_string(Tox_Err_Group_Is_Connected value);
/**
* Returns true if the group chat is currently connected or attempting to connect to other peers
@@ -3607,7 +3691,7 @@ typedef enum Tox_Err_Group_Is_Connected {
*
* @param group_number The group number of the designated group.
*/
-bool tox_group_is_connected(const Tox *tox, uint32_t group_number, Tox_Err_Group_Is_Connected *error);
+bool tox_group_is_connected(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Is_Connected *error);
typedef enum Tox_Err_Group_Disconnect {
@@ -3627,6 +3711,7 @@ typedef enum Tox_Err_Group_Disconnect {
TOX_ERR_GROUP_DISCONNECT_ALREADY_DISCONNECTED,
} Tox_Err_Group_Disconnect;
+const char *tox_err_group_disconnect_to_string(Tox_Err_Group_Disconnect value);
/**
* Disconnects from a group chat while retaining the group state and credentials.
@@ -3635,7 +3720,7 @@ typedef enum Tox_Err_Group_Disconnect {
*
* @param group_number The group number of the designated group.
*/
-bool tox_group_disconnect(const Tox *tox, uint32_t group_number, Tox_Err_Group_Disconnect *error);
+bool tox_group_disconnect(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Disconnect *error);
typedef enum Tox_Err_Group_Reconnect {
@@ -3656,6 +3741,7 @@ typedef enum Tox_Err_Group_Reconnect {
} Tox_Err_Group_Reconnect;
+const char *tox_err_group_reconnect_to_string(Tox_Err_Group_Reconnect value);
/**
* Reconnects to a group.
@@ -3667,7 +3753,7 @@ typedef enum Tox_Err_Group_Reconnect {
*
* @return true on success.
*/
-bool tox_group_reconnect(Tox *tox, uint32_t group_number, Tox_Err_Group_Reconnect *error);
+bool tox_group_reconnect(Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Reconnect *error);
typedef enum Tox_Err_Group_Leave {
@@ -3692,6 +3778,7 @@ typedef enum Tox_Err_Group_Leave {
TOX_ERR_GROUP_LEAVE_FAIL_SEND,
} Tox_Err_Group_Leave;
+const char *tox_err_group_leave_to_string(Tox_Err_Group_Leave value);
/**
* Leaves a group.
@@ -3707,9 +3794,10 @@ typedef enum Tox_Err_Group_Leave {
*
* @return true if the group chat instance is successfully deleted.
*/
-bool tox_group_leave(Tox *tox, uint32_t group_number, const uint8_t *part_message, size_t length,
- Tox_Err_Group_Leave *error);
-
+bool tox_group_leave(
+ Tox *tox, Tox_Group_Number group_number,
+ const uint8_t part_message[], size_t length,
+ Tox_Err_Group_Leave *error);
/*******************************************************************************
*
@@ -3717,8 +3805,6 @@ bool tox_group_leave(Tox *tox, uint32_t group_number, const uint8_t *part_messag
*
******************************************************************************/
-
-
/**
* General error codes for self state get and size functions.
*/
@@ -3736,6 +3822,7 @@ typedef enum Tox_Err_Group_Self_Query {
} Tox_Err_Group_Self_Query;
+const char *tox_err_group_self_query_to_string(Tox_Err_Group_Self_Query value);
/**
* Error codes for self name setting.
@@ -3769,6 +3856,7 @@ typedef enum Tox_Err_Group_Self_Name_Set {
} Tox_Err_Group_Self_Name_Set;
+const char *tox_err_group_self_name_set_to_string(Tox_Err_Group_Self_Name_Set value);
/**
* Set the client's nickname for the group instance designated by the given group number.
@@ -3781,8 +3869,10 @@ typedef enum Tox_Err_Group_Self_Name_Set {
*
* @return true on success.
*/
-bool tox_group_self_set_name(const Tox *tox, uint32_t group_number, const uint8_t *name, size_t length,
- Tox_Err_Group_Self_Name_Set *error);
+bool tox_group_self_set_name(
+ Tox *tox, Tox_Group_Number group_number,
+ const uint8_t name[], size_t length,
+ Tox_Err_Group_Self_Name_Set *error);
/**
* Return the length of the client's current nickname for the group instance designated
@@ -3793,7 +3883,7 @@ bool tox_group_self_set_name(const Tox *tox, uint32_t group_number, const uint8_
*
* @see threading for concurrency implications.
*/
-size_t tox_group_self_get_name_size(const Tox *tox, uint32_t group_number, Tox_Err_Group_Self_Query *error);
+size_t tox_group_self_get_name_size(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Self_Query *error);
/**
* Write the nickname set by tox_group_self_set_name to a byte array.
@@ -3808,7 +3898,9 @@ size_t tox_group_self_get_name_size(const Tox *tox, uint32_t group_number, Tox_E
*
* @return true on success.
*/
-bool tox_group_self_get_name(const Tox *tox, uint32_t group_number, uint8_t *name, Tox_Err_Group_Self_Query *error);
+bool tox_group_self_get_name(
+ const Tox *tox, Tox_Group_Number group_number,
+ uint8_t name[], Tox_Err_Group_Self_Query *error);
/**
* Error codes for self status setting.
@@ -3832,32 +3924,33 @@ typedef enum Tox_Err_Group_Self_Status_Set {
} Tox_Err_Group_Self_Status_Set;
+const char *tox_err_group_self_status_set_to_string(Tox_Err_Group_Self_Status_Set value);
/**
* Set the client's status for the group instance. Status must be a Tox_User_Status.
*
* @return true on success.
*/
-bool tox_group_self_set_status(const Tox *tox, uint32_t group_number, Tox_User_Status status,
+bool tox_group_self_set_status(Tox *tox, Tox_Group_Number group_number, Tox_User_Status status,
Tox_Err_Group_Self_Status_Set *error);
/**
* returns the client's status for the group instance on success.
* return value is unspecified on failure.
*/
-Tox_User_Status tox_group_self_get_status(const Tox *tox, uint32_t group_number, Tox_Err_Group_Self_Query *error);
+Tox_User_Status tox_group_self_get_status(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Self_Query *error);
/**
* returns the client's role for the group instance on success.
* return value is unspecified on failure.
*/
-Tox_Group_Role tox_group_self_get_role(const Tox *tox, uint32_t group_number, Tox_Err_Group_Self_Query *error);
+Tox_Group_Role tox_group_self_get_role(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Self_Query *error);
/**
* returns the client's peer id for the group instance on success.
* return value is unspecified on failure.
*/
-uint32_t tox_group_self_get_peer_id(const Tox *tox, uint32_t group_number, Tox_Err_Group_Self_Query *error);
+Tox_Group_Peer_Number tox_group_self_get_peer_id(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_Self_Query *error);
/**
* Write the client's group public key designated by the given group number to a byte array.
@@ -3873,18 +3966,15 @@ uint32_t tox_group_self_get_peer_id(const Tox *tox, uint32_t group_number, Tox_E
*
* @return true on success.
*/
-bool tox_group_self_get_public_key(const Tox *tox, uint32_t group_number, uint8_t *public_key,
+bool tox_group_self_get_public_key(const Tox *tox, Tox_Group_Number group_number, uint8_t public_key[TOX_PUBLIC_KEY_SIZE],
Tox_Err_Group_Self_Query *error);
-
/*******************************************************************************
*
* :: Peer-specific group state queries.
*
******************************************************************************/
-
-
/**
* Error codes for peer info queries.
*/
@@ -3907,6 +3997,7 @@ typedef enum Tox_Err_Group_Peer_Query {
} Tox_Err_Group_Peer_Query;
+const char *tox_err_group_peer_query_to_string(Tox_Err_Group_Peer_Query value);
/**
* Return the length of the peer's name. If the group number or ID is invalid, the
@@ -3918,7 +4009,7 @@ typedef enum Tox_Err_Group_Peer_Query {
* The return value is equal to the `length` argument received by the last
* `group_peer_name` callback.
*/
-size_t tox_group_peer_get_name_size(const Tox *tox, uint32_t group_number, uint32_t peer_id,
+size_t tox_group_peer_get_name_size(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
Tox_Err_Group_Peer_Query *error);
/**
@@ -3936,8 +4027,9 @@ size_t tox_group_peer_get_name_size(const Tox *tox, uint32_t group_number, uint3
*
* @return true on success.
*/
-bool tox_group_peer_get_name(const Tox *tox, uint32_t group_number, uint32_t peer_id, uint8_t *name,
- Tox_Err_Group_Peer_Query *error);
+bool tox_group_peer_get_name(
+ const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ uint8_t name[], Tox_Err_Group_Peer_Query *error);
/**
* Return the peer's user status (away/busy/...). If the ID or group number is
@@ -3949,7 +4041,7 @@ bool tox_group_peer_get_name(const Tox *tox, uint32_t group_number, uint32_t pee
* The status returned is equal to the last status received through the
* `group_peer_status` callback.
*/
-Tox_User_Status tox_group_peer_get_status(const Tox *tox, uint32_t group_number, uint32_t peer_id,
+Tox_User_Status tox_group_peer_get_status(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
Tox_Err_Group_Peer_Query *error);
/**
@@ -3962,18 +4054,19 @@ Tox_User_Status tox_group_peer_get_status(const Tox *tox, uint32_t group_number,
* The role returned is equal to the last role received through the
* `group_moderation` callback.
*/
-Tox_Group_Role tox_group_peer_get_role(const Tox *tox, uint32_t group_number, uint32_t peer_id,
+Tox_Group_Role tox_group_peer_get_role(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
Tox_Err_Group_Peer_Query *error);
/**
* Return the type of connection we have established with a peer.
*
- * This function will return an error if called on ourselves.
+ * If `peer_id` designates ourself, the return value indicates whether we're capable
+ * of making UDP connections with other peers, or are limited to TCP connections.
*
* @param group_number The group number of the group we wish to query.
* @param peer_id The ID of the peer whose connection status we wish to query.
*/
-Tox_Connection tox_group_peer_get_connection_status(const Tox *tox, uint32_t group_number, uint32_t peer_id,
+Tox_Connection tox_group_peer_get_connection_status(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
Tox_Err_Group_Peer_Query *error);
/**
@@ -3992,8 +4085,9 @@ Tox_Connection tox_group_peer_get_connection_status(const Tox *tox, uint32_t gro
*
* @return true on success.
*/
-bool tox_group_peer_get_public_key(const Tox *tox, uint32_t group_number, uint32_t peer_id, uint8_t *public_key,
- Tox_Err_Group_Peer_Query *error);
+bool tox_group_peer_get_public_key(
+ const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ uint8_t public_key[TOX_PUBLIC_KEY_SIZE], Tox_Err_Group_Peer_Query *error);
/**
* @param group_number The group number of the group the name change is intended for.
@@ -4001,9 +4095,9 @@ bool tox_group_peer_get_public_key(const Tox *tox, uint32_t group_number, uint32
* @param name The name data.
* @param length The length of the name.
*/
-typedef void tox_group_peer_name_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *name,
- size_t length, void *user_data);
-
+typedef void tox_group_peer_name_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ const uint8_t name[], size_t length, void *user_data);
/**
* Set the callback for the `group_peer_name` event. Pass NULL to unset.
@@ -4017,10 +4111,9 @@ void tox_callback_group_peer_name(Tox *tox, tox_group_peer_name_cb *callback);
* @param peer_id The ID of the peer who has changed their status.
* @param status The new status of the peer.
*/
-typedef void tox_group_peer_status_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_User_Status status,
+typedef void tox_group_peer_status_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_User_Status status,
void *user_data);
-
/**
* Set the callback for the `group_peer_status` event. Pass NULL to unset.
*
@@ -4028,15 +4121,12 @@ typedef void tox_group_peer_status_cb(Tox *tox, uint32_t group_number, uint32_t
*/
void tox_callback_group_peer_status(Tox *tox, tox_group_peer_status_cb *callback);
-
/*******************************************************************************
*
* :: Group chat state queries and events.
*
******************************************************************************/
-
-
/**
* General error codes for group state get and size functions.
*/
@@ -4054,6 +4144,7 @@ typedef enum Tox_Err_Group_State_Queries {
} Tox_Err_Group_State_Queries;
+const char *tox_err_group_state_queries_to_string(Tox_Err_Group_State_Queries value);
/**
* Error codes for group topic setting.
@@ -4097,6 +4188,7 @@ typedef enum Tox_Err_Group_Topic_Set {
} Tox_Err_Group_Topic_Set;
+const char *tox_err_group_topic_set_to_string(Tox_Err_Group_Topic_Set value);
/**
* Set the group topic and broadcast it to the rest of the group.
@@ -4106,8 +4198,10 @@ typedef enum Tox_Err_Group_Topic_Set {
*
* @return true on success.
*/
-bool tox_group_set_topic(const Tox *tox, uint32_t group_number, const uint8_t *topic, size_t length,
- Tox_Err_Group_Topic_Set *error);
+bool tox_group_set_topic(
+ Tox *tox, Tox_Group_Number group_number,
+ const uint8_t topic[], size_t length,
+ Tox_Err_Group_Topic_Set *error);
/**
* Return the length of the group topic. If the group number is invalid, the
@@ -4116,7 +4210,7 @@ bool tox_group_set_topic(const Tox *tox, uint32_t group_number, const uint8_t *t
* The return value is equal to the `length` argument received by the last
* `group_topic` callback.
*/
-size_t tox_group_get_topic_size(const Tox *tox, uint32_t group_number, Tox_Err_Group_State_Queries *error);
+size_t tox_group_get_topic_size(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_State_Queries *error);
/**
* Write the topic designated by the given group number to a byte array.
@@ -4131,7 +4225,9 @@ size_t tox_group_get_topic_size(const Tox *tox, uint32_t group_number, Tox_Err_G
*
* @return true on success.
*/
-bool tox_group_get_topic(const Tox *tox, uint32_t group_number, uint8_t *topic, Tox_Err_Group_State_Queries *error);
+bool tox_group_get_topic(
+ const Tox *tox, Tox_Group_Number group_number,
+ uint8_t topic[], Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group the topic change is intended for.
@@ -4140,9 +4236,10 @@ bool tox_group_get_topic(const Tox *tox, uint32_t group_number, uint8_t *topic,
* @param topic The topic data.
* @param length The topic length.
*/
-typedef void tox_group_topic_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *topic, size_t length,
- void *user_data);
-
+typedef void tox_group_topic_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ const uint8_t topic[], size_t length,
+ void *user_data);
/**
* Set the callback for the `group_topic` event. Pass NULL to unset.
@@ -4155,19 +4252,21 @@ void tox_callback_group_topic(Tox *tox, tox_group_topic_cb *callback);
* Return the length of the group name. If the group number is invalid, the
* return value is unspecified.
*/
-size_t tox_group_get_name_size(const Tox *tox, uint32_t group_number, Tox_Err_Group_State_Queries *error);
+size_t tox_group_get_name_size(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_State_Queries *error);
/**
* Write the name of the group designated by the given group number to a byte array.
*
* Call tox_group_get_name_size to determine the allocation size for the `name` parameter.
*
- * @param group_name A valid memory region large enough to store the group name.
+ * @param name A valid memory region large enough to store the group name.
* If this parameter is NULL, this function call has no effect.
*
* @return true on success.
*/
-bool tox_group_get_name(const Tox *tox, uint32_t group_number, uint8_t *group_name, Tox_Err_Group_State_Queries *error);
+bool tox_group_get_name(
+ const Tox *tox, Tox_Group_Number group_number,
+ uint8_t name[], Tox_Err_Group_State_Queries *error);
/**
* Write the Chat ID designated by the given group number to a byte array.
@@ -4179,7 +4278,9 @@ bool tox_group_get_name(const Tox *tox, uint32_t group_number, uint8_t *group_na
*
* @return true on success.
*/
-bool tox_group_get_chat_id(const Tox *tox, uint32_t group_number, uint8_t *chat_id, Tox_Err_Group_State_Queries *error);
+bool tox_group_get_chat_id(
+ const Tox *tox, Tox_Group_Number group_number, uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE],
+ Tox_Err_Group_State_Queries *error);
/**
* Return the number of groups in the Tox chats array.
@@ -4195,17 +4296,16 @@ uint32_t tox_group_get_number_groups(const Tox *tox);
*
* @see the `Group chat founder controls` section for the respective set function.
*/
-Tox_Group_Privacy_State tox_group_get_privacy_state(const Tox *tox, uint32_t group_number,
+Tox_Group_Privacy_State tox_group_get_privacy_state(const Tox *tox, Tox_Group_Number group_number,
Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group the privacy state is intended for.
* @param privacy_state The new privacy state.
*/
-typedef void tox_group_privacy_state_cb(Tox *tox, uint32_t group_number, Tox_Group_Privacy_State privacy_state,
+typedef void tox_group_privacy_state_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Privacy_State privacy_state,
void *user_data);
-
/**
* Set the callback for the `group_privacy_state` event. Pass NULL to unset.
*
@@ -4221,17 +4321,16 @@ void tox_callback_group_privacy_state(Tox *tox, tox_group_privacy_state_cb *call
*
* @see the `Group chat founder controls` section for the respective set function.
*/
-Tox_Group_Voice_State tox_group_get_voice_state(const Tox *tox, uint32_t group_number,
+Tox_Group_Voice_State tox_group_get_voice_state(const Tox *tox, Tox_Group_Number group_number,
Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group the voice state change is intended for.
* @param voice_state The new voice state.
*/
-typedef void tox_group_voice_state_cb(Tox *tox, uint32_t group_number, Tox_Group_Voice_State voice_state,
+typedef void tox_group_voice_state_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Voice_State voice_state,
void *user_data);
-
/**
* Set the callback for the `group_privacy_state` event. Pass NULL to unset.
*
@@ -4248,16 +4347,14 @@ void tox_callback_group_voice_state(Tox *tox, tox_group_voice_state_cb *callback
*
* @see the `Group chat founder contols` section for the respective set function.
*/
-Tox_Group_Topic_Lock tox_group_get_topic_lock(const Tox *tox, uint32_t group_number,
+Tox_Group_Topic_Lock tox_group_get_topic_lock(const Tox *tox, Tox_Group_Number group_number,
Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group for which the topic lock has changed.
* @param topic_lock The new topic lock state.
*/
-typedef void tox_group_topic_lock_cb(Tox *tox, uint32_t group_number, Tox_Group_Topic_Lock topic_lock, void *user_data);
-
-
+typedef void tox_group_topic_lock_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Topic_Lock topic_lock, void *user_data);
/**
* Set the callback for the `group_topic_lock` event. Pass NULL to unset.
@@ -4275,14 +4372,13 @@ void tox_callback_group_topic_lock(Tox *tox, tox_group_topic_lock_cb *callback);
*
* @see the `Group chat founder controls` section for the respective set function.
*/
-uint16_t tox_group_get_peer_limit(const Tox *tox, uint32_t group_number, Tox_Err_Group_State_Queries *error);
+uint16_t tox_group_get_peer_limit(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group for which the peer limit has changed.
* @param peer_limit The new peer limit for the group.
*/
-typedef void tox_group_peer_limit_cb(Tox *tox, uint32_t group_number, uint32_t peer_limit, void *user_data);
-
+typedef void tox_group_peer_limit_cb(Tox *tox, Tox_Group_Number group_number, uint32_t peer_limit, void *user_data);
/**
* Set the callback for the `group_peer_limit` event. Pass NULL to unset.
@@ -4295,7 +4391,7 @@ void tox_callback_group_peer_limit(Tox *tox, tox_group_peer_limit_cb *callback);
* Return the length of the group password. If the group number is invalid, the
* return value is unspecified.
*/
-size_t tox_group_get_password_size(const Tox *tox, uint32_t group_number, Tox_Err_Group_State_Queries *error);
+size_t tox_group_get_password_size(const Tox *tox, Tox_Group_Number group_number, Tox_Err_Group_State_Queries *error);
/**
* Write the password for the group designated by the given group number to a byte array.
@@ -4312,17 +4408,19 @@ size_t tox_group_get_password_size(const Tox *tox, uint32_t group_number, Tox_Er
*
* @return true on success.
*/
-bool tox_group_get_password(const Tox *tox, uint32_t group_number, uint8_t *password,
- Tox_Err_Group_State_Queries *error);
+bool tox_group_get_password(
+ const Tox *tox, Tox_Group_Number group_number, uint8_t password[],
+ Tox_Err_Group_State_Queries *error);
/**
* @param group_number The group number of the group for which the password has changed.
* @param password The new group password.
* @param length The length of the password.
*/
-typedef void tox_group_password_cb(Tox *tox, uint32_t group_number, const uint8_t *password, size_t length,
- void *user_data);
-
+typedef void tox_group_password_cb(
+ Tox *tox, Tox_Group_Number group_number,
+ const uint8_t password[], size_t length,
+ void *user_data);
/**
* Set the callback for the `group_password` event. Pass NULL to unset.
@@ -4331,15 +4429,12 @@ typedef void tox_group_password_cb(Tox *tox, uint32_t group_number, const uint8_
*/
void tox_callback_group_password(Tox *tox, tox_group_password_cb *callback);
-
/*******************************************************************************
*
* :: Group chat message sending
*
******************************************************************************/
-
-
typedef enum Tox_Err_Group_Send_Message {
/**
@@ -4384,6 +4479,7 @@ typedef enum Tox_Err_Group_Send_Message {
} Tox_Err_Group_Send_Message;
+const char *tox_err_group_send_message_to_string(Tox_Err_Group_Send_Message value);
/**
* Send a text chat message to the group.
@@ -4400,14 +4496,14 @@ typedef enum Tox_Err_Group_Send_Message {
* @param message A non-NULL pointer to the first element of a byte array
* containing the message text.
* @param length Length of the message to be sent.
- * @param message_id A pointer to a uint32_t. The message_id of this message will be returned
- * unless the parameter is NULL, in which case the returned parameter value will be undefined.
- * If this function returns false the returned parameter `message_id` value will also be undefined.
*
- * @return true on success.
+ * @return The message_id of this message. If this function has an error, the
+ * returned message ID value will be undefined.
*/
-bool tox_group_send_message(const Tox *tox, uint32_t group_number, Tox_Message_Type type, const uint8_t *message,
- size_t length, uint32_t *message_id, Tox_Err_Group_Send_Message *error);
+Tox_Group_Message_Id tox_group_send_message(
+ const Tox *tox, Tox_Group_Number group_number, Tox_Message_Type type,
+ const uint8_t message[], size_t length,
+ Tox_Err_Group_Send_Message *error);
typedef enum Tox_Err_Group_Send_Private_Message {
@@ -4458,6 +4554,7 @@ typedef enum Tox_Err_Group_Send_Private_Message {
} Tox_Err_Group_Send_Private_Message;
+const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Private_Message value);
/**
* Send a text chat message to the specified peer in the specified group.
@@ -4477,8 +4574,10 @@ typedef enum Tox_Err_Group_Send_Private_Message {
*
* @return true on success.
*/
-bool tox_group_send_private_message(const Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type,
- const uint8_t *message, size_t length, Tox_Err_Group_Send_Private_Message *error);
+bool tox_group_send_private_message(
+ const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type,
+ const uint8_t message[], size_t length,
+ Tox_Err_Group_Send_Private_Message *error);
typedef enum Tox_Err_Group_Send_Custom_Packet {
@@ -4514,8 +4613,15 @@ typedef enum Tox_Err_Group_Send_Custom_Packet {
*/
TOX_ERR_GROUP_SEND_CUSTOM_PACKET_DISCONNECTED,
+ /**
+ * The packet did not successfully send to any peer. This often indicates
+ * a connection issue on the sender's side.
+ */
+ TOX_ERR_GROUP_SEND_CUSTOM_PACKET_FAIL_SEND,
+
} Tox_Err_Group_Send_Custom_Packet;
+const char *tox_err_group_send_custom_packet_to_string(Tox_Err_Group_Send_Custom_Packet value);
/**
* Send a custom packet to the group.
@@ -4541,10 +4647,10 @@ typedef enum Tox_Err_Group_Send_Custom_Packet {
*
* @return true on success.
*/
-bool tox_group_send_custom_packet(const Tox *tox, uint32_t group_number, bool lossless, const uint8_t *data,
- size_t length,
- Tox_Err_Group_Send_Custom_Packet *error);
-
+bool tox_group_send_custom_packet(
+ const Tox *tox, Tox_Group_Number group_number, bool lossless,
+ const uint8_t data[], size_t length,
+ Tox_Err_Group_Send_Custom_Packet *error);
typedef enum Tox_Err_Group_Send_Custom_Private_Packet {
@@ -4592,6 +4698,8 @@ typedef enum Tox_Err_Group_Send_Custom_Private_Packet {
} Tox_Err_Group_Send_Custom_Private_Packet;
+const char *tox_err_group_send_custom_private_packet_to_string(Tox_Err_Group_Send_Custom_Private_Packet value);
+
/**
* Send a custom private packet to a designated peer in the group.
*
@@ -4617,19 +4725,16 @@ typedef enum Tox_Err_Group_Send_Custom_Private_Packet {
*
* @return true on success.
*/
-bool tox_group_send_custom_private_packet(const Tox *tox, uint32_t group_number, uint32_t peer_id, bool lossless,
- const uint8_t *data, size_t length,
+bool tox_group_send_custom_private_packet(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, bool lossless,
+ const uint8_t data[], size_t length,
Tox_Err_Group_Send_Custom_Private_Packet *error);
-
/*******************************************************************************
*
* :: Group chat message receiving
*
******************************************************************************/
-
-
/**
* @param group_number The group number of the group the message is intended for.
* @param peer_id The ID of the peer who sent the message.
@@ -4638,9 +4743,9 @@ bool tox_group_send_custom_private_packet(const Tox *tox, uint32_t group_number,
* @param message_id A pseudo message id that clients can use to uniquely identify this group message.
* @param length The length of the message.
*/
-typedef void tox_group_message_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type,
- const uint8_t *message, size_t length, uint32_t message_id, void *user_data);
-
+typedef void tox_group_message_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type,
+ const uint8_t message[], size_t length, Tox_Group_Message_Id message_id, void *user_data);
/**
* Set the callback for the `group_message` event. Pass NULL to unset.
@@ -4655,9 +4760,9 @@ void tox_callback_group_message(Tox *tox, tox_group_message_cb *callback);
* @param message The message data.
* @param length The length of the message.
*/
-typedef void tox_group_private_message_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type,
- const uint8_t *message, size_t length, void *user_data);
-
+typedef void tox_group_private_message_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type,
+ const uint8_t message[], size_t length, void *user_data);
/**
* Set the callback for the `group_private_message` event. Pass NULL to unset.
@@ -4672,9 +4777,9 @@ void tox_callback_group_private_message(Tox *tox, tox_group_private_message_cb *
* @param data The packet data.
* @param length The length of the data.
*/
-typedef void tox_group_custom_packet_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data,
- size_t length, void *user_data);
-
+typedef void tox_group_custom_packet_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ const uint8_t data[], size_t length, void *user_data);
/**
* Set the callback for the `group_custom_packet` event. Pass NULL to unset.
@@ -4689,9 +4794,9 @@ void tox_callback_group_custom_packet(Tox *tox, tox_group_custom_packet_cb *call
* @param data The packet data.
* @param length The length of the data.
*/
-typedef void tox_group_custom_private_packet_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data,
- size_t length, void *user_data);
-
+typedef void tox_group_custom_private_packet_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
+ const uint8_t data[], size_t length, void *user_data);
/**
* Set the callback for the `group_custom_private_packet` event. Pass NULL to unset.
@@ -4700,15 +4805,12 @@ typedef void tox_group_custom_private_packet_cb(Tox *tox, uint32_t group_number,
*/
void tox_callback_group_custom_private_packet(Tox *tox, tox_group_custom_private_packet_cb *callback);
-
/*******************************************************************************
*
* :: Group chat inviting and join/part events
*
******************************************************************************/
-
-
typedef enum Tox_Err_Group_Invite_Friend {
/**
@@ -4743,6 +4845,7 @@ typedef enum Tox_Err_Group_Invite_Friend {
} Tox_Err_Group_Invite_Friend;
+const char *tox_err_group_invite_friend_to_string(Tox_Err_Group_Invite_Friend value);
/**
* Invite a friend to a group.
@@ -4754,8 +4857,9 @@ typedef enum Tox_Err_Group_Invite_Friend {
*
* @return true on success.
*/
-bool tox_group_invite_friend(const Tox *tox, uint32_t group_number, uint32_t friend_number,
- Tox_Err_Group_Invite_Friend *error);
+bool tox_group_invite_friend(
+ const Tox *tox, Tox_Group_Number group_number, Tox_Friend_Number friend_number,
+ Tox_Err_Group_Invite_Friend *error);
typedef enum Tox_Err_Group_Invite_Accept {
@@ -4801,6 +4905,7 @@ typedef enum Tox_Err_Group_Invite_Accept {
} Tox_Err_Group_Invite_Accept;
+const char *tox_err_group_invite_accept_to_string(Tox_Err_Group_Invite_Accept value);
/**
* Accept an invite to a group chat that the client previously received from a friend. The invite
@@ -4817,18 +4922,23 @@ typedef enum Tox_Err_Group_Invite_Accept {
*
* @return the group_number on success, UINT32_MAX on failure.
*/
-uint32_t tox_group_invite_accept(Tox *tox, uint32_t friend_number, const uint8_t *invite_data, size_t length,
- const uint8_t *name, size_t name_length, const uint8_t *password, size_t password_length,
- Tox_Err_Group_Invite_Accept *error);
+Tox_Group_Number tox_group_invite_accept(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t invite_data[], size_t length,
+ const uint8_t name[], size_t name_length,
+ const uint8_t password[], size_t password_length,
+ Tox_Err_Group_Invite_Accept *error);
/**
* @param friend_number The friend number of the contact who sent the invite.
* @param invite_data The invite data.
* @param length The length of invite_data.
*/
-typedef void tox_group_invite_cb(Tox *tox, uint32_t friend_number, const uint8_t *invite_data, size_t length,
- const uint8_t *group_name, size_t group_name_length, void *user_data);
-
+typedef void tox_group_invite_cb(
+ Tox *tox, Tox_Friend_Number friend_number,
+ const uint8_t invite_data[], size_t length,
+ const uint8_t group_name[], size_t group_name_length,
+ void *user_data);
/**
* Set the callback for the `group_invite` event. Pass NULL to unset.
@@ -4843,8 +4953,7 @@ void tox_callback_group_invite(Tox *tox, tox_group_invite_cb *callback);
* @param peer_id The permanent ID of the new peer. This id should not be relied on for
* client behaviour and should be treated as a random value.
*/
-typedef void tox_group_peer_join_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, void *user_data);
-
+typedef void tox_group_peer_join_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, void *user_data);
/**
* Set the callback for the `group_peer_join` event. Pass NULL to unset.
@@ -4891,6 +5000,7 @@ typedef enum Tox_Group_Exit_Type {
} Tox_Group_Exit_Type;
+const char *tox_group_exit_type_to_string(Tox_Group_Exit_Type value);
/**
* @param group_number The group number of the group in which a peer has left.
@@ -4902,9 +5012,10 @@ typedef enum Tox_Group_Exit_Type {
* @param part_message The parting message data.
* @param part_message_length The length of the parting message.
*/
-typedef void tox_group_peer_exit_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Group_Exit_Type exit_type,
- const uint8_t *name, size_t name_length, const uint8_t *part_message, size_t part_message_length, void *user_data);
-
+typedef void tox_group_peer_exit_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Group_Exit_Type exit_type,
+ const uint8_t name[], size_t name_length,
+ const uint8_t part_message[], size_t part_message_length, void *user_data);
/**
* Set the callback for the `group_peer_exit` event. Pass NULL to unset.
@@ -4916,8 +5027,7 @@ void tox_callback_group_peer_exit(Tox *tox, tox_group_peer_exit_cb *callback);
/**
* @param group_number The group number of the group that the client has joined.
*/
-typedef void tox_group_self_join_cb(Tox *tox, uint32_t group_number, void *user_data);
-
+typedef void tox_group_self_join_cb(Tox *tox, Tox_Group_Number group_number, void *user_data);
/**
* Set the callback for the `group_self_join` event. Pass NULL to unset.
@@ -4951,13 +5061,13 @@ typedef enum Tox_Group_Join_Fail {
} Tox_Group_Join_Fail;
+const char *tox_group_join_fail_to_string(Tox_Group_Join_Fail value);
/**
* @param group_number The group number of the group for which the join has failed.
* @param fail_type The type of group rejection.
*/
-typedef void tox_group_join_fail_cb(Tox *tox, uint32_t group_number, Tox_Group_Join_Fail fail_type, void *user_data);
-
+typedef void tox_group_join_fail_cb(Tox *tox, Tox_Group_Number group_number, Tox_Group_Join_Fail fail_type, void *user_data);
/**
* Set the callback for the `group_join_fail` event. Pass NULL to unset.
@@ -4966,15 +5076,12 @@ typedef void tox_group_join_fail_cb(Tox *tox, uint32_t group_number, Tox_Group_J
*/
void tox_callback_group_join_fail(Tox *tox, tox_group_join_fail_cb *callback);
-
/*******************************************************************************
*
* :: Group chat founder controls (these only work for the group founder)
*
******************************************************************************/
-
-
typedef enum Tox_Err_Group_Founder_Set_Password {
/**
@@ -5014,6 +5121,7 @@ typedef enum Tox_Err_Group_Founder_Set_Password {
} Tox_Err_Group_Founder_Set_Password;
+const char *tox_err_group_founder_set_password_to_string(Tox_Err_Group_Founder_Set_Password value);
/**
* Set or unset the group password.
@@ -5027,8 +5135,10 @@ typedef enum Tox_Err_Group_Founder_Set_Password {
*
* @return true on success.
*/
-bool tox_group_founder_set_password(const Tox *tox, uint32_t group_number, const uint8_t *password, size_t length,
- Tox_Err_Group_Founder_Set_Password *error);
+bool tox_group_founder_set_password(
+ Tox *tox, Tox_Group_Number group_number,
+ const uint8_t password[], size_t length,
+ Tox_Err_Group_Founder_Set_Password *error);
typedef enum Tox_Err_Group_Founder_Set_Topic_Lock {
@@ -5070,6 +5180,7 @@ typedef enum Tox_Err_Group_Founder_Set_Topic_Lock {
} Tox_Err_Group_Founder_Set_Topic_Lock;
+const char *tox_err_group_founder_set_topic_lock_to_string(Tox_Err_Group_Founder_Set_Topic_Lock value);
/**
* Set the group topic lock state.
@@ -5085,7 +5196,7 @@ typedef enum Tox_Err_Group_Founder_Set_Topic_Lock {
*
* @return true on success.
*/
-bool tox_group_founder_set_topic_lock(const Tox *tox, uint32_t group_number, Tox_Group_Topic_Lock topic_lock,
+bool tox_group_founder_set_topic_lock(Tox *tox, Tox_Group_Number group_number, Tox_Group_Topic_Lock topic_lock,
Tox_Err_Group_Founder_Set_Topic_Lock *error);
typedef enum Tox_Err_Group_Founder_Set_Voice_State {
@@ -5123,6 +5234,8 @@ typedef enum Tox_Err_Group_Founder_Set_Voice_State {
} Tox_Err_Group_Founder_Set_Voice_State;
+const char *tox_err_group_founder_set_voice_state_to_string(Tox_Err_Group_Founder_Set_Voice_State value);
+
/**
* Set the group voice state.
*
@@ -5137,7 +5250,7 @@ typedef enum Tox_Err_Group_Founder_Set_Voice_State {
*
* @return true on success.
*/
-bool tox_group_founder_set_voice_state(const Tox *tox, uint32_t group_number, Tox_Group_Voice_State voice_state,
+bool tox_group_founder_set_voice_state(Tox *tox, Tox_Group_Number group_number, Tox_Group_Voice_State voice_state,
Tox_Err_Group_Founder_Set_Voice_State *error);
typedef enum Tox_Err_Group_Founder_Set_Privacy_State {
@@ -5175,6 +5288,8 @@ typedef enum Tox_Err_Group_Founder_Set_Privacy_State {
} Tox_Err_Group_Founder_Set_Privacy_State;
+const char *tox_err_group_founder_set_privacy_state_to_string(Tox_Err_Group_Founder_Set_Privacy_State value);
+
/**
* Set the group privacy state.
*
@@ -5189,7 +5304,7 @@ typedef enum Tox_Err_Group_Founder_Set_Privacy_State {
*
* @return true on success.
*/
-bool tox_group_founder_set_privacy_state(const Tox *tox, uint32_t group_number, Tox_Group_Privacy_State privacy_state,
+bool tox_group_founder_set_privacy_state(Tox *tox, Tox_Group_Number group_number, Tox_Group_Privacy_State privacy_state,
Tox_Err_Group_Founder_Set_Privacy_State *error);
typedef enum Tox_Err_Group_Founder_Set_Peer_Limit {
@@ -5227,6 +5342,7 @@ typedef enum Tox_Err_Group_Founder_Set_Peer_Limit {
} Tox_Err_Group_Founder_Set_Peer_Limit;
+const char *tox_err_group_founder_set_peer_limit_to_string(Tox_Err_Group_Founder_Set_Peer_Limit value);
/**
* Set the group peer limit.
@@ -5235,22 +5351,19 @@ typedef enum Tox_Err_Group_Founder_Set_Peer_Limit {
* group shared state including the change, and distributes it to the rest of the group.
*
* @param group_number The group number of the group for which we wish to set the peer limit.
- * @param max_peers The maximum number of peers to allow in the group.
+ * @param peer_limit The maximum number of peers to allow in the group.
*
* @return true on success.
*/
-bool tox_group_founder_set_peer_limit(const Tox *tox, uint32_t group_number, uint16_t max_peers,
+bool tox_group_founder_set_peer_limit(Tox *tox, Tox_Group_Number group_number, uint16_t peer_limit,
Tox_Err_Group_Founder_Set_Peer_Limit *error);
-
/*******************************************************************************
*
* :: Group chat moderation
*
******************************************************************************/
-
-
typedef enum Tox_Err_Group_Set_Ignore {
/**
@@ -5275,6 +5388,7 @@ typedef enum Tox_Err_Group_Set_Ignore {
} Tox_Err_Group_Set_Ignore;
+const char *tox_err_group_set_ignore_to_string(Tox_Err_Group_Set_Ignore value);
/**
* Ignore or unignore a peer.
@@ -5285,7 +5399,7 @@ typedef enum Tox_Err_Group_Set_Ignore {
*
* @return true on success.
*/
-bool tox_group_set_ignore(const Tox *tox, uint32_t group_number, uint32_t peer_id, bool ignore,
+bool tox_group_set_ignore(Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, bool ignore,
Tox_Err_Group_Set_Ignore *error);
typedef enum Tox_Err_Group_Mod_Set_Role {
@@ -5329,6 +5443,7 @@ typedef enum Tox_Err_Group_Mod_Set_Role {
} Tox_Err_Group_Mod_Set_Role;
+const char *tox_err_group_mod_set_role_to_string(Tox_Err_Group_Mod_Set_Role value);
/**
* Set a peer's role.
@@ -5343,7 +5458,7 @@ typedef enum Tox_Err_Group_Mod_Set_Role {
*
* @return true on success.
*/
-bool tox_group_mod_set_role(const Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Group_Role role,
+bool tox_group_mod_set_role(Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Group_Role role,
Tox_Err_Group_Mod_Set_Role *error);
typedef enum Tox_Err_Group_Mod_Kick_Peer {
@@ -5385,6 +5500,7 @@ typedef enum Tox_Err_Group_Mod_Kick_Peer {
} Tox_Err_Group_Mod_Kick_Peer;
+const char *tox_err_group_mod_kick_peer_to_string(Tox_Err_Group_Mod_Kick_Peer value);
/**
* Kick a peer.
@@ -5398,7 +5514,7 @@ typedef enum Tox_Err_Group_Mod_Kick_Peer {
*
* @return true on success.
*/
-bool tox_group_mod_kick_peer(const Tox *tox, uint32_t group_number, uint32_t peer_id,
+bool tox_group_mod_kick_peer(const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id,
Tox_Err_Group_Mod_Kick_Peer *error);
/**
@@ -5428,6 +5544,7 @@ typedef enum Tox_Group_Mod_Event {
} Tox_Group_Mod_Event;
+const char *tox_group_mod_event_to_string(Tox_Group_Mod_Event value);
/**
* @param group_number The group number of the group the event is intended for.
@@ -5435,9 +5552,9 @@ typedef enum Tox_Group_Mod_Event {
* @param target_peer_id The ID of the peer who is the target of the event.
* @param mod_type The type of event.
*/
-typedef void tox_group_moderation_cb(Tox *tox, uint32_t group_number, uint32_t source_peer_id, uint32_t target_peer_id,
- Tox_Group_Mod_Event mod_type, void *user_data);
-
+typedef void tox_group_moderation_cb(
+ Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number source_peer_id, Tox_Group_Peer_Number target_peer_id,
+ Tox_Group_Mod_Event mod_type, void *user_data);
/**
* Set the callback for the `group_moderation` event. Pass NULL to unset.
@@ -5456,7 +5573,7 @@ void tox_callback_group_moderation(Tox *tox, tox_group_moderation_cb *callback);
/** @} */
#ifdef __cplusplus
-}
+} /* extern "C" */
#endif
//!TOKSTYLE-
@@ -5505,4 +5622,4 @@ typedef enum Tox_File_Kind TOX_FILE_KIND;
#endif
//!TOKSTYLE+
-#endif // C_TOXCORE_TOXCORE_TOX_H
+#endif /* C_TOXCORE_TOXCORE_TOX_H */