Panda3D
Classes | Public Member Functions | Static Public Member Functions | Friends | List of all members
ClientButtonDevice Class Reference

A device, attached to the ClientBase by a ButtonNode, that records the data from a single named button device. More...

#include "clientButtonDevice.h"

Inheritance diagram for ClientButtonDevice:
ClientDevice TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase VrpnButtonDevice

Public Member Functions

virtual TypeHandle force_init_type ()
 
ButtonEventListget_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...
 
- Public Member Functions inherited from ClientDevice
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...
 
ClientBaseget_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...
 
- Public Member Functions inherited from TypedReferenceCount
 TypedReferenceCount (const TypedReferenceCount &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_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 &copy)
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 Returns the current reference count. More...
 
WeakReferenceListget_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 Public Member Functions inherited from ClientDevice
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedObject
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 Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 

Friends

class ButtonState
 

Detailed Description

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.

Member Function Documentation

◆ get_button_events()

ButtonEventList * ClientButtonDevice::get_button_events ( ) const
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.

Referenced by is_button_known().

◆ get_button_map()

ButtonHandle ClientButtonDevice::get_button_map ( int  index) const
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 get_button_state(), and ButtonHandle::none().

Referenced by set_button_map().

◆ get_button_state()

bool ClientButtonDevice::get_button_state ( int  index) const
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.

References is_button_known().

Referenced by get_button_map().

◆ get_num_buttons()

int ClientButtonDevice::get_num_buttons ( ) const
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.

References set_button_map().

◆ is_button_known()

bool ClientButtonDevice::is_button_known ( int  index) const
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.

References get_button_events().

Referenced by get_button_state().

◆ output_buttons()

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.

References write_buttons().

Referenced by set_button_state().

◆ set_button_map()

void ClientButtonDevice::set_button_map ( int  index,
ButtonHandle  button 
)
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.

References get_button_map().

Referenced by get_num_buttons().

◆ set_button_state()

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 ClientDevice::get_device_name(), ButtonHandle::none(), and output_buttons().

Referenced by VrpnButton::unmark().

◆ write_buttons()

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().

Referenced by output_buttons().


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