| Commit message (Collapse) | Author | Files | Lines |
|
Don't use macro magic, don't dereference the block_param.
|
|
Eliminate the evil goto.
|
|
This is necessary for Ogg packets that span more than one page.
|
|
Move the raw buffer to struct shout_data.
|
|
Make it a local variable instead.
|
|
|
|
|
|
Pass audio_output objects around instead of void pointers. This will
give some more control to the plugin, and prepares for non-blocking
audio outputs.
|
|
Consistent naming.
|
|
Move the "extern" declarations from output_list.c, for more type
safety.
|
|
|
|
No caller needs to write.
|
|
In the "vorbis" plugin, this is a copy of the old flush() method,
while flush() gets a lot of code remove, it just sets the "flush" flag
and nothing else. It doesn't start a new stream now, which should fix
a few problems in some players.
|
|
|
|
|
|
Added a new optional parameter for the shout plugin called "url".
|
|
|
|
After popular demand, I've switched the order of "artist" and "title"
in the stream title. There is no standard, and there is no reliable
way to parse those from the stream title.
|
|
This makes the plugin more responsive to control commands, because it
will listen to control events while waiting.
|
|
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
file 'mpd_error.h'. This macro uses g_critical() to print the error message
and then exits gracefully in contrast to g_error() which would internally call
abort() to produce a core dump.
The macro name is distinctive and allows to find all places with dubious error
handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
facilitate the eventual removal of this macro it was added in a new header
file rather than to an existing header file.
This fixes #2995 and #3007.
|
|
|
|
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
|
|
An asterisk means that this attribute should not be enforced, and
stays whatever it used to be. This way, some configuration values
work like masks.
|
|
|
|
During the pause loop, manually sleep for 500ms if shout_delay()
returns a value greater than that. Don't exhaust libshout's buffer.
|
|
Renamed all remaining CamelCase functions.
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
Renamed numOfItems to num_items.
|
|
Use GLib's GError library for reporting output device failures.
Note that some init() methods don't clean up properly after a failure,
but that's ok for now, because the MPD core will abort anyway.
|
|
Eliminated manual integer parsing.
|
|
audio_output_get_name() has been removed, which was the only function
left in output_api.h. The output plugin doesn't need the audio_output
object at all, remove the parameter from the init() method.
|
|
The meaning of the chunk depends on the audio format; don't suggest a
specific format by declaring the pointer as "char*", pass "void*"
instead.
|
|
The old API required an output plugin to not return until all data
passed to the play() method is consumed. Some output plugins have to
loop to fulfill that requirement, and may block during that. Simplify
these, by letting them consume only part of the buffer: make play()
return the length of the consumed data.
|
|
There are no plugins left which require shout_plugin.h. Moved the
struct declaration to shout_plugin.c.
|
|
This array is empty, and is not used anymore.
|
|
Removed shout's encoder plugin API in favor of the new generic encoder
plugin API.
|
|
The method implementation my_shout_open_device() consists of only one
line, the call to open_shout_conn(). Merge both functions into one.
|
|
Return true/false instead of 0/-1.
|
|
Always assume the buffer is empty before calling the encoder. Always
flush the buffer immediately after there has been added something.
This reduces the risk of buffer overruns, because there will never be
a "rest" in the current buffer.
|
|
Don't duplicate the tag received by the send_metadata() method - send
it to the shout server directly.
|
|
Removed the manual timer synchronization from the shout plugin.
libshout's shout_sync() function does it for us.
|
|
The non-blocking mode of libshout is sparsely documented, and MPD's
implementation had several bugs. Also removed connect throttling
code, that is done by the MPD core since 0.14.
|
|
When shout_data.tag!=NULL, there is a "tag to send". The tag_to_send
flag is redundant.
|
|
That variable is set in handle_shout_error(), but is never read.
|
|
Move the "while" loop which checks for commands to the caller
ao_pause(). This simplifies the pause() method, and lets us remove
audio_output_is_pending().
|
|
On some platforms, g_free() must be used for memory allocated by
GLib. This patch intends to correct a lot of occurrences, but is
probably not complete.
|
|
All config_get_block_*() functions should accept constant config_param
pointers.
|
|
Eliminate some more getBlockParam() invocations.
|
|
This replaces lots of getBlockParam() invocations.
|
|
No "force" parameter, pass a default value instead.
|