diff options
| author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-01-29 22:16:39 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-01-29 22:16:39 -0800 |
| commit | 1410aa182435fcca3756bbb58af90a479e9f248d (patch) | |
| tree | 53685c7e5422428869ef45d4f8de0a350dcfdd7f /src/core/frontend/camera/factory.h | |
| parent | a925473995af1832f6773faef9ca07a7957692a1 (diff) | |
| parent | cf3a272332b03640730d1434e9802e166ca931da (diff) | |
Merge pull request #2368 from wwylele/camera-2
CAM: build the service framework with a dummy implementation
Diffstat (limited to 'src/core/frontend/camera/factory.h')
| -rw-r--r-- | src/core/frontend/camera/factory.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/core/frontend/camera/factory.h b/src/core/frontend/camera/factory.h new file mode 100644 index 000000000..d68be16e5 --- /dev/null +++ b/src/core/frontend/camera/factory.h @@ -0,0 +1,41 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <memory> +#include <string> +#include "core/frontend/camera/interface.h" + +namespace Camera { + +class CameraFactory { +public: + virtual ~CameraFactory(); + + /** + * Creates a camera object based on the configuration string. + * @params config Configuration string to create the camera. The implementation can decide the + * meaning of this string. + * @returns a unique_ptr to the created camera object. + */ + virtual std::unique_ptr<CameraInterface> Create(const std::string& config) const = 0; +}; + +/** + * Registers an external camera factory. + * @param name Identifier of the camera factory. + * @param factory Camera factory to register. + */ +void RegisterFactory(const std::string& name, std::unique_ptr<CameraFactory> factory); + +/** + * Creates a camera from the factory. + * @param name Identifier of the camera factory. + * @param config Configuration string to create the camera. The meaning of this string is + * defined by the factory. + */ +std::unique_ptr<CameraInterface> CreateCamera(const std::string& name, const std::string& config); + +} // namespace Camera |
