include/roster.h
author Myhailo Danylenko <isbear@ukrpost.net>
Sat, 01 Aug 2009 23:05:11 +0300
changeset 79 05328c643696
child 81 9008e2daa1b1
permissions -rw-r--r--
Mcabber-lm includes moved into a project tree
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
#ifndef __ROSTER_H__
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
#define __ROSTER_H__ 1
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
#include <glib.h>
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
#include <time.h>
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
#include "pgp.h"
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
#ifndef SPECIAL_BUFFER_STATUS_ID
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
#define SPECIAL_BUFFER_STATUS_ID  "[status]"
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
#endif
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
enum imstatus {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
    offline,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
    available,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
    freeforchat,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
    dontdisturb,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
    notavail,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
    away,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
    invisible,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
    imstatus_size
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
extern char imstatus2char[]; // Should match enum above
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
enum imrole {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
  role_none,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
  role_moderator,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
  role_participant,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
  role_visitor,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
  imrole_size
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
extern char *strrole[]; // Should match enum above
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
enum imaffiliation {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
  affil_none,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
  affil_owner,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
  affil_admin,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
  affil_member,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
  affil_outcast,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
  imaffiliation_size
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
extern char *straffil[]; // Should match enum above
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
enum subscr {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
  sub_none    = 0,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
  sub_pending = 1,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
  sub_to      = 1 << 1,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
  sub_from    = 1 << 2,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
  sub_both    = sub_to|sub_from,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
  sub_remove  = 1 << 3
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
enum findwhat {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
  jidsearch,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
  namesearch
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
extern char *strprintstatus[];
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
// Note: do not change the ordering as these values are visible
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
// to the user (option 'muc_print_status')!
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
enum room_printstatus {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
  status_default,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
  status_none,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
  status_in_and_out,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
  status_all
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
extern char *strautowhois[];
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
enum room_autowhois {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
  autowhois_default,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
  autowhois_off,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
  autowhois_on
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
struct role_affil {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
  enum { type_role, type_affil } type;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
  union {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
    enum imrole role;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
    enum imaffiliation affil;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
  } val;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
// Roster_type is a set of flags, so values should be 2^n
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
#define ROSTER_TYPE_USER    1U
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
#define ROSTER_TYPE_GROUP   (1U<<1)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
#define ROSTER_TYPE_AGENT   (1U<<2)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
#define ROSTER_TYPE_ROOM    (1U<<3)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
#define ROSTER_TYPE_SPECIAL (1U<<4)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
// Flags:
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
#define ROSTER_FLAG_MSG     1U      // Message not read
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
#define ROSTER_FLAG_HIDE    (1U<<1) // Group hidden (or buddy window closed)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
#define ROSTER_FLAG_LOCK    (1U<<2) // Node should not be removed from buddylist
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
#define ROSTER_FLAG_USRLOCK (1U<<3) // Node should not be removed from buddylist
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
// ROSTER_FLAG_LOCAL   (1U<<4) // Buddy not on server's roster  (??)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
#define JEP0022
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
#define JEP0085
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
struct jep0022 {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
  guint support;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
  guint last_state_sent;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
  gchar *last_msgid_sent;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
  guint last_state_rcvd;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
  gchar *last_msgid_rcvd;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
struct jep0085 {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
  guint support;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
  guint last_state_sent;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
  guint last_state_rcvd;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
enum chatstate_support {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
  CHATSTATES_SUPPORT_UNKNOWN = 0,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
  CHATSTATES_SUPPORT_PROBED,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
  CHATSTATES_SUPPORT_NONE,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
  CHATSTATES_SUPPORT_OK
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   123
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   124
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   125
struct pgp_data {
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   126
  gchar *sign_keyid;  // KeyId used by the contact to sign their presence/msg
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
#ifdef HAVE_GPGME
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   128
  gpgme_sigsum_t last_sigsum; // Last signature summary
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   129
#endif
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
};
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   131
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   132
/* Message event and chat state flags */
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
#define ROSTER_EVENT_NONE      0U
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
/* JEP-22 Message Events */
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
#define ROSTER_EVENT_OFFLINE   (1U<<0)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
#define ROSTER_EVENT_DELIVERED (1U<<1)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
#define ROSTER_EVENT_DISPLAYED (1U<<2)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
/* JEP-22 & JEP-85 */
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
#define ROSTER_EVENT_COMPOSING (1U<<3)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
/* JEP-85 Chat State Notifications */
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
#define ROSTER_EVENT_ACTIVE    (1U<<4)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
#define ROSTER_EVENT_PAUSED    (1U<<5)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
#define ROSTER_EVENT_INACTIVE  (1U<<6)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
#define ROSTER_EVENT_GONE      (1U<<7)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
extern GList *buddylist;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
extern GList *current_buddy;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
extern GList *alternate_buddy;
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
// Macros...
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   151
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
#define BUDDATA(glist_node) ((glist_node)->data)
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
#define CURRENT_JID         buddy_getjid(BUDDATA(current_buddy))
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
// Prototypes...
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
void    roster_init(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
GSList *roster_add_group(const char *name);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
GSList *roster_add_user(const char *jid, const char *name, const char *group,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
                        guint type, enum subscr esub, gint on_server);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
GSList *roster_find(const char *jidname, enum findwhat type, guint roster_type);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
void    roster_del_user(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   162
void    roster_free(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
void    roster_setstatus(const char *jid, const char *resname, gchar prio,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
                         enum imstatus bstat, const char *status_msg,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   165
                         time_t timestamp,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
                         enum imrole role, enum imaffiliation affil,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   167
                         const char *realjid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   168
void    roster_setflags(const char *jid, guint flags, guint value);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
void    roster_msg_setflag(const char *jid, guint special, guint value);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
const char *roster_getname(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   171
const char *roster_getnickname(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   172
void    roster_settype(const char *jid, guint type);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
enum imstatus roster_getstatus(const char *jid, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
const char   *roster_getstatusmsg(const char *jid, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
guint   roster_gettype(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
guint   roster_getsubscription(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   177
void    roster_unsubscribed(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   178
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   179
void    buddylist_build(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
void    buddy_hide_group(gpointer rosterdata, int hide);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
void    buddylist_set_hide_offline_buddies(int hide);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
int     buddylist_isset_filter(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
int     buddylist_is_status_filtered(enum imstatus status);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
void    buddylist_set_filter(guchar);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
guchar  buddylist_get_filter(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
const char *buddy_getjid(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
void        buddy_setname(gpointer rosterdata, char *newname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
const char *buddy_getname(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
void        buddy_setnickname(gpointer rosterdata, const char *newname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
const char *buddy_getnickname(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
void        buddy_setinsideroom(gpointer rosterdata, guint inside);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
guint       buddy_getinsideroom(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
void        buddy_settopic(gpointer rosterdata, const char *newtopic);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
const char *buddy_gettopic(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
void    buddy_setprintstatus(gpointer rosterdata, enum room_printstatus);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
enum room_printstatus buddy_getprintstatus(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
void    buddy_setautowhois(gpointer rosterdata, enum room_autowhois);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
enum room_autowhois buddy_getautowhois(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
void    buddy_settype(gpointer rosterdata, guint type);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
guint   buddy_gettype(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
guint   buddy_getsubscription(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
void    buddy_setgroup(gpointer rosterdata, char *newgroupname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
const char *buddy_getgroupname(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
gpointer buddy_getgroup(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
time_t  buddy_getstatustime(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
gchar   buddy_getresourceprio(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
//int   buddy_isresource(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
GSList *buddy_getresources(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
GSList *buddy_getresources_locale(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
void    buddy_resource_setname(gpointer rosterdata, const char *resname,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
                               const char *newname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
void    buddy_resource_setevents(gpointer rosterdata, const char *resname,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
                                 guint event);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
guint   buddy_resource_getevents(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
void    buddy_resource_setcaps(gpointer rosterdata, const char *resname,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
                               const char *caps);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
char   *buddy_resource_getcaps(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
struct jep0022 *buddy_resource_jep22(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
struct jep0085 *buddy_resource_jep85(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
struct pgp_data *buddy_resource_pgp(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
enum imrole buddy_getrole(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
enum imaffiliation buddy_getaffil(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
const char *buddy_getrjid(gpointer rosterdata, const char *resname);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
void    buddy_del_all_resources(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
void    buddy_setflags(gpointer rosterdata, guint flags, guint value);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
guint   buddy_getflags(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
void    buddy_setonserverflag(gpointer rosterdata, guint onserver);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
guint   buddy_getonserverflag(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
GList  *buddy_search_jid(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
GList  *buddy_search(char *string);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
void    foreach_buddy(guint roster_type,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
                      void (*pfunc)(gpointer rosterdata, void *param),
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
                      void *param);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
void    foreach_group_member(gpointer groupdata,
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
                             void (*pfunc)(gpointer rosterdata, void *param),
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
                             void *param);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
gpointer unread_msg(gpointer rosterdata);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
void   unread_jid_add(const char *jid);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
GList *unread_jid_get_list(void);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
GSList *compl_list(guint type);
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
#endif /* __ROSTER_H__ */
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
05328c643696 Mcabber-lm includes moved into a project tree
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */