1 #ifndef __DC_CONTACT_H__
2 #define __DC_CONTACT_H__
8 #include "dc_contact.h"
9 #include "dc_apeerstate.h"
36 #define DC_ORIGIN_INCOMING_UNKNOWN_FROM 0x10
37 #define DC_ORIGIN_INCOMING_UNKNOWN_CC 0x20
38 #define DC_ORIGIN_INCOMING_UNKNOWN_TO 0x40
39 #define DC_ORIGIN_UNHANDLED_QR_SCAN 0x80
40 #define DC_ORIGIN_INCOMING_REPLY_TO 0x100
41 #define DC_ORIGIN_INCOMING_CC 0x200
42 #define DC_ORIGIN_INCOMING_TO 0x400
43 #define DC_ORIGIN_CREATE_CHAT 0x800
44 #define DC_ORIGIN_OUTGOING_BCC 0x1000
45 #define DC_ORIGIN_OUTGOING_CC 0x2000
46 #define DC_ORIGIN_OUTGOING_TO 0x4000
47 #define DC_ORIGIN_INTERNAL 0x40000
48 #define DC_ORIGIN_ADRESS_BOOK 0x80000
49 #define DC_ORIGIN_SECUREJOIN_INVITED 0x1000000
50 #define DC_ORIGIN_SECUREJOIN_JOINED 0x2000000
51 #define DC_ORIGIN_MANUALLY_CREATED 0x4000000
53 #define DC_ORIGIN_MIN_CONTACT_LIST (DC_ORIGIN_INCOMING_REPLY_TO)
54 #define DC_ORIGIN_MIN_VERIFIED (DC_ORIGIN_INCOMING_REPLY_TO)
55 #define DC_ORIGIN_MIN_START_NEW_NCHAT (0x7FFFFFFF)
57 int dc_contact_load_from_db (
dc_contact_t*, dc_sqlite3_t*, uint32_t contact_id);
58 int dc_contact_is_verified_ex (
dc_contact_t*,
const dc_apeerstate_t*);
62 void dc_normalize_name (
char* full_name);
63 char* dc_get_first_name (
const char* full_name);
67 int dc_addr_cmp (
const char* addr1,
const char* addr2);
68 char* dc_addr_normalize (
const char* addr);
69 int dc_addr_equals_self (
dc_context_t*,
const char* addr);
70 int dc_addr_equals_contact (
dc_context_t*,
const char* addr, uint32_t contact_id);
75 uint32_t dc_add_or_lookup_contact (
dc_context_t*,
const char* display_name ,
const char* addr_spec,
int origin,
int* sth_modified);
76 int dc_get_contact_origin (
dc_context_t*, uint32_t contact_id,
int* ret_blocked);
77 int dc_is_contact_blocked (
dc_context_t*, uint32_t contact_id);
78 int dc_real_contact_exists (
dc_context_t*, uint32_t contact_id);
79 void dc_scaleup_contact_origin (
dc_context_t*, uint32_t contact_id,
int origin);