aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/shout_output_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-10output/shout: refactor check_block_param() to a functionMax Kellermann1-18/+15
Don't use macro magic, don't dereference the block_param.
2012-10-02output/shout: move code to my_shout_configure()Max Kellermann1-31/+40
Eliminate the evil goto.
2012-10-02output/{recorder,shout}: call encoder_read() in a loopMax Kellermann1-8/+10
This is necessary for Ogg packets that span more than one page.
2012-10-02output/shout: eliminate struct shout_bufferMax Kellermann1-7/+3
Move the raw buffer to struct shout_data.
2012-10-02output/shout: remove shout_buffer.lenMax Kellermann1-9/+4
Make it a local variable instead.
2012-10-02output/shout: fix memory leak in error handlerMax Kellermann1-2/+7
2012-10-02output/shout: make variables more localMax Kellermann1-49/+26
2011-09-19output_plugin: the plugin allocates the audio_output objectMax Kellermann1-24/+39
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.
2011-09-17output: rename plugin variablesMax Kellermann1-1/+1
Consistent naming.
2011-09-17output: per-plugin headerMax Kellermann1-0/+1
Move the "extern" declarations from output_list.c, for more type safety.
2011-09-17output: rename plugin source filesMax Kellermann1-0/+0
2011-09-09conf: get_block_param() returns a const pointerMax Kellermann1-1/+1
No caller needs to write.
2011-07-20encoder_plugin: add method pre_tag()Max Kellermann1-1/+1
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.
2011-07-19output/shout: fix a memory leakJonathan Neuschäfer1-1/+1
2011-07-18output/shout: fix a memory leakJonathan Neuschäfer1-12/+16
2011-02-09output/shout: add possibility to set urlThomas Jansen1-0/+7
Added a new optional parameter for the shout plugin called "url".
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-11-08output/shout: artist comes first in stream titleMax Kellermann1-1/+1
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.
2010-11-05output/shout: implement delay()Max Kellermann1-8/+13
This makes the plugin more responsive to control commands, because it will listen to control events while waiting.
2010-09-25eliminate g_error() usageThomas Jansen1-2/+3
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.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
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.
2009-10-21audio_format: wildcards allowed in audio_format configurationMax Kellermann1-2/+7
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.
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann1-2/+2
2009-08-14output/shout: minimize the unpause latencyMax Kellermann1-0/+7
During the pause loop, manually sleep for 500ms if shout_delay() returns a value greater than that. Don't exhaust libshout's buffer.
2009-06-03conf: eliminated CamelCaseMax Kellermann1-1/+1
Renamed all remaining CamelCase functions.
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
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.
2009-02-27tag: no CamelCaseMax Kellermann1-2/+1
Renamed numOfItems to num_items.
2009-02-26output_plugin: report errors with GErrorMax Kellermann1-77/+96
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.
2009-02-26shout: use config_get_block_unsigned()Max Kellermann1-6/+3
Eliminated manual integer parsing.
2009-02-25output_plugin: don't pass audio_output object to method init()Max Kellermann1-6/+3
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.
2009-02-23output: pass the music chunk pointer as void*, not char*Max Kellermann1-1/+1
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.
2009-02-23output_api: play() returns a lengthMax Kellermann1-2/+5
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.
2009-02-22shout: removed shout_plugin.hMax Kellermann1-1/+28
There are no plugins left which require shout_plugin.h. Moved the struct declaration to shout_plugin.c.
2009-02-22shout: removed shout_encoder_pluginsMax Kellermann1-11/+0
This array is empty, and is not used anymore.
2009-02-22shout: use the new encoder APIMax Kellermann1-33/+101
Removed shout's encoder plugin API in favor of the new generic encoder plugin API.
2009-02-22shout: merged open_shout_conn() into my_shout_open_device()Max Kellermann1-10/+2
The method implementation my_shout_open_device() consists of only one line, the call to open_shout_conn(). Merge both functions into one.
2009-02-22shout: bool return values instead of intMax Kellermann1-27/+28
Return true/false instead of 0/-1.
2009-02-09shout: clear buffer before calling the encoderMax Kellermann1-2/+7
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.
2009-02-09shout: don't postpone metadataMax Kellermann1-32/+12
Don't duplicate the tag received by the send_metadata() method - send it to the shout server directly.
2009-02-09shout: use libshout's synchronizationMax Kellermann1-21/+4
Removed the manual timer synchronization from the shout plugin. libshout's shout_sync() function does it for us.
2009-02-09shout: switch to blocking modeMax Kellermann1-73/+7
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.
2009-02-09shout: removed shout_data.tag_to_sendMax Kellermann1-8/+6
When shout_data.tag!=NULL, there is a "tag to send". The tag_to_send flag is redundant.
2009-02-09shout: removed shout_data.shout_errorMax Kellermann1-3/+0
That variable is set in handle_shout_error(), but is never read.
2009-01-30output_api: moved the command check out of method pause()Max Kellermann1-10/+3
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().
2009-01-25use g_free() instead of free()Max Kellermann1-1/+1
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.
2009-01-25conf: const pointers in block get functionsMax Kellermann1-1/+1
All config_get_block_*() functions should accept constant config_param pointers.
2009-01-18conf: added config_get_block_unsigned()Max Kellermann1-8/+2
Eliminate some more getBlockParam() invocations.
2009-01-18conf: added config_get_block_string()Max Kellermann1-53/+29
This replaces lots of getBlockParam() invocations.
2009-01-17conf: replaced getBoolBlockParam() with config_get_block_bool()Max Kellermann1-3/+1
No "force" parameter, pass a default value instead.