summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-06java/String: remove unnecessary `env` parameterMax Kellermann
2021-04-06java/String: add `const`Max Kellermann
2021-04-06java/Ref: add nullptr comparisonMax Kellermann
2021-04-06java/Ref: add nullptr constructorMax Kellermann
2021-04-06Java/String: inherit the super class constructorMax Kellermann
2021-04-06Java: no namespace indentMax Kellermann
2021-04-06java/Ref: add move operatorMax Kellermann
2021-04-06java/Ref: remove `const`, add default initialiserMax Kellermann
2021-04-06java/Ref: add nullptr check to destructorMax Kellermann
May allow the compiler to optimize calls away.
2021-03-29lib/curl/Multi: reword API documentationMax Kellermann
2021-03-29lib/curl/Multi: move operator bool() downMax Kellermann
2021-03-29lib/curl/Multi: rename parametersMax Kellermann
2021-03-26Add npupnp supportJean-Francois Dockes
libnpupnp is a C++ modification of libupnp. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-24Support new tags in proxy pluginSimon Persson
Add support for the following tags when using the proxy database plugin: WORK CONDUCTOR LABEL GROUPING MUSICBRAINZ_WORKID COMPOSERSORT ENSEMBLE MOVEMENT MOVEMENTNUMBER LOCATION
2021-03-13Merge branch 'v0.22.x'Max Kellermann
2021-03-13gme: add support for rsn filesJohn Regan
Upcoming release of game-music-emu will support it, details here: https://bitbucket.org/mpyne/game-music-emu/pull-requests/23/rsn-support
2021-03-13output/wasapi: use calculated new buffer instead old oneShen-Ta Hsieh
2021-03-10Added cross-origin header to http headers of the http output.bitkeeper
The current http output doesn't provide a header for cross-origin support. This prevents to use the mpd http stream directly from an other webapplication due the origin from the webpage differs from then the audio stream. The fix is to add the following header to the http response: Access-Control-Allow-Origin: *
2021-03-10Add tags relevant to classical music.Simon Persson
This commit adds some tags that are (mostly) interesting for listeners of classical music. Ensemble -------- This is an ensemble that is playing the music, such as Wiener Philharmoniker. The tag can be used to distinguish the ensemble from the conductor, composer, soloist, and ensemble, that are generally all in the "ARTIST" tag. Movement ------- The movement number and movement (name) of this track, i.e. "II" and "Allegro". ComposerSort ------------ Allows us to look for Beethoven's 9th under B, for Beethoven, not L for Ludwig. Location -------- This is the location of the recording, e.g. "Wiener Musikverein".
2021-03-10Merge branch 'v0.22.x'Max Kellermann
2021-03-10output/wasapi: implement Drain()Max Kellermann
2021-03-10output/wasapi: move the "is_started" flag to class WasapiOutputThreadMax Kellermann
2021-03-10output/wasapi: eliminate `friend` declarationMax Kellermann
2021-03-10output/wasapi: implement Cancel() properlyMax Kellermann
Calling consume_all() is illegal in the producer thread.
2021-03-10output/wasapi: add field `paused`Max Kellermann
Fixes bogus Delay() results at the start of playback, because Delay() thinks the output is paused.
2021-03-10output/wasapi: initialize is_started in Open()Max Kellermann
2021-03-10output/wasapi: move the thread->Play() call right before the consumed_size checkMax Kellermann
Fixes a bogus assertion failure (which can now be removed).
2021-03-10output/wasapi: make device_config `const`Max Kellermann
2021-03-10output/wasapi: move runtime fields below configuration fieldsMax Kellermann
2021-03-10output/wasapi: make configuration fields `const`Max Kellermann
2021-03-10output/wasapi: stop the IAudioClient while pausedMax Kellermann
Instead of generating silence, do nothing, don't waste CPU time.
2021-03-10output/wasapi: combine two `if` statements to one `switch`Max Kellermann
2021-03-10output/wasapi: add method WasapiOutputThread::InterruptWaiter()Max Kellermann
2021-03-10output/wasapi: remove the broken Delay() calculation codeMax Kellermann
This code is complicated - and broken: the producer thread is not allowed to call consumer methods. Also the code is not necessary because this plugin implements Interrupt().
2021-03-10output/wasapi: rename OpenDevice() to ChooseDevice()Max Kellermann
OpenDevice was a confusing name because it does not actually open a device.
2021-03-10output/wasapi: make `enumerator` a local variableMax Kellermann
2021-03-08output/wasapi: start after the buffer has been filledMax Kellermann
Postpone the Start() call until there is something to be played.
2021-03-08output/wasapi: move Start()/Stop() calls to WasapiOutputThread::Work()Max Kellermann
2021-03-08win32/HResult: support AUDCLNT_E_NOT_{INITIALIZED,STOPPED}Max Kellermann
2021-03-08win32/HResult: try to use FormatMessage()Max Kellermann
2021-03-08output/wasapi: check for exceptions after Wait()Max Kellermann
This finishes problems which occur early in the WasapiOutputThread; previously, the error was ignored and the output blocked forever without doing anything (and without reporting the error).
2021-03-08output/wasapi: rename method WaitDataPoped() to Wait()Max Kellermann
2021-03-08output/wasapi: make the Thread a field, not a base classMax Kellermann
2021-03-08output/wasapi: start the WasapiOutputThread in its constructorMax Kellermann
2021-03-08output/wasapi: Finish() calls Join()Max Kellermann
2021-03-08output/wasapi: remove the thread management code from DoDisable()Max Kellermann
This is duplicate; this has already been done in Close().
2021-03-08test/run_output: call AudioOutput::Drain()Max Kellermann
2021-03-08output/wasapi: don't clear the exception in CheckException()Max Kellermann
This is pointless; the method cannot be called again anyway.
2021-03-08output/wasapi: remove the "thrown" fieldMax Kellermann
It is pointless to let WasapiOutputThread wait for the CheckException() call.
2021-03-08output/wasapi: move catch block to the Work() function levelMax Kellermann
If an exception has been caught, the method cannot continue playback, therefore it doesn't make sense to have the "catch" block inside the "while" block (and not break the loop after catching an exception).