JUCE API reference
Loading...
Searching...
No Matches
Public Member Functions | List of all members
juce::universal_midi_packets::Output Class Reference

An output (from the JUCE project's perspective) that sends messages to an endpoint. More...

Public Member Functions

 Output ()
 Creates a disconnected output.
 
 ~Output ()
 Destructor.
 
 Output (Output &&) noexcept
 
Output & operator= (Output &&) noexcept
 
 Output (const Output &)=delete
 
Output & operator= (const Output &)=delete
 
EndpointId getEndpointId () const
 Returns this connection's endpoint.
 
bool send (Iterator beginIterator, Iterator endIterator)
 Sends a range of messages to this endpoint.
 
void addDisconnectionListener (DisconnectionListener &r)
 Attaches a listener that will be notified when this endpoint is disconnected.
 
void removeDisconnectionListener (DisconnectionListener &r)
 Removes a disconnection listener.
 
bool isAlive () const
 True if this connection is currently active.
 
 operator bool () const
 

Detailed Description

An output (from the JUCE project's perspective) that sends messages to an endpoint.

An Output is conceptually similar to a unique_ptr, in that it's a nullable move-only type. You can check the null state of an instance by calling isAlive(). isAlive() will return true for an Output that's currently connected, or false otherwise. In particular, isAlive() will return false for a default-constructed Output. If isAlive() returns false, you should avoid calling other member functions: although this won't result in undefined behaviour, none of the functions will produce useful results in this state.

In the case that the device connected to the Output becomes unavailable (e.g. it is unplugged or the bluetooth connection is dropped), the Output will null itself, and calls to isAlive() will return false. You can register a callback to handle this event by calling addDisconnectionListener().

A particular pitfall to watch out for is calling addDisconnectionListener() and removeDisconnectionListener() on a default-constructed Output or other Output for which isAlive() returns false. This will have no effect. Instead, if you want to attach listeners to an Output, you should use Session::connectOutput() to create an Output, and ensure that isAlive() returns true on that Output before attaching listeners.

Constructor & Destructor Documentation

◆ Output() [1/3]

juce::universal_midi_packets::Output::Output ( )

Creates a disconnected output.

Sending messages to a default-constructed output won't do anything.

Instances should only be created on the main thread.

◆ ~Output()

juce::universal_midi_packets::Output::~Output ( )

Destructor.

Instances should only be destroyed on the main thread in order to avoid potential races with disconnection callbacks, which also happen on the main thread.

◆ Output() [2/3]

juce::universal_midi_packets::Output::Output ( Output &&  )
noexcept

◆ Output() [3/3]

juce::universal_midi_packets::Output::Output ( const Output &  )
delete

Member Function Documentation

◆ operator=() [1/2]

Output & juce::universal_midi_packets::Output::operator= ( Output &&  )
noexcept

◆ operator=() [2/2]

Output & juce::universal_midi_packets::Output::operator= ( const Output &  )
delete

◆ getEndpointId()

EndpointId juce::universal_midi_packets::Output::getEndpointId ( ) const

Returns this connection's endpoint.

◆ send()

bool juce::universal_midi_packets::Output::send ( Iterator  beginIterator,
Iterator  endIterator 
)

Sends a range of messages to this endpoint.

If isAlive() returns false at the point where this function is called, then this function has no effect.

Returns true on success, false on failure.

You may send messages using any protocol, and they will be converted automatically to the protocol expected by the receiver.

This function may be called from a background thread (i.e. not the main thread).

◆ addDisconnectionListener()

void juce::universal_midi_packets::Output::addDisconnectionListener ( DisconnectionListener &  r)

Attaches a listener that will be notified when this endpoint is disconnected.

Disconnection notifications will be sent on the main thread, and listeners should only be added or removed on the main thread in order to avoid potential data races.

Calling this function on an instance for which isAlive() returns false has no effect.

◆ removeDisconnectionListener()

void juce::universal_midi_packets::Output::removeDisconnectionListener ( DisconnectionListener &  r)

Removes a disconnection listener.

See also
addDisconnectionListener()

◆ isAlive()

bool juce::universal_midi_packets::Output::isAlive ( ) const

True if this connection is currently active.

This function returns false for a default-constructed instance.

Referenced by operator bool().

◆ operator bool()

juce::universal_midi_packets::Output::operator bool ( ) const
inlineexplicit

References isAlive().


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