gg_send_message:
gg_send_message(sesja, GG_CLASS_CHAT, odbiorca, treść);
Funkcja zwraca numer sekwencyjny wiadomości, który może zostać użyty do potwierdzenia dostarczenia wiadomości za pomocą zdarzenia GG_EVENT_ACK
. Wiadomości przeznaczone do wyświetlania w osobny oknie były wykorzystywane w starszych wersjach Gadu-Gadu, gdzie istniały osobne opcje — wiadomości i rozmowa. Obecnie wykorzystuje się wiadomość typu GG_CLASS_CHAT
.
Wiadomość, która ma zawierać formatowanie tekstu, musi zostać wysłana za pomocą funkcji gg_send_message_richtext()
. Wiadomości konferencyjne wysyła się funkcjami gg_send_message_confer()
lub gg_send_message_confer_richtext()
.
Funkcje gg_send_message_confer()
i gg_send_message_confer_richtext()
zajmują się wysłaniem wiadomości do wszystkich uczestników oraz dołączaniem odpowiednich metainformowacji. Aplikacja musi jedynie dołączyć listę rozmówców w postaci listy ich identyfikatorów.
Po odebraniu wiadomości konferencyjnej za pomocą zdarzenia GG_EVENT_MSG
,pola recipients_count oraz recipients struktury zdarzenia określają listę rozmówców.
gg_msg_richtext_format
. Pole position
określa pierwszy znak, którego dotyczy formatowanie. Pole font
jest sumą logiczną atrybutów:
GG_FONT_BOLD
— pogrubienie, GG_FONT_ITALIC
— kursywa, GG_FONT_UNDERLINE
— podkreślenie, GG_FONT_COLOR
— kolor, GG_FONT_IMAGE
— obrazek.
Jeśli występuje atrybut GG_FONT_COLOR
, zaraz za strukturą gg_msg_richtext_format
znajduje się struktura gg_msg_richtext_color
opisująca kolor za pomocą składowych RGB.
Jeśli występuje atrybut GG_FONT_IMAGE
, za strukturą znajduje się struktura gg_msg_richtext_image
. Pole unknown1
jest nieznane, ale powinno zawierać wartość 0x0109
. Pola size
i crc32
identyfikują obrazek, który można pobrać od nadawcy lub z dysku lokalnego, jeśli był już wcześniej pobierany (np. często używana ikonka). Opis pobierania obrazków od nadawcy znajduje się poniżej.
gg_fix16()
i gg_fix32()
, które w razie konieczności dokonają konwersji.Należy pamiętać, że rozmiar bloku formatowania jest określany w bajtach, nie liczbie struktur.
Rozmiary struktur i położenie ich pól nie są wyrównywane do rozmiaru słowa. Jeśli dana architektura wymaga dostępu do pamięci z wyrównaniem, należy o to zadbać w aplikacji.
GG_EVENT_MSG
GG_EVENT_ACK
zawiera informację o doręczeniulub powód niedoręczenia, chyba że wiadomość została wysłania z klasą GG_CLASS_ACK
. Lista kodów jest opisana poniżej.gg_msg_richtext_image
, mając informację o rozmiarze i sumie kontrolnej obrazka, należy użyć funkcji:
gg_image_request(sesja, nadawca, rozmiar, crc);
Następnie należy oczekiwać na zdarzenie GG_EVENT_IMAGE_REPLY
, które będzie zawierać rozmiar pliku (size
) i sumę kontrolą (crc32
) do identifikacji zdarzenia, oraz nazwę obrazka (filename
) i jego treść (image
). Rodzaj pliku graficznego nie jest określony przy transmisji, więc należy go rozpoznać po rozszerzeniu lub treści.
GG_EVENT_IMAGE_REQUEST
, które w polachsize
i crc32
zawiera informacje o obrazku, którego potrzebuje nasz rozmówca. Obrazek wysyła się funkcją:
gg_image_reply(sesja, odbiorca, nazwa_pliku, obrazek, długość_obrazka);
Struktury danych | |
struct | gg_msg_richtext_format |
Struktura opisująca formatowanie tekstu. Więcej... | |
struct | gg_msg_richtext_color |
Struktura opisującą kolor tekstu dla atrybutu GG_FONT_COLOR . Więcej... | |
struct | gg_msg_richtext_image |
Strukturya opisująca obrazek wstawiony do wiadomości dla atrubutu GG_FONT_IMAGE . Więcej... | |
Definicje | |
#define | GG_MSG_MAXSIZE 1989 |
Maksymalna długość wiadomości. | |
Wyliczenia | |
enum | { GG_CLASS_MSG, GG_CLASS_CHAT, GG_CLASS_CTCP, GG_CLASS_ACK, GG_CLASS_QUEUED } |
Klasy wiadomości. Więcej... | |
enum | { GG_FONT_BOLD, GG_FONT_ITALIC, GG_FONT_UNDERLINE, GG_FONT_COLOR, GG_FONT_IMAGE } |
Atrybuty formatowania wiadomości. Więcej... | |
enum | { GG_ACK_DELIVERED, GG_ACK_QUEUED, GG_ACK_BLOCKED, GG_ACK_MBOXFULL, GG_ACK_NOT_DELIVERED } |
Status doręczenia wiadomości. Więcej... | |
Funkcje | |
int | gg_send_message (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message) |
Wysyła wiadomość do użytkownika. | |
int | gg_send_message_richtext (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, const unsigned char *format, int formatlen) |
Wysyła wiadomość formatowaną. | |
int | gg_send_message_confer (struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message) |
Wysyła wiadomość w ramach konferencji. | |
int | gg_send_message_confer_richtext (struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message, const unsigned char *format, int formatlen) |
Wysyła wiadomość formatowaną w ramach konferencji. | |
int | gg_send_message_ctcp (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, int message_len) |
Wysyła wiadomość binarną przeznaczoną dla klienta. | |
int | gg_image_request (struct gg_session *sess, uin_t recipient, int size, uint32_t crc32) |
Wysyła żądanie obrazka o podanych parametrach. | |
int | gg_image_reply (struct gg_session *sess, uin_t recipient, const char *filename, const char *image, int size) |
Wysyła żądany obrazek. |
#define GG_MSG_MAXSIZE 1989 |
Maksymalna długość wiadomości.
anonymous enum |
Klasy wiadomości.
Wartości są maskami bitowymi, które w większości przypadków można łączyć (połączenie GG_CLASS_MSG
i GG_CLASS_CHAT
nie ma sensu).
anonymous enum |
anonymous enum |
Status doręczenia wiadomości.
int gg_send_message | ( | struct gg_session * | sess, | |
int | msgclass, | |||
uin_t | recipient, | |||
const unsigned char * | message | |||
) |
Wysyła wiadomość do użytkownika.
Zwraca losowy numer sekwencyjny, który można zignorować albo wykorzystać do potwierdzenia.
sess | Struktura sesji | |
msgclass | Klasa wiadomości | |
recipient | Numer adresata | |
message | Treść wiadomości |
int gg_send_message_richtext | ( | struct gg_session * | sess, | |
int | msgclass, | |||
uin_t | recipient, | |||
const unsigned char * | message, | |||
const unsigned char * | format, | |||
int | formatlen | |||
) |
Wysyła wiadomość formatowaną.
Zwraca losowy numer sekwencyjny, który można zignorować albo wykorzystać do potwierdzenia.
sess | Struktura sesji | |
msgclass | Klasa wiadomości | |
recipient | Numer adresata | |
message | Treść wiadomości | |
format | Informacje o formatowaniu | |
formatlen | Długość informacji o formatowaniu |
int gg_send_message_confer | ( | struct gg_session * | sess, | |
int | msgclass, | |||
int | recipients_count, | |||
uin_t * | recipients, | |||
const unsigned char * | message | |||
) |
Wysyła wiadomość w ramach konferencji.
Zwraca losowy numer sekwencyjny, który można zignorować albo wykorzystać do potwierdzenia.
sess | Struktura sesji | |
msgclass | Klasa wiadomości | |
recipients_count | Liczba adresatów | |
recipients | Wskaźnik do tablicy z numerami adresatów | |
message | Treść wiadomości |
int gg_send_message_confer_richtext | ( | struct gg_session * | sess, | |
int | msgclass, | |||
int | recipients_count, | |||
uin_t * | recipients, | |||
const unsigned char * | message, | |||
const unsigned char * | format, | |||
int | formatlen | |||
) |
Wysyła wiadomość formatowaną w ramach konferencji.
Zwraca losowy numer sekwencyjny, który można zignorować albo wykorzystać do potwierdzenia.
sess | Struktura sesji | |
msgclass | Klasa wiadomości | |
recipients_count | Liczba adresatów | |
recipients | Wskaźnik do tablicy z numerami adresatów | |
message | Treść wiadomości | |
format | Informacje o formatowaniu | |
formatlen | Długość informacji o formatowaniu |
int gg_send_message_ctcp | ( | struct gg_session * | sess, | |
int | msgclass, | |||
uin_t | recipient, | |||
const unsigned char * | message, | |||
int | message_len | |||
) |
Wysyła wiadomość binarną przeznaczoną dla klienta.
Wiadomości między klientami przesyła się np. w celu wywołania zwrotnego połączenia bezpośredniego. Funkcja zwraca losowy numer sekwencyjny, który można zignorować albo wykorzystać do potwierdzenia.
sess | Struktura sesji | |
msgclass | Klasa wiadomości | |
recipient | Numer adresata | |
message | Treść wiadomości | |
message_len | Długość wiadomości |
int gg_image_request | ( | struct gg_session * | sess, | |
uin_t | recipient, | |||
int | size, | |||
uint32_t | crc32 | |||
) |
Wysyła żądanie obrazka o podanych parametrach.
Wiadomości obrazkowe nie zawierają samych obrazków, a tylko ich rozmiary i sumy kontrolne. Odbiorca najpierw szuka obrazków w swojej pamięci podręcznej i dopiero gdy ich nie znajdzie, wysyła żądanie do nadawcy. Wynik zostanie przekazany zdarzeniem GG_EVENT_IMAGE_REPLY
.
sess | Struktura sesji | |
recipient | Numer adresata | |
size | Rozmiar obrazka w bajtach | |
crc32 | Suma kontrola obrazka |
int gg_image_reply | ( | struct gg_session * | sess, | |
uin_t | recipient, | |||
const char * | filename, | |||
const char * | image, | |||
int | size | |||
) |
Wysyła żądany obrazek.
sess | Struktura sesji | |
recipient | Numer adresata | |
filename | Nazwa pliku | |
image | Bufor z obrazkiem | |
size | Rozmiar obrazka |