A device, attached to the ClientBase by a ButtonNode, that records the data from a single named button device. More...
#include "clientButtonDevice.h"
Public Member Functions | |
virtual TypeHandle | force_init_type () |
ButtonEventList * | get_button_events () const |
Returns the list of recently-generated ButtonEvents. More... | |
ButtonHandle | get_button_map (int index) const |
Returns the ButtonHandle that was previously associated with the given index number by a call to set_button_map(), or ButtonHandle::none() if no button was associated. More... | |
bool | get_button_state (int index) const |
Returns true if the indicated button (identified by its index number) is currently known to be down, or false if it is up or unknown. More... | |
int | get_num_buttons () const |
Returns the number of buttons known to the ClientButtonDevice. More... | |
virtual TypeHandle | get_type () const |
bool | is_button_known (int index) const |
Returns true if the state of the indicated button is known, or false if we have never heard anything about this particular button. More... | |
virtual void | output (ostream &out) const |
void | output_buttons (ostream &out) const |
Writes a one-line string of all of the current button states. More... | |
void | set_button_map (int index, ButtonHandle button) |
Associates the indicated ButtonHandle with the button of the indicated index number. More... | |
void | set_button_state (int index, bool down) |
Sets the state of the indicated button index, where true indicates down, and false indicates up. More... | |
virtual void | write (ostream &out, int indent_level=0) const |
void | write_buttons (ostream &out, int indent_level) const |
Writes a multi-line description of the current button states. More... | |
![]() | |
virtual | ~ClientDevice () |
We don't actually call disconnect() at the ClientDevice level destructor, because by the time we get here we're already partly destructed. More... | |
void | acquire () |
Grabs the mutex associated with this particular device. More... | |
void | disconnect () |
Disconnects the ClientDevice from its ClientBase object. More... | |
ClientBase * | get_client () const |
Returns the ClientBase this device is associated with. More... | |
const string & | get_device_name () const |
Returns the device name reported to the ClientBase. More... | |
TypeHandle | get_device_type () const |
Returns the type of device this is considered to be to the ClientBase: a ClientTrackerDevice, ClientAnalogDevice, or what have you. More... | |
bool | is_connected () const |
Returns true if the device is still connected to its ClientBase, false otherwise. More... | |
void | poll () |
Causes the connected ClientBase to poll all of its clients, if necessary. More... | |
void | unlock () |
Releases the mutex associated with this particular device. More... | |
![]() | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
![]() | |
TypedObject (const TypedObject ©) | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
void | operator= (const TypedObject ©) |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. More... | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
Friends | |
class | ButtonState |
A device, attached to the ClientBase by a ButtonNode, that records the data from a single named button device.
The named device can contain any number of up/down style buttons, numbered in sequence beginning at zero; these are mapped by this class to a sequence of ButtonHandles specified by the user.
Definition at line 37 of file clientButtonDevice.h.
|
inline |
Returns the list of recently-generated ButtonEvents.
This must be periodically cleared, or the buttons will accumulate.
Definition at line 122 of file clientButtonDevice.I.
|
inline |
Returns the ButtonHandle that was previously associated with the given index number by a call to set_button_map(), or ButtonHandle::none() if no button was associated.
Definition at line 74 of file clientButtonDevice.I.
References ButtonHandle::none().
|
inline |
Returns true if the indicated button (identified by its index number) is currently known to be down, or false if it is up or unknown.
Definition at line 90 of file clientButtonDevice.I.
|
inline |
Returns the number of buttons known to the ClientButtonDevice.
This includes those buttons whose state has been seen, as well as buttons that have been associated with a ButtonHandle even if their state is unknown. This number may change as more buttons are discovered.
Definition at line 40 of file clientButtonDevice.I.
|
inline |
Returns true if the state of the indicated button is known, or false if we have never heard anything about this particular button.
Definition at line 106 of file clientButtonDevice.I.
void ClientButtonDevice::output_buttons | ( | ostream & | out | ) | const |
Writes a one-line string of all of the current button states.
Definition at line 104 of file clientButtonDevice.cxx.
|
inline |
Associates the indicated ButtonHandle with the button of the indicated index number.
When the given button index changes state, a corresponding ButtonEvent will be generated with the given ButtonHandle. Pass ButtonHandle::none() to turn off any association.
It is not necessary to call this if you simply want to query the state of the various buttons by index number; this is only necessary in order to generate ButtonEvents when the buttons change state.
Definition at line 59 of file clientButtonDevice.I.
void ClientButtonDevice::set_button_state | ( | int | index, |
bool | down | ||
) |
Sets the state of the indicated button index, where true indicates down, and false indicates up.
This may generate a ButtonEvent if the button has an associated ButtonHandle. The caller should ensure that acquire() is in effect while this call is made.
Definition at line 45 of file clientButtonDevice.cxx.
References ButtonHandle::none().
void ClientButtonDevice::write_buttons | ( | ostream & | out, |
int | indent_level | ||
) | const |
Writes a multi-line description of the current button states.
Definition at line 135 of file clientButtonDevice.cxx.
References ButtonHandle::none().