mame/src/osd/interface/inputman.h
Vas Crabb b98fb7c98e Small batch of input refactoring:
emu/input.cpp: Fixed regression in display of some joystick inputs.

osd/interface: Split up interface classes into a few more files to
reduce where the input device interface class needs to be included.
Made OSD independent of concrete input_device class.

osd/modules/input, emu/inputdev.cpp, emu/ioport.cpp: Allow input devices
to provide tokens for controls without standard item types and
additional default input assignments.  Fixes issues assigning Yen and
Backslash on Japanese keyboards.

ui/textbox.cpp: Added a fixed-content text box menu class for future
use.

Got main.h out of emu.h as it’s only used in a very small number of
places, mostly for getting the application name.  Added eminline.h to
attotime.h as it's used without emu.h.  Cleaned up forward declarations
in emufwd.h a little.
2023-02-05 05:01:40 +11:00

47 lines
1.0 KiB
C++

// license:BSD-3-Clause
// copyright-holders:Aaron Giles
/***************************************************************************
inputman.h
OSD interface to the input manager
***************************************************************************/
#ifndef MAME_OSD_INTERFACE_INPUTMAN_H
#define MAME_OSD_INTERFACE_INPUTMAN_H
#pragma once
#include "inputcode.h"
#include "inputfwd.h"
#include <string_view>
namespace osd {
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// interface to application input manager
class input_manager
{
protected:
virtual ~input_manager() = default;
public:
virtual bool class_enabled(input_device_class devclass) const = 0;
virtual input_device &add_device(
input_device_class devclass,
std::string_view name,
std::string_view id,
void *internal = nullptr) = 0;
};
} // namespace osd
#endif // MAME_OSD_INTERFACE_INPUTMAN_H