// // TouchInputService.h // App // // Copyright 2015 ROBLOX Corporation, All Rights Reserved // Created by Ben Tkacheff on 7/10/15. // // #pragma once #include #include "V8Tree/Service.h" #include "V8DataModel/InputObject.h" namespace RBX { extern const char *const sTouchInputService; typedef std::pair TouchInfo; typedef boost::unordered_map > TouchBufferMap; class TouchInputService : public DescribedNonCreatable , public Service { private: typedef DescribedNonCreatable Super; boost::mutex touchBufferMutex; int touchCount; TouchBufferMap touchBufferMap; boost::unordered_map countToTouchMap; boost::unordered_map touchToCountMap; boost::unordered_map > touchIdToInputObjectMap; rbx::signals::scoped_connection updateInputConnection; void processTouchBuffer(); protected: /*override*/ void onServiceProvider(ServiceProvider* oldSp, ServiceProvider* newSp); public: TouchInputService(); void addTouchToBuffer(void* touch, Vector3 rbxLocation, InputObject::UserInputState newState); }; }