mirror of
https://github.com/citra-emu/citra.git
synced 2025-04-10 17:00:12 +00:00
46 lines
996 B
C++
46 lines
996 B
C++
// Copyright 2017 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include "core/frontend/input.h"
|
|
#include "scripted_input/scripted_buttons.h"
|
|
|
|
namespace ScriptedInput {
|
|
|
|
enum class ScriptItemType { Undefined, Run, Screenshot };
|
|
|
|
class ScriptItem {
|
|
public:
|
|
static ScriptItem Screenshot;
|
|
|
|
ScriptItemType type{ScriptItemType::Undefined};
|
|
int frames{0};
|
|
std::vector<int> buttons_active;
|
|
};
|
|
|
|
/**
|
|
* A button device factory that returns inputs from a script file
|
|
*/
|
|
class ScriptRunner final {
|
|
public:
|
|
void SetButtons(std::shared_ptr<ScriptedButtons> buttons);
|
|
void LoadScript(std::string script_name);
|
|
bool HasScript() const;
|
|
|
|
void NotifyFrameFinished();
|
|
|
|
private:
|
|
std::vector<ScriptItem> script;
|
|
int frame_number{0};
|
|
int script_index{0};
|
|
int script_frame{0};
|
|
|
|
std::shared_ptr<ScriptedButtons> scripted_buttons;
|
|
|
|
void SaveScreenshot();
|
|
};
|
|
|
|
} // namespace InputCommon
|