13 #ifndef hifi_SteamClientPlugin_h
14 #define hifi_SteamClientPlugin_h
18 #include <QtCore/QObject>
19 #include <QtCore/QByteArray>
21 using Ticket = QByteArray;
22 using TicketRequestCallback = std::function<void(Ticket)>;
24 class SteamClientPlugin {
26 virtual ~SteamClientPlugin() {};
28 virtual bool init() = 0;
29 virtual void shutdown() = 0;
31 virtual bool isRunning() = 0;
33 virtual void runCallbacks() = 0;
35 virtual void requestTicket(TicketRequestCallback callback) = 0;
36 virtual void updateLocation(QString status, QUrl locationUrl) = 0;
37 virtual void openInviteOverlay() = 0;
38 virtual void joinLobby(QString lobbyId) = 0;
40 virtual int getSteamVRBuildID() = 0;
56 class SteamScriptingInterface :
public QObject {
59 Q_PROPERTY(
bool running READ isRunning)
62 SteamScriptingInterface(QObject* parent, SteamClientPlugin* plugin) : QObject(parent), _plugin(plugin) {}
71 bool isRunning()
const {
return _plugin && _plugin->isRunning(); }
84 void openInviteOverlay()
const {
if (_plugin) { _plugin->openInviteOverlay(); } }
87 SteamClientPlugin* _plugin;