Age | Commit message (Collapse) | Author | Files | Lines |
|
The volatile keyword neither guarantees atomic access nor memory
visibility[1]. Although this is usually not a problem on x86, it is
incorrect to rely on this. Use mutex locks to protect all shared player
variables and enforce memory visibility.
[1] https://wiki.sei.cmu.edu/confluence/display/c/CON02-C.+Do+not+use+volatile+as+a+synchronization+primitive
|
|
For songs with no station associated (NULL) “(deleted)” was shown
unconditionally. Hide it. Fixes commit
4dfca5b56b441faf4938b6c8e97585f68e468039.
|
|
Iff song’s station is not the current station. This is only the case for
the song history right now.
Closes #638
|
|
Now we can show a tired icon in the history.
Closes #637.
|
|
Closes #636.
|
|
Closes #597.
|
|
The event did not contain any song data (title, artist, …), because the
playlist was destroyed by the ui command. Now the actual station switch
is deferred by introducing nextStation and letting the main loop handle
it.
Fixes issue #584.
|
|
Passing NULL to printf and the result to curl may or may not work. YMMV.
Fixes #574.
|
|
^C now works as expected: It interrupts API requests, input prompts and
audio streaming. Timeouts have been removed.
|
|
I removed most of the *BSD-related stuff, because I can’t test these. If
this breaks your build, send me a patch please.
|
|
|
|
Drops libwaitress. Adds the new dependency libcurl and drops gnutls.
I wouldn’t say writing my own HTTP library was a mistake – it was not
and the experience gained was worth it. Instead I have to acknowledge
that libcurl is just better than my own implementation. Sure, it does a
lot more than HTTP – one could call that bloat. Yet if you just want to
get the job done™ reusing code is the way to go.
See #512 and #513.
|
|
Fixes #442.
|
|
|
|
libav 9.12 and ffmpeg 2.2 have been tested.
Here’s why: My mp4 “parser” *cough* never was a mp4 parser in the sense
that it actually understood the file format. Instead it grepped the
input stream for “magic” strings (section identifiers). That alone
should be sufficient to throw away the code and rewrite it. Additionally
libfaad2 has not been updated for ages. I guess it was abandoned in
favor of libav/ffmpeg.
With libav/ffmpeg, which we support both as long as the API’s don’t
diverge too much, pianobar gains fast and reliable AAC and MP3 decoding
without bothering too much about the details. Most users will have it
installed already. On my own machine libav consumes about 2/3 CPU time
compared to the previous solution when playing AAC. Unfortunately memory
usage doubled and my attempts to disable unused protocols/formats/codec
failed due to libav’s API limitations.
While cleaning up a small detail regarding the eventcmd API has changed
too: Song duration and position are measured in seconds instead of
milliseconds now. Since libav/ffmpeg keeps track of accurate timing the
precision pianobar keeps track of can be reduced, while still being
sufficient for most users.
|
|
|
|
Introduces generic linked list structure and functions (like append,
delete, …). Removes a lot of copy&pasted code and improves code
readability/reusability.
Heads up: This change breaks libpiano’s ABI.
|
|
Increased buffer size.
|
|
Two new events: stationfetchgenre, stationaddgenre
|
|
With `history = 0` playlist items are discarded, but not freed.
|
|
New keybinding ‘v’, new setting act_createstationfromsong.
|
|
|
|
This reverts commit 35763dea799c96361e288a10eab0fbd16c36e880. It does
not work with the JSON API.
|
|
There does not seem to be an API call for that.
|
|
In random order: Thanks to Chris Eby for his work on pithos, to an
anonymous coward for sending me his Android client, to Alex Howard for
sending me the webOS client, to ZigZagJoe for providing a temporary fix
and thanks to everyone who sent Pandora a message.
Although there are a few rough edges here and there this fixes #236.
|
|
Use TLS for all actions when requested. Closes #234
|
|
See #231.
|
|
It may contain %’s and crashes. Closes #225.
|
|
You can’t handle the load? Closes #202
|
|
|
|
|
|
|
|
Closes #193 and #194
|
|
Fixes #169.
|
|
Fixes #165
|
|
Keys stay the same. Quickmix and seed suggestion API calls changed.
Listener id is not part of the url any more.
Bookmark API calls seem to be deprecated.
|
|
- Output size not limited by buffer size
- No local buffer needed
|
|
Fixes #151
|
|
|
|
Closes #141
|
|
|
|
Required to expose non-standard functions. Closes #138
|
|
Closes #136
|
|
Accepts user and password in urls now. Tests added.
|
|
Closes #88
|
|
Closes #115
|
|
|
|
Conflicts with libc strcasestr. Thanks to David Coppa.
|
|
See #99.
|
|
|