/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: MySPITApp.h * Author: Hagi * * Created on 17. April 2019, 18:24 */ #ifndef MYSPITAPP_H #define MYSPITAPP_H #include "SPIT_Client.h" #include #include #include "SPITType.h" #include "SPITObject.h" #include "SPITPlayer.h" #include "SAD_DetectedServer.hpp" using namespace std; class MyApp { public: MyApp(); // Client's infos is set by the client static string s_ClientName; static string s_ProjectName; void init(); private: SPIT_Client _SpitClient; // pointer to an instance of the SPIT_Client, which do the main work for you // Server's project infos filled by eventProjectReport static string m_ServerProjectID; static string m_ServerProjectName; static int m_ServerFramesPerSecond; // set when the server reports his project, see eventProjectReport // liveSHOWsoftware will use 44100 frames per second as time resolution // All times are given in frames, public: static void onServerEvent(SPIT_Client::ServerEvent event, const SAD_DetectedServer &p_DetectedServer); static void onConnectionStatus(string p_ServerID, string p_ServerComputerName, string p_ServerName, int p_ServerStepTime, int p_ConnectionStatus, int p_OldConnectionStatus); //----- Project ----- static void onStartProjectTransfer(); static void onEndProjectTransfer(); static void onProjectReport(string p_ProjectID, string p_ProjectName, int p_FramesPerSeoond); static void onProjectClosed(string p_ProjectID); //----- SPITType ----- static bool onCheckSpitTypeVeto(SPIT_Message::ReportSPITType* p_ReportSPITType); static void onSpitType(bool p_New, const SPITType &p_SPITType); static void onSpitTypeRemote(bool p_New, const SPITType &p_SPITType); static void onSpitTypeRemoved(const SPITType &p_SPITType); static void onSpitTypeRemoteRemoved(const SPITType &p_SPITType); //----- SPITObject ----- static bool onCheckSpitObjectVeto(SPIT_Message::ReportSPITObject* p_ReportSPITObject); static void onSpitObject(bool p_New, const SPITType &p_SPITType, const SPITObject &p_SPITObject); static void onSpitObjectRemote(bool p_New, const SPITType &p_SPITType, const SPITObject &p_SPITObject); static void onSpitObjectRemoved(const SPITType &p_SPITType, const SPITObject &p_SPITObject); static void onSpitObjectRemoteRemoved(const SPITType &p_SPITType, const SPITObject &p_SPITObject); //----- Play SPITObjects ----- static void onPlay(string p_PlayerID, string p_PlayerName, char p_PlayerType, bool p_PlayerIsRunning, long long p_TimeFrames); static void onPlaySpitType(string p_PlayerID, string p_SPITTypeID, bool p_PlayerIsRunning, bool p_Started, bool p_Ended, double p_Value); //----- Server changes status of one of his REMOTE SPITObjects ----- // REMOTE only Server->Client RemoteObject's play status static void onPlayRemoteObjectStatus(const SPITType &p_SPITType, const SPITObject &p_SPITObject, long long p_FrameInsideObject, int p_Value); void sendRemoteObject(string p_SPITObjectID, int p_Valueppm = 0, char p_ValueFlag = 0x00); //----- void testLiveShowRemote(); //------ User's options normally should not be used, the server is master of things ------ public: }; #endif /* MYSPITAPP_H */