45 lines · 1.2 KB · C++
RawDownload
////  InputPlugin.cpp//  input-plugins/src/input-plugins////  Created by Sam Gondelman on 7/13/2015//  Copyright 2015 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html//#include "InputPlugin.h" #include <plugins/PluginManager.h> #include "KeyboardMouseDevice.h"#include "SDL2Manager.h"#include "SixenseManager.h"#include "ViveControllerManager.h" // TODO migrate to a DLL model where plugins are discovered and loaded at runtime by the PluginManager classInputPluginList getInputPlugins() {    InputPlugin* PLUGIN_POOL[] = {        new KeyboardMouseDevice(),        new SDL2Manager(),        new SixenseManager(),        new ViveControllerManager(),        nullptr    };     InputPluginList result;    for (int i = 0; PLUGIN_POOL[i]; ++i) {        InputPlugin * plugin = PLUGIN_POOL[i];        if (plugin->isSupported()) {            plugin->init();            result.push_back(InputPluginPointer(plugin));        }    }    return result;} void saveInputPluginSettings(const InputPluginList& plugins) {    foreach (auto inputPlugin, plugins) {        inputPlugin->saveSettings();    }}