From 07ddfbd5994267e0f1aba52040a25db90ed8924b Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 22 Dec 2012 21:43:08 +0000 Subject: IMO2sProxy reverted. maybe will be needed later git-svn-id: http://svn.miranda-ng.org/main/trunk@2809 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../IMO2sProxy/src/imo2skype/avatarlist.c | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 plugins/!NotAdopted/IMO2sProxy/src/imo2skype/avatarlist.c (limited to 'plugins/!NotAdopted/IMO2sProxy/src/imo2skype/avatarlist.c') diff --git a/plugins/!NotAdopted/IMO2sProxy/src/imo2skype/avatarlist.c b/plugins/!NotAdopted/IMO2sProxy/src/imo2skype/avatarlist.c new file mode 100644 index 0000000000..f1c78f0567 --- /dev/null +++ b/plugins/!NotAdopted/IMO2sProxy/src/imo2skype/avatarlist.c @@ -0,0 +1,110 @@ +/* Module: avatarlist.c + Purpose: Manages the avatars of your buddies + Author: leecher + Date: 18.08.2011 +*/ + +#include +#include +#include "memlist.h" +#include "avatarlist.h" + +static void SetEntry(AVATARENTRY *pEntry, cJSON *pNick); + +// ----------------------------------------------------------------------------- +// Interface +// ----------------------------------------------------------------------------- + +TYP_LIST *AvatarList_Init(void) +{ + TYP_LIST *hList = List_Init(16); + + return hList; +} + +// ----------------------------------------------------------------------------- + +void AvatarList_Exit(TYP_LIST *hList) +{ + AVATARENTRY *pEntry; + + while (pEntry=(AVATARENTRY*)List_Pop(hList)) + { + AvatarList_FreeEntry(pEntry); + free (pEntry); + } + List_Exit(hList); +} + +// ----------------------------------------------------------------------------- + +BOOL AvatarList_Insert(TYP_LIST *hList, cJSON *pIcon) +{ + AVATARENTRY *pEntry; + + if (pEntry=AvatarList_Find (hList, cJSON_GetObjectItem(pIcon, "buid")->valuestring)) + AvatarList_FreeEntry (pEntry); + else + { + if (!(pEntry = calloc (1, sizeof(AVATARENTRY)))) return FALSE; + if (!List_Push(hList, pEntry)) return FALSE; + } + SetEntry(pEntry, pIcon); + return TRUE; +} + +// ----------------------------------------------------------------------------- + +BOOL AvatarList_Remove(TYP_LIST *hList, AVATARENTRY *pEntry) +{ + AVATARENTRY *pListEntry; + int i, nCount; + + for (i=0, nCount=List_Count(hList); ipszUser, pszUser) == 0) + return pEntry; + } + return NULL; +} + +// ----------------------------------------------------------------------------- + +void AvatarList_FreeEntry(AVATARENTRY *pEntry) +{ + if (pEntry->pszUser) free (pEntry->pszUser); + if (pEntry->pszIcon) free (pEntry->pszIcon); +} + +// ----------------------------------------------------------------------------- +// Static +// ----------------------------------------------------------------------------- + +static void SetEntry(AVATARENTRY *pEntry, cJSON *pNick) +{ + pEntry->pszUser = strdup(cJSON_GetObjectItem(pNick, "buid")->valuestring); + pEntry->pszIcon = strdup(cJSON_GetObjectItem(pNick, "icon")->valuestring); +} -- cgit v1.2.3