From 50421b7809c47bd95c59b4a5627e2f89c8bccfa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Tue, 29 Oct 2013 08:47:48 +0000 Subject: SkypeClassic: Folders structure and project cleanup git-svn-id: http://svn.miranda-ng.org/main/trunk@6668 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/SkypeClassic/src/skypeprofile.cpp | 145 ++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 protocols/SkypeClassic/src/skypeprofile.cpp (limited to 'protocols/SkypeClassic/src/skypeprofile.cpp') diff --git a/protocols/SkypeClassic/src/skypeprofile.cpp b/protocols/SkypeClassic/src/skypeprofile.cpp new file mode 100644 index 0000000000..168dbfa97c --- /dev/null +++ b/protocols/SkypeClassic/src/skypeprofile.cpp @@ -0,0 +1,145 @@ +#pragma warning (disable: 4706) // assignment within conditional expression + +#include "skypeprofile.h" +#include "skypeapi.h" +#include "utf8.h" + +extern char g_szProtoName[]; + +void SkypeProfile_Save(SkypeProfile *pstProf) +{ + db_set_b(NULL, SKYPE_PROTONAME, "Gender", pstProf->Sex); + db_set_s(NULL, SKYPE_PROTONAME, "HomePhone", pstProf->HomePhone); + db_set_s(NULL, SKYPE_PROTONAME, "OfficePhone", pstProf->OfficePhone); + db_set_s(NULL, SKYPE_PROTONAME, "HomePage", pstProf->HomePage); + db_set_ts(NULL, SKYPE_PROTONAME, "Nick", pstProf->FullName); + db_set_ts(NULL, SKYPE_PROTONAME, "City", pstProf->City); + db_set_ts(NULL, SKYPE_PROTONAME, "Province", pstProf->Province); + db_set_w(NULL, SKYPE_PROTONAME, "BirthYear", (WORD)pstProf->Birthday.wYear); + db_set_b(NULL, SKYPE_PROTONAME, "BirthMonth", (BYTE)pstProf->Birthday.wMonth); + db_set_b(NULL, SKYPE_PROTONAME, "BirthDay", (BYTE)pstProf->Birthday.wDay); +} + +void SkypeProfile_Load(SkypeProfile *pstProf) +{ + DBVARIANT dbv; + + pstProf->Sex = (BYTE)db_get_b(NULL, SKYPE_PROTONAME, "Gender", 0); + pstProf->Birthday.wYear = (WORD)db_get_w(NULL, SKYPE_PROTONAME, "BirthYear", 1900); + pstProf->Birthday.wMonth = (WORD)db_get_b(NULL, SKYPE_PROTONAME, "BirthMonth", 01); + pstProf->Birthday.wDay = (WORD)db_get_b(NULL, SKYPE_PROTONAME, "BirthDay", 01); + if(!db_get_ts(NULL,SKYPE_PROTONAME,"Nick",&dbv)) + { + _tcsncpy (pstProf->FullName, dbv.ptszVal, sizeof(pstProf->FullName)/sizeof(TCHAR)); + db_free(&dbv); + } + if(!db_get_s(NULL,SKYPE_PROTONAME,"HomePage",&dbv)) + { + strncpy (pstProf->HomePage, dbv.pszVal, sizeof(pstProf->HomePage)); + db_free(&dbv); + } + if(!db_get_ts(NULL,SKYPE_PROTONAME,"Province",&dbv)) + { + _tcsncpy (pstProf->Province, dbv.ptszVal, sizeof(pstProf->Province)/sizeof(TCHAR)); + db_free(&dbv); + } + if(!db_get_ts(NULL,SKYPE_PROTONAME,"City",&dbv)) + { + _tcsncpy (pstProf->City, dbv.ptszVal, sizeof(pstProf->City)/sizeof(TCHAR)); + db_free(&dbv); + } + if(!db_get_s(NULL,SKYPE_PROTONAME,"OfficePhone",&dbv)) + { + strncpy (pstProf->OfficePhone, dbv.pszVal, sizeof(pstProf->OfficePhone)); + db_free(&dbv); + } + if(!db_get_s(NULL,SKYPE_PROTONAME,"HomePhone",&dbv)) + { + strncpy (pstProf->HomePhone, dbv.pszVal, sizeof(pstProf->HomePhone)); + db_free(&dbv); + } +} + +static void LoadSaveSkype(SkypeProfile *pstProf, BOOL bSet) +{ +#pragma warning (push) +#pragma warning (disable: 4204) // nonstandard extension used : non-constant aggregate initializer +#define ENTRY(x,y) {x, pstProf->y, sizeof(pstProf->y)/sizeof(pstProf->y[0]), sizeof(pstProf->y[0])} + const struct { + char *pszSetting; + LPVOID lpDest; + int iSize; + char cType; + } astSettings[] = { + ENTRY("FULLNAME", FullName), + ENTRY("PHONE_HOME", HomePhone), + ENTRY("PHONE_OFFICE", OfficePhone), + ENTRY("HOMEPAGE", HomePage), + ENTRY("CITY", City), + ENTRY("PROVINCE", Province) + }; +#pragma warning (pop) +#undef ENTRY + char *ptr; + int i; + + if (bSet) { + char *pBuf, szBirthday[16]; + for (i=0; iSex) + { + case 0x4D: SkypeSetProfile ("SEX", "MALE"); break; + case 0x46: SkypeSetProfile ("SEX", "FEMALE"); break; + } + sprintf (szBirthday, "%04d%02d%02d", pstProf->Birthday.wYear, pstProf->Birthday.wMonth, pstProf->Birthday.wDay); + SkypeSetProfile ("BIRTHDAY", szBirthday); + } else { + for (i=0; iSex=0x4D; else + if (!_stricmp(ptr, "FEMALE")) pstProf->Sex=0x46; + free (ptr); + } + if (ptr=SkypeGetProfile("BIRTHDAY")) + { + if (*ptr != '0') + sscanf(ptr, "%04hd%02hd%02hd", &pstProf->Birthday.wYear, &pstProf->Birthday.wMonth, + &pstProf->Birthday.wDay); + free(ptr); + } + } +} + +void SkypeProfile_LoadFromSkype(SkypeProfile *pstProf) +{ + LoadSaveSkype (pstProf, FALSE); +} + +void SkypeProfile_SaveToSkype(SkypeProfile *pstProf) +{ + LoadSaveSkype (pstProf, TRUE); +} \ No newline at end of file -- cgit v1.2.3