TelegramTUI/src/userstatus.cpp

49 lines
2.1 KiB
C++

#include "userstatus.h"
#include <td/telegram/td_api.h>
namespace td_api = td::td_api;
#define CASERETURN(TGTYPE, ENUMTYPE) case td_api::TGTYPE::ID: return UserStatus::ENUMTYPE
UserStatus::UserStatus UserStatus::getStatus(int32_t status) {
switch(status) {
CASERETURN(userStatusEmpty , EMPTY);
CASERETURN(userStatusOnline , ONLINE);
CASERETURN(userStatusOffline , OFFLINE);
CASERETURN(userStatusRecently , RECENTLY);
CASERETURN(userStatusLastWeek , LASTWEEK);
CASERETURN(userStatusLastMonth, LASTMONTH);
}
return UserStatus::EMPTY;
}
#undef CASERETURN
const std::string& UserStatus::statustoString(UserStatus status) {
static const std::string names[] {"empty", "online", "offline", "recently", "lastweek", "lastmonth"};
return names[(uint8_t) status];
}
#define CASERETURN(TGTYPE, ENUMTYPE) case td_api::TGTYPE::ID: return ChatAction::ENUMTYPE
ChatAction::ChatAction ChatAction::getAction(int32_t status) {
switch(status) {
CASERETURN(chatActionCancel , CANCEL);
CASERETURN(chatActionChoosingContact , CHOOSINGCONTACT);
CASERETURN(chatActionChoosingLocation , CHOOSINGLOCATION);
CASERETURN(chatActionRecordingVideo , RECORDINGVIDEO);
CASERETURN(chatActionRecordingVideoNote, RECORDINGVIDEONOTE);
CASERETURN(chatActionRecordingVoiceNote, RECORDINGVOICENOTE);
CASERETURN(chatActionStartPlayingGame , PLAYGAME);
CASERETURN(chatActionTyping , TYPING);
CASERETURN(chatActionUploadingDocument , UPLOADINGDOCUMENT);
CASERETURN(chatActionUploadingPhoto , UPLOADINGPHOTO);
CASERETURN(chatActionUploadingVideo , UPLODAINGVIDEO);
CASERETURN(chatActionUploadingVideoNote, UPLOADINGVIDEONOTE);
CASERETURN(chatActionUploadingVoiceNote, UPLOADINGVOICENOTE);
}
return ChatAction::CANCEL;
}
#undef CASERETURN
const std::string& ChatAction::actiontoString(ChatAction action) {
static const std::string names[] {"CANCEL", "CHOOSINGCONTACT ", "CHOOSINGLOCATION ", "RECORDINGVIDEO ", "RECORDINGVIDEONOTE ", "RECORDINGVOICENOTE ", "PLAYGAME ", "TYPING ", "UPLOADINGDOCUMENT ", "UPLOADINGPHOTO ", "UPLODAINGVIDEO ", "UPLOADINGVIDEONOTE ", "UPLOADINGVOICENOTE"};
return names[action];
}