nomlib
Loading...
Searching...
No Matches
nom::EventHandler Class Reference

Event handling abstraction. More...

#include <EventHandler.hpp>

Public Types

enum  JoystickHandlerType { NO_EVENT_HANDLER = 0 , SDL_JOYSTICK_EVENT_HANDLER , GAME_CONTROLLER_EVENT_HANDLER }
typedef EventHandler self_type

Public Member Functions

 EventHandler (const EventHandler &rhs)=delete
 Disabled copy constructor.
EventHandler & operator= (const EventHandler &rhs)=delete
 Disabled copy assignment operator.
nom::size_type num_events () const
 Get the total number of enqueued events.
nom::size_type num_event_watchers () const
 Get the total number of event watchers.
JoystickEventHandlerjoystick_event_handler () const
 Get a non-owned pointer to the joystick device event handler.
GameControllerEventHandlergame_controller_event_handler () const
 Get a non-owned pointer to the game controller device event handler.
JoystickHandlerType joystick_event_type () const
bool enable_joystick_polling ()
 Initialize joystick events polling.
bool enable_game_controller_polling ()
 Initialize game controller events polling.
void disable_joystick_polling ()
 Shutdown the joystick events polling subsystem.
void disable_game_controller_polling ()
 Shutdown the game controller events polling subsystem.
bool poll_event (Event &ev)
 Enumerate the available events.
void push_event (const Event &ev)
 Enqueue an event.
void flush_event (Event::EventType type)
 Clear an event from the queue.
void flush_events (Event::EventType type)
 Clear events from the queue.
void flush_events ()
 Clear the events queue.
void append_event_watch (const event_filter &filter, void *data)
 Add an event listener.
void remove_event_watch (const event_filter &filter)
 Erase an event listener.
void remove_event_watchers ()
 Erase all event watchers.

Private Member Functions

bool pop_event (Event &ev)
void process_events ()
 Enumerate the available events from the underlying platform.
void process_event (const SDL_Event *ev)
 Enumerate the available events from the underlying platform.
void process_joystick_event (const SDL_Event *ev)
void process_game_controller_event (const SDL_Event *ev)

Private Attributes

std::deque< Eventevents_
 Enqueued events.
std::vector< std::unique_ptr< event_watcher > > event_watchers_
nom::size_type max_events_count_ = 0
 The maximum number of events processed per queue cycle – i.e.: one frame of the game's update loop.
void * joystick_event_handler_ = nullptr
JoystickHandlerType joystick_event_type_ = NO_EVENT_HANDLER

Detailed Description

Event handling abstraction.

   [DESCRIPTION STUB]

Definition at line 49 of file EventHandler.hpp.

Member Typedef Documentation

◆ self_type

typedef EventHandler nom::EventHandler::self_type

Definition at line 52 of file EventHandler.hpp.

Member Enumeration Documentation

◆ JoystickHandlerType

enum nom::EventHandler::JoystickHandlerType

Definition at line 54 of file EventHandler.hpp.

Member Function Documentation

◆ append_event_watch()

void nom::EventHandler::append_event_watch ( const event_filter & filter,
void * data )

Add an event listener.

Parameters
dataUser-defined data; it is your responsibility to free this data pointer!

◆ enable_game_controller_polling()

bool nom::EventHandler::enable_game_controller_polling ( )

Initialize game controller events polling.

See also
nom::GameControllerEventHandler

◆ enable_joystick_polling()

bool nom::EventHandler::enable_joystick_polling ( )

Initialize joystick events polling.

See also
nom::JoystickEventHandler

◆ flush_event()

void nom::EventHandler::flush_event ( Event::EventType type)

Clear an event from the queue.

Parameters
Thetype of event to remove.

◆ flush_events()

void nom::EventHandler::flush_events ( Event::EventType type)

Clear events from the queue.

Parameters
Thetype of event to remove.

◆ game_controller_event_handler()

GameControllerEventHandler * nom::EventHandler::game_controller_event_handler ( ) const

Get a non-owned pointer to the game controller device event handler.

Remarks
This pointer is invalid until an explicit call has been made to nom::EventHandler::enable_game_controller_polling.
See also
nom::EventHandler::joystick_event_type

◆ joystick_event_handler()

JoystickEventHandler * nom::EventHandler::joystick_event_handler ( ) const

Get a non-owned pointer to the joystick device event handler.

Remarks
This pointer is invalid until an explicit call has been made to nom::EventHandler::enable_joystick_polling.
See also
nom::EventHandler::joystick_event_type

◆ poll_event()

bool nom::EventHandler::poll_event ( Event & ev)

Enumerate the available events.

Parameters
evThe nom::Event to use for the retrieved event.

◆ push_event()

void nom::EventHandler::push_event ( const Event & ev)

Enqueue an event.

Remarks
This can be used to simulate synthetic input events.

Member Data Documentation

◆ event_watchers_

std::vector<std::unique_ptr<event_watcher> > nom::EventHandler::event_watchers_
private

Definition at line 164 of file EventHandler.hpp.

◆ events_

std::deque<Event> nom::EventHandler::events_
private

Enqueued events.

See also
nom::EventHandler::process_event

Definition at line 162 of file EventHandler.hpp.

◆ joystick_event_handler_

void* nom::EventHandler::joystick_event_handler_ = nullptr
private

Definition at line 170 of file EventHandler.hpp.

◆ joystick_event_type_

JoystickHandlerType nom::EventHandler::joystick_event_type_ = NO_EVENT_HANDLER
private

Definition at line 171 of file EventHandler.hpp.

◆ max_events_count_

nom::size_type nom::EventHandler::max_events_count_ = 0
private

The maximum number of events processed per queue cycle – i.e.: one frame of the game's update loop.

Definition at line 168 of file EventHandler.hpp.


The documentation for this class was generated from the following file: