23 #ifndef __MRMAILBOX_H__ 24 #define __MRMAILBOX_H__ 30 #define MR_VERSION_MAJOR 0 31 #define MR_VERSION_MINOR 14 32 #define MR_VERSION_REVISION 0 152 #include <libetpan/libetpan.h> 156 #include "mrchatlist.h" 159 #include "mrcontact.h" 201 int mrmailbox_open (mrmailbox_t*,
const char* dbfile,
const char* blobdir);
223 #define MR_GCL_ARCHIVED_ONLY 0x01 224 #define MR_GCL_NO_SPECIALS 0x02 233 uint32_t
mrmailbox_send_image_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height);
234 uint32_t
mrmailbox_send_video_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height,
int duration);
235 uint32_t
mrmailbox_send_voice_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int duration);
236 uint32_t
mrmailbox_send_audio_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int duration,
const char* author,
const char* trackname);
241 #define MR_GCM_ADDDAYMARKER 0x01 291 #define MR_IMEX_EXPORT_SELF_KEYS 1 292 #define MR_IMEX_IMPORT_SELF_KEYS 2 293 #define MR_IMEX_EXPORT_BACKUP 11 294 #define MR_IMEX_IMPORT_BACKUP 12 295 #define MR_BAK_PREFIX "delta-chat" 296 #define MR_BAK_SUFFIX "bak" 297 int mrmailbox_imex (mrmailbox_t*,
int what,
const char* param1,
const char* param2);
306 void mrmailbox_log_error (mrmailbox_t*,
int code,
const char* msg, ...);
307 void mrmailbox_log_error_if (
int* condition, mrmailbox_t*,
int code,
const char* msg, ...);
308 void mrmailbox_log_warning (mrmailbox_t*,
int code,
const char* msg, ...);
309 void mrmailbox_log_info (mrmailbox_t*,
int code,
const char* msg, ...);
313 #define MR_ERR_SELF_NOT_IN_GROUP 1 314 #define MR_ERR_NONETWORK 2 318 int mrchat_set_draft (
mrchat_t*,
const char* msg);
319 #define mrpoortext_t mrlot_t 320 #define mrpoortext_unref mrlot_unref 321 #define mrmailbox_imex_cancel mrmailbox_stop_ongoing_process 322 #define mrmailbox_configure_cancel mrmailbox_stop_ongoing_process An object containing a simple array.
int mrmailbox_set_config(mrmailbox_t *ths, const char *key, const char *value)
Configure the mailbox.
Definition: mrmailbox.c:1212
int mrmailbox_add_address_book(mrmailbox_t *mailbox, const char *adr_book)
Add a number of contacts.
Definition: mrmailbox.c:4476
mrcontact_t * mrmailbox_get_contact(mrmailbox_t *mailbox, uint32_t contact_id)
Get a single contact object.
Definition: mrmailbox.c:4697
void mrmailbox_forward_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt, uint32_t chat_id)
Forward messages to another chat.
Definition: mrmailbox.c:5347
The following constants are used as events reported to the callback given to mrmailbox_new().
int32_t mrmailbox_get_config_int(mrmailbox_t *ths, const char *key, int32_t def)
Get a configuration option.
Definition: mrmailbox.c:1287
char * mrmailbox_get_msg_info(mrmailbox_t *mailbox, uint32_t msg_id)
Get an informational text for a single message.
Definition: mrmailbox.c:5225
int mrmailbox_get_total_msg_count(mrmailbox_t *mailbox, uint32_t chat_id)
Get the total number of messages in a chat.
Definition: mrmailbox.c:2672
int mrmailbox_set_config_int(mrmailbox_t *ths, const char *key, int32_t value)
Configure the mailbox.
Definition: mrmailbox.c:1265
uint32_t mrmailbox_get_next_media(mrmailbox_t *mailbox, uint32_t curr_msg_id, int dir)
Get next/previous message of the same type.
Definition: mrmailbox.c:2006
char * mrmailbox_get_info(mrmailbox_t *mailbox)
Get information about the mailbox.
Definition: mrmailbox.c:1313
int mrmailbox_is_open(const mrmailbox_t *mailbox)
Check if the mailbox database is open.
Definition: mrmailbox.c:1126
void mrmailbox_markseen_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt)
Mark a message as seen, updates the IMAP state and sends MDNs.
Definition: mrmailbox.c:5716
int mrmailbox_is_contact_in_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Check if a given contact ID is a member of a group chat.
Definition: mrmailbox.c:3996
int mrmailbox_open(mrmailbox_t *mailbox, const char *dbfile, const char *blobdir)
Open mailbox database.
Definition: mrmailbox.c:1027
mrarray_t * mrmailbox_get_fresh_msgs(mrmailbox_t *mailbox)
Returns the message IDs of all fresh messages of any chat.
Definition: mrmailbox.c:2131
uintptr_t(* mrmailboxcb_t)(mrmailbox_t *, int event, uintptr_t data1, uintptr_t data2)
Callback function that should be given to mrmailbox_new().
Definition: mrmailbox.h:191
void mrmailbox_archive_chat(mrmailbox_t *mailbox, uint32_t chat_id, int archive)
Archive or unarchive a chat.
Definition: mrmailbox.c:2740
int mrmailbox_add_contact_to_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Add a member to a group.
Definition: mrmailbox.c:4032
void mrmailbox_marknoticed_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Mark all messages in a chat as noticed.
Definition: mrmailbox.c:1827
uint32_t mrmailbox_send_file_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime)
Send a document to a chat.
Definition: mrmailbox.c:3598
uint32_t mrmailbox_send_text_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *text_to_send)
Send a simple text message a given chat.
Definition: mrmailbox.c:3383
uint32_t mrmailbox_create_contact(mrmailbox_t *mailbox, const char *name, const char *addr)
Add a single contact.
Definition: mrmailbox.c:4433
void mrmailbox_star_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt, int star)
Star/unstar messages by setting the last parameter to 0 (unstar) or 1 (star).
Definition: mrmailbox.c:5433
int mrmailbox_configure_and_connect(mrmailbox_t *mailbox)
Configure and connect a mailbox.
Definition: mrmailbox_configure.c:393
An object representing a single chatlist in memory.
void mrmailbox_marknoticed_contact(mrmailbox_t *mailbox, uint32_t contact_id)
Mark all messages sent by the given contact as noticed.
Definition: mrmailbox.c:4736
int mrmailbox_continue_key_transfer(mrmailbox_t *mailbox, uint32_t msg_id, const char *setup_code)
Continue the Autocrypt Key Transfer on another device.
Definition: mrmailbox_imex.c:649
void mrmailbox_stop_ongoing_process(mrmailbox_t *mailbox)
Signal an ongoing process to stop.
Definition: mrmailbox_configure.c:789
char * mrmailbox_get_blobdir(mrmailbox_t *mailbox)
Get the blob directory.
Definition: mrmailbox.c:1146
int mrmailbox_imex(mrmailbox_t *mailbox, int what, const char *param1, const char *param2)
Import/export things.
Definition: mrmailbox_imex.c:1199
uint32_t mrmailbox_send_video_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int width, int height, int duration)
Send a video to a chat.
Definition: mrmailbox.c:3469
int mrmailbox_get_fresh_msg_count(mrmailbox_t *mailbox, uint32_t chat_id)
Get the number of fresh messages in a chat.
Definition: mrmailbox.c:2700
mrarray_t * mrmailbox_search_msgs(mrmailbox_t *mailbox, uint32_t chat_id, const char *query)
Search messages containing the given query string.
Definition: mrmailbox.c:2303
char * mrmailbox_initiate_key_transfer(mrmailbox_t *mailbox)
Initiate Autocrypt Key Transfer.
Definition: mrmailbox_imex.c:473
uint32_t mrmailbox_send_vcard_msg(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Send foreign contact data to a chat.
Definition: mrmailbox.c:3643
mrchatlist_t * mrmailbox_get_chatlist(mrmailbox_t *mailbox, int listflags, const char *query)
Get a list of chats.
Definition: mrmailbox.c:1729
void mrmailbox_close(mrmailbox_t *mailbox)
Close mailbox database.
Definition: mrmailbox.c:1092
int mrmailbox_set_chat_profile_image(mrmailbox_t *mailbox, uint32_t chat_id, const char *new_image)
Set group profile image.
Definition: mrmailbox.c:3907
mrarray_t * mrmailbox_get_blocked_contacts(mrmailbox_t *mailbox)
Get blocked contacts.
Definition: mrmailbox.c:4617
An object representing a single message in memory.
An object representing a single mailbox.
mrarray_t * mrmailbox_get_chat_msgs(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t flags, uint32_t marker1before)
Get all message IDs belonging to a chat.
Definition: mrmailbox.c:2199
int mrmailbox_get_blocked_count(mrmailbox_t *mailbox)
Get the number of blocked contacts.
Definition: mrmailbox.c:4651
uint32_t mrmailbox_send_voice_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int duration)
Send a voice message to a chat.
Definition: mrmailbox.c:3513
void mrmailbox_set_draft(mrmailbox_t *mailbox, uint32_t chat_id, const char *msg)
Save a draft for a chat.
Definition: mrmailbox.c:2452
mrarray_t * mrmailbox_get_chat_media(mrmailbox_t *mailbox, uint32_t chat_id, int msg_type, int or_msg_type)
Returns all message IDs of the given types in a chat.
Definition: mrmailbox.c:1972
uint32_t mrmailbox_create_group_chat(mrmailbox_t *mailbox, const char *chat_name)
Create a new group chat.
Definition: mrmailbox.c:3758
char * mrmailbox_imex_has_backup(mrmailbox_t *mailbox, const char *dir_name)
Check if there is a backup file.
Definition: mrmailbox_imex.c:1325
uint32_t mrmailbox_get_chat_id_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id)
Check, if there is a normal chat with a given contact.
Definition: mrmailbox.c:1861
uint32_t mrmailbox_send_image_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int width, int height)
Send an image to a chat.
Definition: mrmailbox.c:3424
int mrmailbox_remove_contact_from_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Remove a member from a group.
Definition: mrmailbox.c:4117
int mrmailbox_check_password(mrmailbox_t *mailbox, const char *test_pw)
Check if the user is authorized by the given password in some way.
Definition: mrmailbox_imex.c:1391
int mrmailbox_delete_contact(mrmailbox_t *mailbox, uint32_t contact_id)
Delete a contact.
Definition: mrmailbox.c:4987
mrchat_t * mrmailbox_get_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Get chat object by a chat ID.
Definition: mrmailbox.c:1777
void mrmailbox_unref(mrmailbox_t *mailbox)
Free a mailbox object.
Definition: mrmailbox.c:948
char * mrmailbox_get_contact_encrinfo(mrmailbox_t *mailbox, uint32_t contact_id)
Get encryption info for a contact.
Definition: mrmailbox.c:4853
void mrmailbox_delete_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt)
Delete messages.
Definition: mrmailbox.c:5575
mrarray_t * mrmailbox_get_known_contacts(mrmailbox_t *mailbox, const char *query)
Returns known and unblocked contacts.
Definition: mrmailbox.c:4531
void mrmailbox_delete_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Delete a chat.
Definition: mrmailbox.c:2861
void mrmailbox_block_contact(mrmailbox_t *mailbox, uint32_t contact_id, int new_blocking)
Block or unblock a contact.
Definition: mrmailbox.c:4762
mrarray_t * mrmailbox_get_chat_contacts(mrmailbox_t *mailbox, uint32_t chat_id)
Get contact IDs belonging to a chat.
Definition: mrmailbox.c:2082
void mrmailbox_heartbeat(mrmailbox_t *ths)
Stay alive.
Definition: mrmailbox.c:1697
mrmsg_t * mrmailbox_get_msg(mrmailbox_t *mailbox, uint32_t msg_id)
Get a single message object of the type mrmsg_t.
Definition: mrmailbox.c:5179
void mrmailbox_disconnect(mrmailbox_t *mailbox)
Disonnect the mailbox from the server.
Definition: mrmailbox.c:1672
An object representing a single chat in memory.
int mrmailbox_is_configured(mrmailbox_t *mailbox)
Check if the mailbox is already configured.
Definition: mrmailbox_configure.c:705
uint32_t mrmailbox_create_chat_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id)
Create a normal chat with a single user.
Definition: mrmailbox.c:1892
void * mrmailbox_get_userdata(mrmailbox_t *mailbox)
Get user data associated with a mailbox object.
Definition: mrmailbox.c:990
char * mrmailbox_get_version_str(void)
Find out the version of the Delta Chat core library.
Definition: mrmailbox.c:1550
void mrmailbox_connect(mrmailbox_t *mailbox)
Connect to the mailbox using the configured settings.
Definition: mrmailbox.c:1645
char * mrmailbox_get_config(mrmailbox_t *ths, const char *key, const char *def)
Get a configuration option.
Definition: mrmailbox.c:1243
mrmailbox_t * mrmailbox_new(mrmailboxcb_t cb, void *userdata, const char *os_name)
Create a new mailbox object.
Definition: mrmailbox.c:890
uint32_t mrmailbox_send_audio_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int duration, const char *author, const char *trackname)
Send an audio file to a chat.
Definition: mrmailbox.c:3556
int mrmailbox_set_chat_name(mrmailbox_t *mailbox, uint32_t chat_id, const char *new_name)
Set group name.
Definition: mrmailbox.c:3826