1#include "Library/Camera/CameraSwitchRequester.h"
2
3#include "Library/Camera/CameraSwitchRequestInfo.h"
4#include "Library/Camera/CameraTicket.h"
5
6namespace al {
7
8CameraSwitchRequester::CameraSwitchRequester() = default;
9
10void CameraSwitchRequester::init(CameraSwitchRequestInfo* start, CameraSwitchRequestInfo* end) {
11 mStart = start;
12 mEnd = end;
13};
14
15void CameraSwitchRequester::requestStart(CameraTicket* ticket, s32 i) {
16 ticket->setActiveCamera(true);
17 mStart[ticket->getPriority()].addRequest(ticket, i, false);
18}
19
20void CameraSwitchRequester::requestEnd(CameraTicket* ticket, s32 i, bool b) {
21 ticket->setActiveCamera(false);
22 if (!mStart[ticket->getPriority()].tryRemoveRequestIfExist(ticket))
23 mEnd[ticket->getPriority()].addRequest(ticket, i, b);
24}
25
26void CameraSwitchRequester::requestEndWithNextCameraPose(CameraTicket* ticket,
27 const CameraPoseInfo* poseInfo, s32 i) {
28 ticket->setActiveCamera(false);
29 if (!mStart[ticket->getPriority()].tryRemoveRequestIfExist(ticket))
30 mEnd[ticket->getPriority()].addRequestWithNextCameraPose(ticket, nextPose: poseInfo, i);
31}
32
33} // namespace al
34