aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/osx_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* output/osx: use the fifo_buffer library instead of rolling ownMax Kellermann2012-03-281-56/+37
| | | | | | | | The existing buffer implementation has a major flaw: it is unable to re-fill the buffer until it has been consumed completely, leading to many occasions where the render callback needs to generate silence, just because the play() implementation was unable to append more data. The fifo_buffer library handles that well.
* output/osx: clear render buffer when there's not enough dataMax Kellermann2011-12-241-2/+3
| | | | | | When we don't have enough data, generate some silence, hoping the input buffer will fill soon. Reducing the render buffer size is not legal.
* output/osx: remove sleep call from render callbackMax Kellermann2011-12-241-4/+0
| | | | | Blocking inside the render callback is forbidden, and this sleep call didn't make any sense.
* output/osx: don't drain the buffer when closingMax Kellermann2011-09-011-6/+0
| | | | Eliminate an unnecessary source of deadlocks.
* output/osx: signal the GCond while mutex is lockedMax Kellermann2011-09-011-1/+1
|
* output/osx: fix up audio format first, then apply it to deviceMax Kellermann2011-01-071-9/+10
| | | | | | | | | This is a MPD 0.16 regression: when playing a 24 bit file, the switch to 16 bit was made only partially, after mBytesPerPacket and mBytesPerFrame had already been applied. That means mBytesPerFrame referred to 24 bit, and mBitsPerChannel referred to 16 bits. Of course, that cannot work.
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-021-4/+15
| | | | | | This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
* include config.h in all sourcesMax Kellermann2009-11-121-1/+2
| | | | | | 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.
* output/osx: fix the OS X 10.6 buildPatrik Weiskircher2009-09-201-0/+1
| | | | Include CoreServices/CoreServices.h.
* all: Update copyright header.Avuton Olrich2009-03-131-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.
* output_plugin: report errors with GErrorMax Kellermann2009-02-261-12/+29
| | | | | | | 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.
* osx: use OSStatus and GetMacOSStatusCommentString()Max Kellermann2009-02-261-15/+24
| | | | | The return type of most OS X functions is OSStatus, not int. We can get a nice error message from GetMacOSStatusCommentString(), log it.
* osx: start the audio device in the open() methodMax Kellermann2009-02-261-17/+8
| | | | | | Don't call AudioOutputUnitStart() in the play() method, do it after the device has been opened. We can eliminate the "started" property now, because the device is always started when it's open.
* osx: removed commented codeMax Kellermann2009-02-261-23/+2
| | | | | | We don't need to keep commented code forever. If we want that test_default_device() implementation back one day, we'll pick it from the git history.
* osx: no CamelCaseMax Kellermann2009-02-261-89/+85
| | | | Renamed types, functions, variables.
* output_plugin: don't pass audio_output object to method init()Max Kellermann2009-02-251-2/+1
| | | | | | 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.
* output: pass the music chunk pointer as void*, not char*Max Kellermann2009-02-231-2/+2
| | | | | | 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.
* output_api: play() returns a lengthMax Kellermann2009-02-231-27/+18
| | | | | | | | 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.
* utils: use g_usleep() instead of my_usleep()Max Kellermann2009-02-191-2/+1
| | | | | | | Now that I've found this nice function in the GLib docs, we can finally remove our custom sleep function. Still all those callers of g_usleep() have to be migrated one day to use events, instead of regular polling.
* osx: removed disabled debug messagesMax Kellermann2009-02-101-43/+2
| | | | Nobody needs these debug messages anymore.
* use g_free() instead of free()Max Kellermann2009-01-251-3/+2
| | | | | | 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.
* conf: const pointers in block get functionsMax Kellermann2009-01-251-1/+1
| | | | | All config_get_block_*() functions should accept constant config_param pointers.
* conf: no CamelCase, part IMax Kellermann2009-01-171-1/+1
| | | | Renamed functions, types, variables.
* fix G_BYTE_ORDER checkMax Kellermann2009-01-051-1/+1
| | | | "#ifdef G_BYTE_ORDER == G_BIG_ENDIAN" cannot work, of course.
* use GLib byte order macrosMax Kellermann2009-01-051-1/+1
|
* output plugins: don't include gcc.hMax Kellermann2009-01-011-6/+7
| | | | Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
* osx_plugin: migrate from pthread to glib threadsThomas Jansen2008-12-281-19/+18
|
* Remove useless statement.Emanuele Giaquinta2008-12-171-1/+0
|
* Remove useless computation. After the pthread_cond_wait loop there are at ↵Emanuele Giaquinta2008-12-171-2/+0
| | | | least MIN(od->bufferSize, size) free bytes in the buffer. Thus MIN(od->bufferSize - od->len, size) is always equal to MIN(od->bufferSize, size).
* Remove useless statement, curpos is initialized at the beginning of the loop.Emanuele Giaquinta2008-12-171-1/+0
|
* Factor computation.Emanuele Giaquinta2008-12-171-4/+6
|
* Use MIN.Emanuele Giaquinta2008-12-171-2/+2
|
* Call CloseComponent after AudioUnitUninitialize.Emanuele Giaquinta2008-12-171-1/+1
|
* osx: use 16 bit sample formatMax Kellermann2008-12-081-0/+3
| | | | | | The OS X output does not seem to support 24 bit audio in the way MPD implements it currently. Fall back to 16 bit for now, and schedule 24 bit support on OS X for MPD 0.15.
* osx: use GLib instead of utils.h/log.hMax Kellermann2008-12-081-9/+13
| | | | | One my_usleep() invocation remains, until we find out if we can delete it.
* osx: don't use void pointer in arithmeticMax Kellermann2008-12-081-2/+2
| | | | | Cast AudioBuffer.mData to a "unsigned char*" before adding "curpos". This fixes a gcc warning.
* osx: fix gcc warningsMax Kellermann2008-11-041-7/+8
| | | | Fix prototypes and unused variables.
* osx: adapt to new output plugin APIMax Kellermann2008-11-041-19/+15
| | | | | The OS X output plugin wasn't adapted to the new output plugin yet, because I had no Mac to test...
* output: use bool for return values and flagsMax Kellermann2008-10-291-14/+15
| | | | | Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
* output: don't compile plugins which are disabledMax Kellermann2008-10-261-10/+2
| | | | Don't compile the sources of disabled output plugins at all.
* renamed src/audioOutputs/ to src/output/Max Kellermann2008-10-261-0/+368
Again, no CamelCase in the directory name.