#ifndef _fencer_player_input_h
#define _fencer_player_input_h

#include "list.h"
#include "input.h"
#include "input_axis.h"

typedef struct PlayerInput {
    InputDevice* device;
    List listeners;
    void* target;
} PlayerInput;

extern PlayerInput* playerinput_new(void* target, int device);
extern void playerinput_add(PlayerInput* self, InputAxis axis, InputDelegateFn delegate);
extern void playerinput_set_device(PlayerInput* self, int device);
extern void playerinput_drop(PlayerInput* self);

impl_Drop_for(PlayerInput,
    playerinput_drop
)

#endif // !_fencer_player_input_h
