49 lines
2.1 KiB
C++
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];
|
|
} |