Max Kellermann
ef5cf40fa6
directory: require the caller to lock the db_mutex
...
Reduce the number of lock/unlock cycles, and make database handling
safer.
2012-02-02 18:06:33 +01:00
Max Kellermann
837bd79b20
db_lock: add assertions
2012-02-02 17:59:51 +01:00
Max Kellermann
3edd4a24af
update_walk: use directory_make_child()
2012-02-02 17:59:51 +01:00
Max Kellermann
535a61b5a9
directory: add new objects to the end of the linked list
...
This was the cause of the reversed ordering when loading a database
file.
2012-02-02 09:59:38 +01:00
Max Kellermann
e87b7daab5
input/soup: use #pragma only with gcc 4.6+
...
It seems gcc 4.5 does not allow #pragma within function:
src/input/soup_input_plugin.c:284:9: error: #pragma GCC diagnostic not allowed inside functions
2012-01-29 14:46:05 +01:00
Max Kellermann
f20689519d
directory: fix deep path lookup
...
This commit fixes a major regression in directory_lookup_directory(),
which broke the deep lookup of directories.
2012-01-29 14:42:28 +01:00
Max Kellermann
ee9c460f74
directory: mark unused parameter
2012-01-24 22:27:42 +01:00
Max Kellermann
84ba14fa29
directory: replace songvec with doubly linked list
2012-01-24 22:26:43 +01:00
Max Kellermann
3c75963352
directory: add function directory_get_song(), ...
...
Wrap songvec_find() and other songvec methods.
2012-01-24 22:26:43 +01:00
Max Kellermann
5f9dd8287c
valgrind.suppressions: misc updates
2012-01-24 22:26:43 +01:00
Max Kellermann
d99f074eb7
directory: replace dirvec with doubly linked list
...
Random access is not needed, and a linked list is easier to manage: we
don't need to (re-)allocate the pointer array.
2012-01-24 20:49:53 +01:00
Max Kellermann
a989140a07
util/list.h: import the Linux kernel's linked list library
2012-01-24 20:49:52 +01:00
Max Kellermann
420a4c163d
directory: simplify constructors and clarify API documentation
...
Pass only the "name" to a directory, instead of the full (relative)
path.
2012-01-24 20:03:18 +01:00
Max Kellermann
1bab735580
dirvec: unlock mutex in dirvec_find() in all branches
2012-01-24 20:02:32 +01:00
Max Kellermann
a0fcd0cf22
dirvec: don't call g_path_get_basename() on parameter
...
This overhead is completely useless, because no caller expects this
behaviour.
2012-01-24 18:27:00 +01:00
Max Kellermann
5d5c753c74
songvec: move code to songvec_find_pointer()
2012-01-24 18:06:52 +01:00
Max Kellermann
7e7e3eb8d5
songvec: _delete() returns void
...
The given song must exist, or MPD will abort. Calling it with an
unknown song is illegal.
2012-01-24 18:06:25 +01:00
Max Kellermann
2e5f8aeba1
refcount: add missing stdbool.h include
2012-01-24 17:16:42 +01:00
Max Kellermann
c2fe961db1
decoder/ffmpeg: remove debug code
2012-01-24 17:15:29 +01:00
Max Kellermann
2a6acc04a1
dirvec: remove unused functions _clear(), _for_each()
2012-01-21 11:32:06 +01:00
Max Kellermann
a467128093
db_lock: new unified lock for songvec and dirvec
2012-01-21 10:51:53 +01:00
Max Kellermann
abf41eb85c
.gitignore: add new output files
2012-01-21 10:51:53 +01:00
Max Kellermann
d83dea4463
db/simple: pass the correct GError pointer
2012-01-12 18:59:26 +01:00
Max Kellermann
ec43721c3c
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
2012-01-12 18:59:21 +01:00
Max Kellermann
39d52762d1
decoder/ffmpeg: check libavutil version for AVDictionaryEntry
...
Require libavutil 51.5.0.
2012-01-12 18:45:18 +01:00
Max Kellermann
8d45d0d104
decoder/ffmpeg: raise version dependency for avformat_find_stream_info()
...
This function was added when the libavformat version was 53.2.0, but
the actual release 53.2.0 did not have it.
2012-01-12 18:28:19 +01:00
Max Kellermann
26ec62714c
mixer/alsa: listen for external volume changes
...
Use libasound's polling functions, implement a bridge to GSource /
GPollFD and send idle events to clients when an external program
changes the ALSA mixer volume.
2012-01-05 01:52:40 +01:00
Max Kellermann
7873b5e78b
mixer/alsa: move code to alsa_mixer_setup()
...
Better error handling.
2012-01-05 01:52:05 +01:00
Max Kellermann
1b889c527f
mixer/alsa: move code to alsa_mixer_lookup_elem()
2012-01-05 00:52:41 +01:00
Max Kellermann
9937ff8ac0
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
src/input/ffmpeg_input_plugin.c
2012-01-05 00:33:23 +01:00
Max Kellermann
abd1949825
decoder/ffmpeg: support libavformat 0.8
2012-01-05 00:17:56 +01:00
Max Kellermann
4e6bc77a70
decoder/ffmpeg: use avcodec_decode_audio4(), support libavcodec 0.8
2012-01-04 22:10:38 +01:00
Max Kellermann
531948358b
decoder/ffmpeg: include libavutil/mathematics.h
...
Needed for av_rescale_q() in ffmpeg 0.8.
2012-01-04 21:54:54 +01:00
Max Kellermann
0d3ec9c324
configure.ac: disable -Wno-deprecated-declarations
2012-01-04 21:48:30 +01:00
Max Kellermann
21caca4aea
decoder/ffmpeg: use avcodec_open2() on newer ffmpeg versions
...
avcodec_open() has been deprecated.
2012-01-04 21:48:30 +01:00
Max Kellermann
fbf3edf07d
decoder/ffpmeg: don't use av_metadata_conv() in ffmpeg 0.7
...
It's a no-op and deprecated.
2012-01-04 21:47:56 +01:00
Max Kellermann
76fcf25898
decoder/ffmpeg: use AVIOContext instead of ByteIOContext
2012-01-04 21:47:47 +01:00
Max Kellermann
56257f072b
input/ffmpeg: use the new AVIOContext API
...
URLContext is deprecated.
2012-01-04 21:47:19 +01:00
Max Kellermann
44401158e8
input/ffmpeg: define AV_VERSION_INT if not present
...
Support ancient ffmpeg versions.
2012-01-04 21:47:01 +01:00
Max Kellermann
95b2df8261
output/osx: fix memory leak after AudioUnitSetProperty() failure
2012-01-04 20:47:41 +01:00
Max Kellermann
1ebadf8620
output/osx: implement 32 bit playback
2011-12-24 18:18:42 +01:00
Max Kellermann
9179d9592d
output/osx: allocate the device in enable()
...
Keep the device open as long as the output is enabled, but initialize
it only when playback starts.
2011-12-24 18:15:24 +01:00
Max Kellermann
f208217412
test/run_output: enable and disable the output
2011-12-24 18:15:20 +01:00
Max Kellermann
43c5058682
Merge branch 'v0.16.x'
2011-12-24 18:15:17 +01:00
Max Kellermann
97b4a6b51f
output/osx: clear render buffer when there's not enough data
...
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.
2011-12-24 17:59:36 +01:00
Max Kellermann
f405d27c56
output/osx: remove sleep call from render callback
...
Blocking inside the render callback is forbidden, and this sleep call
didn't make any sense.
2011-12-24 17:56:10 +01:00
Max Kellermann
99949c8f6f
command: new command "seekcur"
...
For simpler seeking within current song.
2011-12-24 11:20:02 +01:00
Maarten Sebregts
3a9697adf2
Playlist: fix bug in moving after current song
...
Moving songs using either 'move' or 'moveid' to position -1 (after the
current song) would fail for a song which is just before the current
song.
This patch corrects the check to see if the current song is in the range
to be moved. Since the range is from `start` up to `end` (exclusive) the
check was incorrect, but is now fixed.
2011-12-21 10:29:07 +01:00
Max Kellermann
78c4351e04
output/openal: improve synchronization
...
This plugin's use of the "Timer" library was wrong; it added the same
amount of virtual data in every iteration in _play(), but did not
actually play something. This created an artificial, but useless,
delay. This patch implements the method _cancel(), and implements
hard-coded sleep values. This is only slightly better, but does not
attempt to look sane.
2011-12-13 22:02:05 +01:00
Max Kellermann
0a427890fe
output/openal: move code to inline functions
2011-12-13 22:00:18 +01:00