/* * Copyright 2009-2010, Pier Luigi Fiorini. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Pier Luigi Fiorini, pierluigi.fiorini@gmail.com */ #include #include #include #include #include #include "private/IconUtils.h" #include "CayaUtils.h" const char* CayaStatusToString(CayaStatus status) { switch (status) { case CAYA_ONLINE: return "Available"; case CAYA_OFFLINE: return "Offline"; case CAYA_AWAY: return "Away"; case CAYA_EXTENDED_AWAY: return "Extended Away"; case CAYA_DO_NOT_DISTURB: return "Busy"; default: return NULL; } } BResources* CayaResources() { image_info info; if (our_image(info) != B_OK) return NULL; BFile file(info.name, B_READ_ONLY); if (file.InitCheck() != B_OK) return NULL; BResources* res = new BResources(&file); if (res->InitCheck() != B_OK) { delete res; return NULL; } return res; } const char* CayaAccountsPath() { BPath path; if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) != B_OK) return NULL; path.Append("Caya/Protocols"); if (create_directory(path.Path(), 0755) != B_OK) return NULL; return path.Path(); } const char* CayaAccountPath(const char* signature) { if (!signature) return NULL; BPath path(CayaAccountsPath()); if (path.InitCheck() != B_OK) return NULL; path.Append(signature); if (create_directory(path.Path(), 0755) != B_OK) return NULL; return path.Path(); } extern "C" { status_t our_image(image_info& image) { team_id team = B_CURRENT_TEAM; int32 cookie = 0; while (get_next_image_info(team, &cookie, &image) == B_OK) { if ((char *)our_image >= (char *)image.text && (char *)our_image <= (char *)image.text + image.text_size) return B_OK; } return B_ERROR; } }