Overte C++ Documentation
RuntimePlugin.h
1 //
2 // Created by Bradley Austin Davis on 2015/10/24
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 #pragma once
9 
10 #include <assert.h>
11 
12 #include <QString>
13 #include <QObject>
14 
15 #include "Forward.h"
16 
17 class DisplayProvider {
18 public:
19  virtual ~DisplayProvider() {}
20 
21  virtual DisplayPluginList getDisplayPlugins() = 0;
22  virtual void destroyDisplayPlugins() = 0;
23 };
24 
25 #define DisplayProvider_iid "com.highfidelity.plugins.display"
26 Q_DECLARE_INTERFACE(DisplayProvider, DisplayProvider_iid)
27 
28 
29 class InputProvider {
30 public:
31  virtual ~InputProvider() {}
32  virtual InputPluginList getInputPlugins() = 0;
33  virtual void destroyInputPlugins() = 0;
34 };
35 
36 #define InputProvider_iid "com.highfidelity.plugins.input"
37 Q_DECLARE_INTERFACE(InputProvider, InputProvider_iid)
38 
39 class CodecProvider {
40 public:
41  virtual ~CodecProvider() {}
42  virtual CodecPluginList getCodecPlugins() = 0;
43 };
44 
45 #define CodecProvider_iid "com.highfidelity.plugins.codec"
46 Q_DECLARE_INTERFACE(CodecProvider, CodecProvider_iid)
47 
48 class SteamClientProvider {
49 public:
50  virtual ~SteamClientProvider() {}
51  virtual SteamClientPluginPointer getSteamClientPlugin() = 0;
52 };
53 
54 class OculusPlatformProvider {
55 public:
56  virtual OculusPlatformPluginPointer getOculusPlatformPlugin() = 0;
57 };
58 
59 #define SteamClientProvider_iid "com.highfidelity.plugins.steamclient"
60 Q_DECLARE_INTERFACE(SteamClientProvider, SteamClientProvider_iid)
61 
62 #define OculusPlatformProvider_iid "com.highfidelity.plugins.oculusplatform"
63 Q_DECLARE_INTERFACE(OculusPlatformProvider, OculusPlatformProvider_iid)