* Make Markdown code block languages consistent
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix indentation
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
---------
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Remove redundant feature dependencies
The following features are already dependencies of openhab-runtime-base:
* openhab-core-base
* openhab-core-model-item
* openhab-core-model-script
* openhab-transport-mdns
See also: https://github.com/openhab/openhab-addons/pull/16202#issuecomment-1876875456
* Remove redundant openhab.tp-jackson and openhab.tp-jaxb feature dependencies
Signed-off-by: Wouter Born <github@maindrain.net>
* [pulseaudio] For source, default timeout should be disconnection ASAP
To avoid weird behaviour, such as pulseaudio server storing audio data between inputstream get/read and then sending the backlog all at once when finally reading, we must disconnect immediately thereafter.
---------
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
Co-authored-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [pulseaudio] Make the process method asynchronous
And use the new 'complete' system to signal core that the sound is fully played.
---------
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [pulseaudio] Removing isIdle test
The isIdle boolean was not properly handled.
When disconnection is called, isIdle is not relevant : we should always honnor the disconnection request.
In fact, isIdle prevented disconnection when it is necessary (example : when a IOException occurs when sending audio to sink)
+Little bug fix on volume parsing: some volume request doesn't respond with a space after the comma separating left/right channel.
* [pulseaudio] Enhancement to the idle detection for disconnection
Using a counter to count client instead of a isIdle variable, which was not thread safe.
The PulseaudioSimpleProtocolStream parent class is now the sole responsible for closing source or sink stream.
* [pulseaudio] Small performance enhancement
Avoid a costly synchronized operation for a method called very often.
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [pulseaudio] Allow flexible parameters to find a given pulseaudio device
To identify the device on the pulseaudio server, you can now use the description instead of the technical id (a.k.a. "name").
To filter furthermore, you can also use the parameter additionalFilters (optional regular expressions that need to match a property value of a device on the pulseaudio server)
Closes#12555
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [pulseaudio] small fixes and rewrite
- All classes are now @NonNullByDefault
- all build warnings cleared
- no more need for a watchdog scheduled thread for every pulseaudio device : the bridge now handles sending information to child
- fix bug : exception at startup when child handler try to get information from the bridge too soon is now handled by waiting 2 seconds if necessary
- fix bug : playing MP3 with high bitrate is now OK with the replacement of the ResetableInputStream by a standard BufferedInputStream that handle mark/reset method better
- fix bug : ghost device listener no longer receive event after dispose
- fix bug : discovery doesn't show already added thing anymore
- Updating the status bridge to ONLINE only AFTER the update method is done.
- Use the bridgeStatusChanged method in the childhandler to get opportunity to test if the child could go ONLINE, (and by the way initialize the audiosink and audiosource, has they also need information from the bridge)
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
Co-authored-by: Laurent Garnier <lg.hc@free.fr>
* [pulseaudio] use thread safe collection
* [pulseaudio] source: connect pipe before store ref
* [pulseaudio] source: improve warning messages
* [pulseaudio] fix IOException when closing all sources
* [pulseaudio] prevent warning when InterruptedIOException on source close
Signed-off-by: Miguel Álvarez Díez <miguelwork92@gmail.com>