![]() |
drumstick 2.10.0
C++ MIDI libraries using Qt objects, idioms, and style.
|
Client management. More...
#include <alsaclient.h>

Classes | |
| class | SequencerInputThread |
| This class manages event input from the ALSA sequencer. More... | |
Signals | |
| void | eventReceived (drumstick::ALSA::SequencerEvent *ev) |
| Signal emitted when an event is received. More... | |
Public Member Functions | |
| MidiClient (QObject *parent=nullptr) | |
| Constructor. More... | |
| virtual | ~MidiClient () |
| Destructor. More... | |
| void | open (const QString deviceName="default", const int openMode=SND_SEQ_OPEN_DUPLEX, const bool blockMode=false) |
| Open the sequencer device. More... | |
| void | open (snd_config_t *conf, const QString deviceName="default", const int openMode=SND_SEQ_OPEN_DUPLEX, const bool blockMode=false) |
| Open the sequencer device, providing a configuration object pointer. More... | |
| void | close () |
| Close the sequencer device. More... | |
| void | startSequencerInput () |
| Starts reading events from the ALSA sequencer. | |
| void | stopSequencerInput () |
| Stops reading events from the ALSA sequencer. | |
| MidiPort * | createPort () |
| Create and attach a new MidiPort instance to this client. More... | |
| MidiQueue * | createQueue () |
| Create and return a new MidiQueue associated to this client. More... | |
| MidiQueue * | createQueue (QString const &name) |
| Create and return a new MidiQueue with the given name, associated to this client. More... | |
| MidiQueue * | getQueue () |
| Get the MidiQueue instance associated to this client. More... | |
| MidiQueue * | useQueue (int queue_id) |
| Create a new MidiQueue instance using a queue already existing in the system, associating it to the client. More... | |
| MidiQueue * | useQueue (const QString &name) |
| Create a new MidiQueue instance using a queue already existing in the system, associating it to the client. More... | |
| MidiQueue * | useQueue (MidiQueue *queue) |
| Associate an existing MidiQueue instance to the client. More... | |
| void | portAttach (MidiPort *port) |
| Attach a MidiPort instance to this client. More... | |
| void | portDetach (MidiPort *port) |
| Detach a MidiPort instance from this client. More... | |
| void | detachAllPorts () |
| Detach all the ports belonging to this client. | |
| void | addEventFilter (int evtype) |
| Add an event filter to the client. More... | |
| void | output (SequencerEvent *ev, bool async=false, int timeout=-1) |
| Output an event using the library output buffer. More... | |
| void | outputDirect (SequencerEvent *ev, bool async=false, int timeout=-1) |
| Output an event directly to the sequencer. More... | |
| void | outputBuffer (SequencerEvent *ev) |
| Output an event using the library output buffer, without draining the buffer. More... | |
| void | drainOutput (bool async=false, int timeout=-1) |
| Drain the library output buffer. More... | |
| void | synchronizeOutput () |
| Wait until all sent events are processed. More... | |
| int | getClientId () |
| Gets the client ID. More... | |
| snd_seq_type_t | getSequencerType () |
| Returns the type snd_seq_type_t of the given sequencer handle. More... | |
| snd_seq_t * | getHandle () |
| Returns the sequencer handler managed by ALSA. More... | |
| bool | isOpened () |
| Returns true if the sequencer is opened. More... | |
| size_t | getOutputBufferSize () |
| Gets the size of the library output buffer for the ALSA client. More... | |
| void | setOutputBufferSize (size_t newSize) |
| Sets the size of the library output buffer for the ALSA client. More... | |
| size_t | getInputBufferSize () |
| Gets the size of the library input buffer for the ALSA client. More... | |
| void | setInputBufferSize (size_t newSize) |
| Sets the size of the library input buffer for the ALSA client. More... | |
| QString | getDeviceName () |
| Returns the name of the sequencer device. More... | |
| int | getOpenMode () |
| Returns the last open mode used in open() More... | |
| bool | getBlockMode () |
| Returns the last block mode used in open() More... | |
| void | setBlockMode (bool newValue) |
| Change the blocking mode of the client. More... | |
| QString | getClientName () |
| Gets the client's public name. More... | |
| QString | getClientName (const int clientId) |
| Gets the public name corresponding to the given Client ID. More... | |
| void | setClientName (QString const &newName) |
| Changes the public name of the ALSA sequencer client. More... | |
| bool | getBroadcastFilter () |
| Gets the broadcast filter usage of the client. More... | |
| void | setBroadcastFilter (bool newValue) |
| Sets the broadcast filter usage of the client. More... | |
| bool | getErrorBounce () |
| Get the error-bounce usage of the client. More... | |
| void | setErrorBounce (bool newValue) |
| Sets the error-bounce usage of the client. More... | |
| ClientInfo & | getThisClientInfo () |
| Gets the ClientInfo object holding data about this client. More... | |
| void | setThisClientInfo (const ClientInfo &val) |
| Sets the data supplied by the ClientInfo object into the ALSA sequencer client. More... | |
| MidiPortList | getMidiPorts () const |
| Gets the list of MidiPort instances belonging to this client. More... | |
| ClientInfoList | getAvailableClients () |
| Gets the list of clients from the ALSA sequencer. More... | |
| PortInfoList | getAvailableInputs () |
| Gets the available user input ports in the system. More... | |
| PortInfoList | getAvailableOutputs () |
| Gets the available user output ports in the system. More... | |
| SystemInfo & | getSystemInfo () |
| Gets a SystemInfo instance with the updated state of the system. More... | |
| QList< int > | getAvailableQueues () |
| Get a list of the existing queues. More... | |
| PoolInfo & | getPoolInfo () |
| Gets a PoolInfo instance with an updated state of the client memory pool. More... | |
| void | setPoolInfo (const PoolInfo &info) |
| Applies (updates) the client's PoolInfo data into the system. More... | |
| void | setPoolInput (int size) |
| Sets the size of the client's input pool. More... | |
| void | setPoolOutput (int size) |
| Sets the size of the client's output pool. More... | |
| void | setPoolOutputRoom (int size) |
| Sets the room size of the client's output pool. More... | |
| void | resetPoolInput () |
| Resets the client input pool. More... | |
| void | resetPoolOutput () |
| Resets the client output pool. More... | |
| void | dropInput () |
| Clears the client's input buffer and and remove events in sequencer queue. More... | |
| void | dropInputBuffer () |
| Remove all events on user-space input buffer. More... | |
| void | dropOutput () |
| Clears the client's output buffer and and remove events in sequencer queue. More... | |
| void | dropOutputBuffer () |
| Removes all events on the library output buffer. More... | |
| void | removeEvents (const RemoveEvents *spec) |
| Removes events on input/output buffers and pools. More... | |
| SequencerEvent * | extractOutput () |
| Extracts (and removes) the first event in the output buffer. More... | |
| int | outputPending () |
| Returns the size of pending events on the output buffer. More... | |
| int | inputPending (bool fetch) |
| Gets the size of the events on the input buffer. More... | |
| int | getQueueId (const QString &name) |
| Gets the queue's numeric identifier corresponding to the provided name. More... | |
| void | addListener (QObject *listener) |
| Adds a QObject to the listeners list. More... | |
| void | removeListener (QObject *listener) |
| Removes a QObject listener from the listeners list. More... | |
| void | setEventsEnabled (const bool bEnabled) |
| Enables the notification of received SequencerEvent instances to the listeners registered with addListener() More... | |
| bool | getEventsEnabled () const |
| Returns true if the events mode of delivery has been enabled. More... | |
| void | setHandler (SequencerEventHandler *handler) |
| Sets a sequencer event handler enabling the callback delivery mode. More... | |
| bool | parseAddress (const QString &straddr, snd_seq_addr &result) |
| Parse a text address representation, returning an ALSA address record. More... | |
| void | setRealTimeInput (bool enabled) |
| Enables real-time priority for the MIDI input thread. More... | |
| bool | realTimeInputEnabled () |
| Return the real-time priority setting for the MIDI input thread. More... | |
Protected Member Functions | |
| void | doEvents () |
| Dispatch the events received from the Sequencer. More... | |
| void | applyClientInfo () |
| This internal method applies the ClientInfo data to the ALSA sequencer client. | |
| void | readClients () |
| Reads the ALSA sequencer's clients list. | |
| void | freeClients () |
| Releases the list of ALSA sequencer's clients. | |
| void | updateAvailablePorts () |
| Update the internal lists of user ports. | |
| PortInfoList | filterPorts (unsigned int filter) |
| Gets a list of the available user ports in the system, filtered by the given bitmap of desired capabilities. More... | |
| const char * | _getDeviceName () |
| Gets the internal sequencer device name. More... | |
| int | getPollDescriptorsCount (short events) |
| Returns the number of poll descriptors. More... | |
| int | pollDescriptors (struct pollfd *pfds, unsigned int space, short events) |
| Get poll descriptors. More... | |
| unsigned short | pollDescriptorsRevents (struct pollfd *pfds, unsigned int nfds) |
| Gets the number of returned events from poll descriptors. More... | |
| void | _setClientName (const char *name) |
| Sets the client name. More... | |
| int | createSimplePort (const char *name, unsigned int caps, unsigned int type) |
| Create an ALSA sequencer port, without using MidiPort. More... | |
| void | deleteSimplePort (int port) |
| Remove an ALSA sequencer port. More... | |
| void | connectFrom (int myport, int client, int port) |
| Subscribe one port from another arbitrary sequencer client:port. More... | |
| void | connectTo (int myport, int client, int port) |
| Subscribe one port to another arbitrary sequencer client:port. More... | |
| void | disconnectFrom (int myport, int client, int port) |
| Unsubscribe one port from another arbitrary sequencer client:port. More... | |
| void | disconnectTo (int myport, int client, int port) |
| Unsubscribe one port to another arbitrary sequencer client:port. More... | |
Client management.
This class represents an ALSA sequencer client
Definition at line 218 of file alsaclient.h.
|
signal |
Signal emitted when an event is received.
It is recommended to use Qt::UniqueConnection with this signal.
| ev | pointer to the received event. Receiver gets the ownership of the SequencerEvent pointer. |
Referenced by MidiClient::doEvents().