summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/inputdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/inputdev.h')
-rw-r--r--src/emu/inputdev.h43
1 files changed, 21 insertions, 22 deletions
diff --git a/src/emu/inputdev.h b/src/emu/inputdev.h
index 1c8e12c4b38..1b6dabc9bab 100644
--- a/src/emu/inputdev.h
+++ b/src/emu/inputdev.h
@@ -87,10 +87,6 @@ private:
// a single item on an input device
class input_device_item
{
-protected:
- // construction/destruction
- input_device_item(input_device &device, const char *name, void *internal, input_item_id itemid, item_get_state_func getstate, input_item_class itemclass);
-
public:
virtual ~input_device_item();
@@ -98,12 +94,12 @@ public:
input_device &device() const { return m_device; }
input_manager &manager() const;
running_machine &machine() const;
- const char *name() const { return m_name.c_str(); }
+ const std::string &name() const { return m_name; }
void *internal() const { return m_internal; }
input_item_id itemid() const { return m_itemid; }
input_item_class itemclass() const { return m_itemclass; }
input_code code() const;
- const char *token() const { return m_token.c_str(); }
+ const std::string &token() const { return m_token; }
s32 current() const { return m_current; }
// helpers
@@ -117,6 +113,9 @@ public:
virtual bool item_check_axis(input_item_modifier modifier, s32 memory) = 0;
protected:
+ // construction/destruction
+ input_device_item(input_device &device, std::string_view name, void *internal, input_item_id itemid, item_get_state_func getstate, input_item_class itemclass);
+
// internal state
input_device & m_device; // reference to our owning device
std::string m_name; // string name of item
@@ -140,15 +139,15 @@ class input_device
public:
// construction/destruction
- input_device(input_manager &manager, const char *_name, const char *_id, void *_internal);
+ input_device(input_manager &manager, std::string_view _name, std::string_view _id, void *_internal);
virtual ~input_device();
// getters
input_manager &manager() const { return m_manager; }
running_machine &machine() const { return m_manager.machine(); }
input_device_class devclass() const { return device_class(); }
- const char *name() const { return m_name.c_str(); }
- const char *id() const { return m_id.c_str(); }
+ const std::string &name() const { return m_name; }
+ const std::string &id() const { return m_id; }
int devindex() const { return m_devindex; }
input_device_item *item(input_item_id index) const { return m_item[index].get(); }
input_item_id maxitem() const { return m_maxitem; }
@@ -160,7 +159,7 @@ public:
void set_devindex(int devindex) { m_devindex = devindex; }
// item management
- input_item_id add_item(const char *name, input_item_id itemid, item_get_state_func getstate, void *internal = nullptr);
+ input_item_id add_item(std::string_view name, input_item_id itemid, item_get_state_func getstate, void *internal = nullptr);
// helpers
s32 adjust_absolute(s32 value) const { return adjust_absolute_value(value); }
@@ -192,7 +191,7 @@ class input_device_keyboard : public input_device
{
public:
// construction/destruction
- input_device_keyboard(input_manager &manager, const char *_name, const char *_id, void *_internal);
+ input_device_keyboard(input_manager &manager, std::string_view _name, std::string_view _id, void *_internal);
// helpers
void apply_steadykey() const;
@@ -209,7 +208,7 @@ class input_device_mouse : public input_device
{
public:
// construction/destruction
- input_device_mouse(input_manager &manager, const char *_name, const char *_id, void *_internal);
+ input_device_mouse(input_manager &manager, std::string_view _name, std::string_view _id, void *_internal);
protected:
// specific overrides
@@ -223,7 +222,7 @@ class input_device_lightgun : public input_device
{
public:
// construction/destruction
- input_device_lightgun(input_manager &manager, const char *_name, const char *_id, void *_internal);
+ input_device_lightgun(input_manager &manager, std::string_view _name, std::string_view _id, void *_internal);
protected:
// specific overrides
@@ -238,7 +237,7 @@ class input_device_joystick : public input_device
{
public:
// construction/destruction
- input_device_joystick(input_manager &manager, const char *_name, const char *_id, void *_internal);
+ input_device_joystick(input_manager &manager, std::string_view _name, std::string_view _id, void *_internal);
// getters
joystick_map &joymap() { return m_joymap; }
@@ -284,8 +283,7 @@ public:
void set_multi(bool multi = true) { m_multi = multi; }
// device management
- input_device *add_device(const char *name, const char *id, void *internal = nullptr);
- input_device *add_device(std::unique_ptr<input_device> &&new_device);
+ input_device &add_device(std::string_view name, std::string_view id, void *internal = nullptr);
// misc helpers
input_item_class standard_item_class(input_item_id itemid) const;
@@ -293,10 +291,11 @@ public:
protected:
// specific overrides
- virtual std::unique_ptr<input_device> make_device(const char *name, const char *id, void *internal) = 0;
+ virtual std::unique_ptr<input_device> make_device(std::string_view name, std::string_view id, void *internal) = 0;
private:
- // indexing helpers
+ // internal helpers
+ input_device &add_device(std::unique_ptr<input_device> &&new_device);
int newindex(input_device &device);
// internal state
@@ -321,7 +320,7 @@ public:
protected:
// specific overrides
- virtual std::unique_ptr<input_device> make_device(const char *name, const char *id, void *internal) override
+ virtual std::unique_ptr<input_device> make_device(std::string_view name, std::string_view id, void *internal) override
{
return std::make_unique<input_device_keyboard>(manager(), name, id, internal);
}
@@ -343,7 +342,7 @@ public:
protected:
// specific overrides
- virtual std::unique_ptr<input_device> make_device(const char *name, const char *id, void *internal) override
+ virtual std::unique_ptr<input_device> make_device(std::string_view name, std::string_view id, void *internal) override
{
return std::make_unique<input_device_mouse>(manager(), name, id, internal);
}
@@ -361,7 +360,7 @@ public:
protected:
// specific overrides
- virtual std::unique_ptr<input_device> make_device(const char *name, const char *id, void *internal) override
+ virtual std::unique_ptr<input_device> make_device(std::string_view name, std::string_view id, void *internal) override
{
return std::make_unique<input_device_lightgun>(manager(), name, id, internal);
}
@@ -386,7 +385,7 @@ public:
protected:
// specific overrides
- virtual std::unique_ptr<input_device> make_device(const char *name, const char *id, void *internal) override
+ virtual std::unique_ptr<input_device> make_device(std::string_view name, std::string_view id, void *internal) override
{
return std::make_unique<input_device_joystick>(manager(), name, id, internal);
}