Commit Graph

697 Commits

Author SHA1 Message Date
Max Kellermann 49567f1f3e input_{internal,plugin}: convert to C++ 2013-01-25 22:43:01 +01:00
Max Kellermann 94fffb332b archive/*: convert to C++ 2013-01-24 19:18:58 +01:00
Denis Krjuchkov 06fb7c671b Makefile.am: introduce libfs 2013-01-22 01:31:29 +06:00
Denis Krjuchkov ef93cdf4a8 Path: move to fs subdirectory 2013-01-22 01:24:53 +06:00
Denis Krjuchkov 4ad90e2d52 FileSystem: extract DirectoryReader, improve the rest
- DirectoryReader is extracted to separate header
- FileSystem.cxx/FileSystem.hxx/DirectoryReader.hxx moved to fs/ subdir
- Functions return true on success, instead of 0 (where applicable)
- ReadLink return result instead of out parameter
- UnlinkFile is renamed to RemoveFile
- CheckExists/CheckIsRegular/CheckIsDirectory are renamed
  to PathExists/FileExists/DirectoryExists
2013-01-22 01:05:30 +06:00
Max Kellermann 9ec069104f input,playlist/despotify: convert to C++ 2013-01-21 19:01:10 +01:00
Max Kellermann 9cc90b1fbe input/cdio_paranoia: convert to C++ 2013-01-21 17:58:30 +01:00
Max Kellermann 0c9f22507f input/ffmpeg: convert to C++ 2013-01-21 17:50:43 +01:00
Max Kellermann 9c870e4276 input/rewind: convert to C++ 2013-01-21 17:36:19 +01:00
Max Kellermann 5cffe693b0 input/file,mms: convert to C++ 2013-01-21 10:52:40 +01:00
Denis Krjuchkov e6ed592b8a FileSystem: new library for Path-friendly file system routines 2013-01-20 19:08:36 +06:00
Denis Krjuchkov 6f4560184c dummy.cxx: remove unused file
This file was used previously to force C++ linkage.
It's no longer required because most of the code is C++ anyway.
2013-01-19 12:45:50 +06:00
Max Kellermann 21fe376d1d path: convert to C++ 2013-01-17 00:43:27 +01:00
Max Kellermann e22ef6c481 output/roar: convert to C++ 2013-01-16 23:29:56 +01:00
Max Kellermann 601495fa0f ClientList: convert to a class 2013-01-16 23:00:13 +01:00
Max Kellermann 74500eacca Merge branch 'v0.17.x' 2013-01-16 20:05:26 +01:00
Max Kellermann e90d606f0a socket_util: convert to C++ 2013-01-15 22:41:56 +01:00
Max Kellermann bc66dc45e6 server_socket: convert to C++ 2013-01-15 21:42:55 +01:00
Max Kellermann 7087935656 output/httpd: convert to C++ 2013-01-15 20:20:51 +01:00
Max Kellermann 7071126770 InotifySource: use the SocketMonitor class 2013-01-15 18:18:34 +01:00
Max Kellermann 2101daef5a mixer/Alsa: use MultiSocketMonitor 2013-01-15 18:18:00 +01:00
Max Kellermann 083065f433 input/Curl: move code to class MultiSocketMonitor 2013-01-15 18:16:55 +01:00
Max Kellermann 396480cf94 event/SocketMonitor: wrapper class for GSource + GPollFD 2013-01-15 11:00:48 +01:00
Max Kellermann 3e03527930 Client: move output buffer code to new class PeakBuffer 2013-01-15 10:59:28 +01:00
Max Kellermann f9fc3a42cc fifo_buffer: move to util/ 2013-01-15 01:02:13 +01:00
Max Kellermann f47f86ef02 socket_error: new library for errno / WSAGetLastError() 2013-01-15 00:53:12 +01:00
Max Kellermann d3a479b7fa event/TimeoutMonitor: wrapper for g_timeout_source_new() 2013-01-14 11:12:28 +01:00
Max Kellermann e83f805b8f Main, IOThread: move GMainLoop setup code to class EventLoop 2013-01-14 09:15:49 +01:00
Max Kellermann 0226440a2d thread/{Mutex,Cond}: new backend for WIN32
Use CRITICAL_SECTION and CONDITION_VARIABLE.  This requires Windows
Vista or newer.  It fixes problems with GLib threading objects that
were implicitly created by static constructors before g_thread_init().
2013-01-11 11:11:07 +01:00
Max Kellermann 85074f5ac6 icy_metadata: convert to C++ 2013-01-10 22:33:16 +01:00
Max Kellermann 3dd38e7b7f decoder/wavpack: convert to C++ 2013-01-10 18:18:14 +01:00
Max Kellermann 911411e630 conf: convert to C++ 2013-01-10 18:18:02 +01:00
Max Kellermann b8cda53bd3 notify: convert to C++ 2013-01-10 10:44:04 +01:00
Max Kellermann e0a97a030f io_thread: convert to C++ 2013-01-10 10:33:20 +01:00
Max Kellermann 33ba288622 input/{curl,soup}: convert to C++ 2013-01-10 10:23:20 +01:00
Max Kellermann d5516dee00 input_stream: convert to C++ (internally) 2013-01-10 10:15:09 +01:00
Max Kellermann 0b93445380 thread/Cond: new wrapper for pthread_cond_t or GCond 2013-01-10 10:03:19 +01:00
Max Kellermann 483ba5ea1c thread/GLibMutex: new Mutex implementation
Switch WIN32 to this implementation to be able to use condition
variables, which is impossible with CriticalSection.
2013-01-10 10:03:18 +01:00
Max Kellermann a93caf3cfe GlobalEvents: move code to class WakeFD 2013-01-09 23:47:38 +01:00
Max Kellermann 26ebfc04b0 EventPipe: rename to GlobalEvents 2013-01-09 23:31:43 +01:00
Max Kellermann 5faf443038 event_pipe.h: convert to C++ 2013-01-09 22:37:47 +01:00
Max Kellermann 8eacd13ce7 sig_handlers, log: convert to C++ 2013-01-09 22:33:06 +01:00
Max Kellermann d3e1b72d38 mixer/{alsa,pulse}: convert to C++ 2013-01-09 22:25:24 +01:00
Max Kellermann b5e1bd5705 Playlist.hxx: move prototype to PlaylistGlobal.hxx 2013-01-09 22:23:37 +01:00
Max Kellermann 3e5f09be0b event_pipe: convert to C++ 2013-01-09 13:02:13 +01:00
Max Kellermann e86e77ad67 idle: convert to C++ 2013-01-09 13:01:38 +01:00
Max Kellermann 3c4bb9ff4e test/FakeReplayGainConfig: move fake symbols from a few debug programs 2013-01-09 12:26:07 +01:00
Max Kellermann 377a2b9e07 ClientList: add header ClientList.hxx 2013-01-09 08:08:36 +01:00
Max Kellermann 6c57047362 Queue: move code to new class IdTable 2013-01-08 16:11:25 +01:00
Max Kellermann 620ae7790b test: rename debug programs back to old names 2013-01-08 15:33:58 +01:00
Denis Krjuchkov 23b2b7144b Makefile.am: distribute mpc.ico 2013-01-08 17:46:04 +06:00
Max Kellermann 8f7adf79a3 decoder/Opus: read total time 2013-01-08 01:38:02 +01:00
Max Kellermann 960b9a9664 input_stream: add method _cheap_seeking()
Move code from the Vorbis decoder plugin.
2013-01-07 23:25:08 +01:00
Max Kellermann acb45caa42 decoder/ogg_codec: convert to C++ 2013-01-07 22:14:52 +01:00
Max Kellermann 39060b528a decoder/vorbis: convert to C++ 2013-01-07 22:04:58 +01:00
Max Kellermann c6281b2680 Queue: use C++ random instead of GLib's GRand 2013-01-07 22:00:57 +01:00
Max Kellermann 5b8b7d1412 util/LazyRandomEngine: lazy wrapper for std::mt19937 2013-01-07 21:27:51 +01:00
Max Kellermann 52638c68f5 Playlist: convert functions to methods 2013-01-07 11:35:35 +01:00
Max Kellermann 47911f9544 tag: convert to C++ 2013-01-07 10:36:27 +01:00
Max Kellermann a68302e50b thread/Mutex: don't use std::mutex
Use a custom pthread_mutex_t wrapper because std::mutex adds overhead.
2013-01-07 10:33:37 +01:00
Max Kellermann 989c9a7317 filter/replay_gain: convert to C++ 2013-01-07 10:17:16 +01:00
Max Kellermann c3c776bc6a mixer_all: convert to C++ 2013-01-07 09:05:06 +01:00
Max Kellermann 9f4b906e6c volume: convert to C++ 2013-01-07 09:05:01 +01:00
Max Kellermann d536944beb Partition: new class, container for Playlist and PlayerControl
This is the beginning of multi-player support.  There will be support
for multiple Partition objects in one MPD process.
2013-01-05 02:43:00 +01:00
Max Kellermann 73f6fc428a test: revert debug program renames 2013-01-05 02:39:32 +01:00
Max Kellermann 44d260f911 replay_gain_*: convert to C++ 2013-01-04 23:50:58 +01:00
Max Kellermann 81f3d893d9 player_control.h: convert header to C++ 2013-01-04 22:31:53 +01:00
Max Kellermann 05c91082e3 playlist: convert to C++ 2013-01-04 22:12:33 +01:00
Max Kellermann efbfe66f21 Mutex: new wrapper for std::mutex, replaces GMutex 2013-01-04 21:24:29 +01:00
Max Kellermann 692b2cfb79 HugeAllocator: new memory allocator 2013-01-04 20:38:06 +01:00
Max Kellermann e3a2bd3a1e MusicBuffer: move code to template class SliceBuffer 2013-01-04 17:12:21 +01:00
Max Kellermann 9a71845700 crossfade: convert to C++ 2013-01-04 10:31:59 +01:00
Max Kellermann 22f0a1547c buffer, pipe: convert to C++ 2013-01-04 10:16:16 +01:00
Max Kellermann de0ab43bc1 output_*: convert to C++ 2013-01-04 09:46:41 +01:00
Max Kellermann e12cc01aa4 decoder_*: convert to C++ 2013-01-04 09:41:45 +01:00
Max Kellermann fb337418a5 Client: move code to class CommandListBuilder 2013-01-04 00:50:13 +01:00
Max Kellermann 1e0ea57dc4 cmdline: convert to C++ 2013-01-03 17:31:38 +01:00
Max Kellermann 70b87f2eb6 client: convert to C++ 2013-01-03 11:16:18 +01:00
Max Kellermann 94b2ee627c decoder_print: convert to C++ 2013-01-03 11:14:36 +01:00
Max Kellermann e30a2dd2d7 listen: convert to C++ 2013-01-03 11:05:44 +01:00
Max Kellermann 7e07daf8cb ls: convert to C++ 2013-01-03 11:01:02 +01:00
Max Kellermann 981906ecd1 output_print: convert to C++ 2013-01-03 10:58:39 +01:00
Max Kellermann 2452447c81 text_file: convert to C++ 2013-01-03 10:12:41 +01:00
Max Kellermann 47fc08bffe exclude: convert to C++ 2013-01-03 10:02:33 +01:00
Max Kellermann ddf112378b permission: convert to C++ 2013-01-03 03:09:50 +01:00
Max Kellermann b25cce464a client_new: convert to C++ 2013-01-03 03:07:16 +01:00
Max Kellermann 9e99e5bef9 strset: delete obsolete library 2013-01-03 02:31:47 +01:00
Max Kellermann 9023ba4a81 PlaylistVector: use std::list 2013-01-03 02:25:06 +01:00
Max Kellermann 440ac51cf0 database.h: rename to DatabaseSimple.hxx 2013-01-03 01:06:11 +01:00
Max Kellermann d3293b889d database.h: move prototypes to DatabaseGlue.hxx 2013-01-03 01:04:18 +01:00
Max Kellermann fa3d1156a6 playlist_edit: convert to C++ 2013-01-03 00:35:05 +01:00
Max Kellermann 0c245bc271 Directory: make the header C++ only 2013-01-02 22:52:08 +01:00
Max Kellermann d65ad1bf15 mapper: convert to C++ 2013-01-02 22:43:56 +01:00
Max Kellermann 43cbbe111b song_update: convert to C++ 2013-01-02 22:42:12 +01:00
Max Kellermann 9ceb8a717a sticker: convert to C++ 2013-01-02 22:25:17 +01:00
Max Kellermann 8331de424a PlaylistInfo: rename class, use std::string 2013-01-02 22:16:05 +01:00
Max Kellermann 98dbdf72b3 PlaylistVector: move struct playlist_metadata to PlaylistInfo.hxx 2013-01-02 22:01:04 +01:00
Max Kellermann 51a2d09eb7 db_lock: convert to C++ 2013-01-02 20:56:21 +01:00
Max Kellermann 975deca85b {decoder,player}_thread: convert to C++ 2013-01-02 20:36:28 +01:00
Max Kellermann 3bbb502387 *_print: convert to C++ 2013-01-02 20:29:24 +01:00
Max Kellermann 0023dffd0b playlist_vector: convert to C++ 2013-01-02 20:25:20 +01:00
Max Kellermann b715e522cf db_save, state_file: convert to C++ 2013-01-02 20:22:59 +01:00
Max Kellermann a654f146d1 update: convert to C++ 2013-01-02 19:22:15 +01:00
Max Kellermann 67b46a151d playlist_{any,song,queue}: convert to C++ 2013-01-02 19:19:58 +01:00
Max Kellermann b8fdb452be decoder/flac: support FLAC files inside archives
Implement the "scan_stream" method that can read tags from any
input_stream object.  This requires a FLAC__IOCallbacks implementation
based on the input_stream API.
2012-10-04 10:37:09 +02:00
Max Kellermann efbf184fe8 PlaylistFile, client_file, tag_id3: don't use g_file_error_quark()
g_file_error_quark() is meant to be used with the GFileError enum
which does not correspond with errno, but must be converted with
g_file_error_from_errno().

At the same time, this removes g_strerror() use for
g_file_error_quark().
2012-10-04 10:31:53 +02:00
Max Kellermann ebd90dbb1a decoder/flac: move callbacks to class FLACInput 2012-10-02 19:59:49 +02:00
Max Kellermann cbdd042adc decoder/flac: use C++ compiler 2012-10-02 10:59:56 +02:00
Max Kellermann a9419da09c Makefile.am: eliminate FLAC_COMMON 2012-10-02 10:58:53 +02:00
Max Kellermann ccd7104cdc {decoder,encoder}/flac: drop support for libFLAC 1.1 2012-10-02 10:04:44 +02:00
Max Kellermann 038d216f18 encoder/{vorbis,opus}: merge code to new class OggStream 2012-10-02 09:06:03 +02:00
Max Kellermann d793b7c03f encoder/opus: new encoder plugin for the Opus codec 2012-10-02 00:45:24 +02:00
Max Kellermann eafa432cc6 encoder/vorbis: use C++ compiler 2012-10-02 00:37:19 +02:00
Max Kellermann d0c3fa0150 main: use C++ compiler 2012-09-28 00:40:00 +02:00
Max Kellermann 7298b6c846 stored_playlist, playlist_save: use C++ compiler 2012-09-28 00:08:15 +02:00
Max Kellermann 33364edfb3 decoder/adplug: new decoder plugin 2012-09-25 22:03:44 +02:00
Max Kellermann a5d8b27671 command.h: move function prototypes to AllCommands.h 2012-09-25 12:20:36 +02:00
Max Kellermann 98dbc95913 rename CommandError.h to CommandError.hxx 2012-09-25 12:20:15 +02:00
Max Kellermann f38dfd9231 command: rename to AllCommands.cxx 2012-09-25 11:56:37 +02:00
Max Kellermann 510c4a3ef1 command: move remaining handlers to OtherCommands.cxx 2012-09-25 11:44:49 +02:00
Max Kellermann 1536b5a9d6 src/decoder/opus: new decoder plugin for the Opus codec
Using libopus and libogg.
2012-09-05 23:01:17 +02:00
Max Kellermann bab756a5d0 decoder/{flac,vorbis}: move tag table to XiphTags.c
Merge duplicate data.
2012-09-05 22:56:57 +02:00
Max Kellermann 8c763fe458 Makefile.am: rename HAVE_OGG_COMMON to HAVE_XIPH 2012-09-05 22:56:17 +02:00
Max Kellermann ebf481e1a1 decoder/ogg_common: rename to ogg_codec.c 2012-09-04 13:05:12 +02:00
Max Kellermann 015e1ab183 decoder/_ogg_common: rename to ogg_common.c 2012-09-04 11:28:36 +02:00
Max Kellermann 333d226ed0 SongFilter: convert to a C++ class 2012-08-29 20:19:02 +02:00
Max Kellermann 04a9dec952 playlist_print: rename to PlaylistPrint.cxx 2012-08-29 20:17:13 +02:00
Max Kellermann 6ee76b7154 DatabaseSelection: add method Match() 2012-08-29 20:03:37 +02:00
Max Kellermann 36b1c08ad7 locate: rename to SongFilter.cxx 2012-08-29 19:12:26 +02:00
Max Kellermann 7b35d5e9d4 queue_print: rename to QueuePrint.cxx 2012-08-29 19:07:30 +02:00
Max Kellermann 6d4ca071a5 dbUtils.h: eliminate this header 2012-08-29 18:55:49 +02:00
Max Kellermann 684a3d30a6 command: move code to *Commands.cxx 2012-08-29 17:42:06 +02:00
Max Kellermann c852970cf6 Makefile.am: distribute DatabaseCommands.hxx 2012-08-29 17:41:22 +02:00
Max Kellermann 488c1eb87b test/test_queue_priority: fix SIGABRT 2012-08-25 10:24:34 +02:00
Max Kellermann 695ffedef9 Makefile.am: swap libdb_plugins.a and -lmpdclient order
With some linkers, it is important to specify the static library
first, and then libmpdclient.  Fixes linker failures.
2012-08-22 13:54:31 +02:00
Max Kellermann 2bd344549b queue: duplicate all song objects
Make sure the queue "owns" all song objects, so nobody else can free
them.
2012-08-15 23:10:00 +02:00
Max Kellermann a6ac0f8965 DatabasePlugin: add method VisitUniqueTags()
Optimize the ProxyDatabase by invoking "list" on the peer, instead of
visiting all songs.
2012-08-15 23:02:27 +02:00
Max Kellermann affe21f7c1 db_visitor: delete obsolete header 2012-08-15 22:57:20 +02:00
Max Kellermann efccb6ac82 Merge branch 'v0.17.x' 2012-08-15 01:04:34 +02:00
Max Kellermann e291f3d257 decoder/fluidsynth: remove throttle (requires libfluidsynth 1.1)
The libfluidsynth API is now sane, and does not require real-time
decoding.
2012-08-15 00:29:38 +02:00
Max Kellermann 7d27d2ea5e Merge branch 'v0.17.x' 2012-08-14 23:58:54 +02:00
Max Kellermann a869dfea85 timer: use monotonic clock if available 2012-08-14 19:07:31 +02:00
Max Kellermann f794b1e1aa output_all: add basic GError support 2012-08-08 22:48:59 +02:00
Max Kellermann 8c425c758c decoder_control: add GError attribute 2012-08-08 22:38:16 +02:00
Max Kellermann 050ba302cb song: use C++ compiler 2012-08-08 21:08:37 +02:00
Max Kellermann 21792386d8 time_print: new library, function time_print()
Implements error checking for the gmtime_r() call, which was missing
in two code locations.
2012-08-08 09:27:12 +02:00
Max Kellermann 63a2ac21e1 ProxyDatabasePlugin: new database plugin using libmpdclient
Implementation incomplete, but sort-of-works.  DumpDatabase works, but
MPD is still hard-coded on the "simple" plugin.
2012-08-08 01:20:45 +02:00
Max Kellermann 733d6a6b16 DatabaseSelection: add "match" attribute
Let the database plugin do the match.
2012-08-08 00:55:02 +02:00
Max Kellermann ff58207034 db_selection: rename to DatabaseSelection 2012-08-07 23:12:26 +02:00
Max Kellermann b3d76b7e5c db_print.h: rename to DatabasePrint.hxx 2012-08-07 23:10:34 +02:00
Max Kellermann 4d6c816abb dbUtils.h: move to DatabaseQueue.hxx, DatabasePlaylist.hxx 2012-08-07 22:57:18 +02:00
Max Kellermann f35ceaee0a command: move code to DatabaseCommands.cxx
Prepare to use the DatabasePlugin C++ API directly.
2012-08-07 22:36:18 +02:00
Max Kellermann a64a2a65a9 command: move print_error() to CommandError.cxx
Prepare for splitting command.c.
2012-08-07 22:26:14 +02:00
Max Kellermann c6a0f5d3f9 test/DumpDatabase: new debug program 2012-08-07 20:21:10 +02:00
Max Kellermann bb75e3ea55 DatabaseRegistry: list of plugins 2012-08-07 20:07:17 +02:00
Max Kellermann e08d4f28aa Makefile.am: add libdb_plugins.a 2012-08-02 19:25:18 +02:00
Max Kellermann 0a3ada4fea stats: convert to C++ 2012-08-02 19:14:53 +02:00
Max Kellermann 8bdf7917c4 db_print: convert to C++ 2012-08-02 19:14:40 +02:00
Max Kellermann 67d16a086e dbUtils: split to Database{Queue,Playlist}.cxx 2012-08-02 19:14:09 +02:00
Max Kellermann edf811fa02 DatabaseVisitor, ...: use GError forward declaration 2012-08-02 19:12:06 +02:00
Max Kellermann 9dc9459f3a db_plugin: convert to C++ 2012-08-01 09:59:12 +02:00
Max Kellermann 2571accfc3 configure.ac: require C++11 compiler
We'll add some C++11 code soon.
2012-08-01 09:59:12 +02:00
Max Kellermann 60ac702038 tcp_socket, ...: remove obsolet RAOP sources 2012-07-30 06:57:49 +02:00
Max Kellermann 4ebd69193e Makefile.am: updated web server for "upload" target 2012-07-13 10:19:38 +02:00
Max Kellermann 6dd70926fa test/test_pcm: add pcm_volume tests 2012-07-10 01:30:02 +02:00
Max Kellermann 5dfc0918c3 require GLib 2.16
GLib 2.16 was released more than 4 years ago.  Let's remove some cruft
from the glib_compat.h header, and avoid new cruft to it.
2012-07-10 01:28:52 +02:00
Max Kellermann baa77c8ae3 Makefile.am: distribute src/output/*.h 2012-06-27 10:11:21 +02:00
Jurgen Kramer 7235dbadfd patch to split DSD decoder into separate decoders for DSF en DFF. Move common
functions to new dsdlib. Update user doc.
2012-06-27 09:54:24 +02:00
Max Kellermann ede70ee3a4 update_walk: move code to update_song.c 2012-06-13 22:14:16 +02:00
Max Kellermann 66ed427a57 update_walk: move code to update_container.c 2012-06-13 22:11:43 +02:00
Max Kellermann c9e63e9fdb update_walk: move code to update_archive.c 2012-06-13 21:52:46 +02:00
Max Kellermann ddf7f5c131 update_internal.h: split header 2012-06-13 21:38:28 +02:00
Max Kellermann 457d98c860 output/raop: delete the RAOP plugin
This plugin is horrible code, I mean it.  Last year, I tried hard to
fix it, but I figured would take less time to do a full rewrite.
Given that I don't even have any device that supports RAOP, I can't do
that properly.  After 16 months, nobody volunteered for fixing it.
Hereby, I delete it, because having no RAOP plugin is better than
having this mess.  Sorry.
2012-05-29 23:15:41 +02:00
Max Kellermann 6b52d040b1 test/read_rva2: new debug program for the RVA2 library 2012-04-23 23:00:41 +02:00
Max Kellermann c22cbbf828 Merge branch 'v0.16.x'
Conflicts:
	src/output/osx_plugin.c
	src/text_input_stream.c
2012-04-05 00:45:39 +02:00
Max Kellermann 47c58c01d1 test/test_vorbis_encoder: program to debug the vorbis encoder 2012-04-04 23:58:00 +02:00
Max Kellermann 81208d78ac pcm_dsd: implement DSD to 24 bit USB conversion
Implements the dCS suggested standard:

 http://www.dcsltd.co.uk/page/assets/DSDoverUSB.pdf
2012-03-22 01:14:51 +01:00
Max Kellermann 9ec9a8705e pcm_export: use the byte_reverse library directly
Delete the now-unused pcm_byteswap library, and optimize the
pcm_export_state object.
2012-03-21 21:18:11 +01:00
Max Kellermann 170635e3a6 output/{alsa,oss}: move endian code to new library pcm_export 2012-03-21 21:16:50 +01:00
Max Kellermann 3dba09f339 output/alsa: always receive host byte order samples
Don't use audio_format.reverse_endian.
2012-03-21 19:14:05 +01:00
Max Kellermann 62218fe59d test: add unit test for util/byte_reverse.c 2012-03-21 19:08:32 +01:00
Max Kellermann 95d9bb6dfc pcm_byteswap: move code to libutil 2012-03-21 18:58:19 +01:00
Max Kellermann 33986075ef Makefile.am: link src/util/*.c into libutil.a 2012-03-21 18:58:19 +01:00
Max Kellermann 238c3adad1 decoder/dsdiff: reverse bits to most significant bit first
Allow to remove this complexity from the MPD core.
2012-03-21 09:01:56 +01:00
Max Kellermann c1d0a8b5ce dsd2pcm: move the bit reversing code to a generic library
Instead of doing run-time initialisation, use a constant lookup table.
2012-03-21 08:44:43 +01:00
Robert Vollmert 281b8714ef playlist/soundcloud: support libyajl2
[mk: backwars compatibility and autoconf check]
2012-03-19 21:16:48 +01:00
Max Kellermann 8dcefaf2e3 test/dump_text_file: debug program for text_input_stream.c 2012-03-19 20:37:25 +01:00
Max Kellermann 1e60a4386a playlist_edit: move UID check to client_allow_file() 2012-03-06 22:10:54 +01:00
Max Kellermann d07a6edd2f configure.ac: detect libyajl for playlist/soundcloud 2012-03-01 20:18:16 +01:00
Robert Vollmert 7cef52478d A soundcloud playlist plugin.
Requires YAJL to build, and this doesn't include the necessary
automake changes. Can be built using
./configure CFLAGS="-I/usr/include/yajl" LIBS="-lyajl" --enable-soundcloud

Add the following to your config:

playlist_plugin {
        name "soundcloud"
        enabled "true"
        apikey "c4c979fd6f241b5b30431d722af212e8"
}

Then you can stream from soundcloud using calls like:

mpc load soundcloud://track/<track-id>
mpc load soundcloud://playlist/<playlist-id>
mpc load soundcloud://url/http://soundcloud.com/some/track/or/playlist

For the last case, you can leave off the http:// or
http://soundcloud.com/ .
2012-03-01 20:11:09 +01:00
Max Kellermann 9c36e71081 decoder/dsdiff: don't convert to PCM
Move the responsibility for the conversion to the PCM library.  This
will allow passing the verbatim DSD samples to an output plugin.
2012-03-01 02:05:40 +01:00
Max Kellermann c9c57af5f7 pcm_convert: support the DSD format 2012-03-01 02:00:12 +01:00
Avuton Olrich 0742976138 win32: Add a Windows OS resource file and icon 2012-02-23 06:32:30 -08:00
Max Kellermann ae28ba84d2 command: move code to protocol/argparser.c 2012-02-14 19:13:04 +01:00
Max Kellermann b8ed420058 command: move functions to protocol/result.c 2012-02-14 18:57:29 +01:00
Max Kellermann 7338b16c18 listen: implement systemd socket activation 2012-02-13 21:32:42 +01:00
Max Kellermann d7d9dbd2c2 playlist/flac: delete this obsolete plugin
The FLAC playlist plugin has been superseded by the "embcue" playlist
plugin, which can read the embedded CUE sheets of all formats.
2012-02-12 19:57:27 +01:00
Max Kellermann 4fdcc0496f update_walk: move code to update_db.c 2012-02-12 17:41:34 +01:00
Max Kellermann 0c4a2bea69 update_walk: move code to update_io.c 2012-02-12 17:00:00 +01:00
Max Kellermann 1735284a2a playlist/embcue: new plugin for reading embedded cue sheets
Parses CUE data from the "CUESHEET" tag.  Needs further integration in
the update thread.
2012-02-12 16:10:20 +01:00
Max Kellermann 5d73215a8d decoder_plugin: scan tags with callback table
Pass a callback table to scan_file() and scan_stream(), instead of
returning a tag object.
2012-02-11 17:04:29 +01:00
Max Kellermann 43b7b98949 decoder/ffmpeg: move code to ffmpeg_metadata.c 2012-02-11 16:37:29 +01:00
Max Kellermann c8a990b9d3 decoder/vorbis: move code to vorbis_comment.c 2012-02-11 10:04:02 +01:00
Max Kellermann abcc225763 cue_parser: new line based CUE sheet parser
To replace libcue, the unmaintained and crashy library.
2012-02-10 00:12:29 +01:00
Max Kellermann 84ba14fa29 directory: replace songvec with doubly linked list 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 a467128093 db_lock: new unified lock for songvec and dirvec 2012-01-21 10:51:53 +01:00
Max Kellermann 4f093d5b97 Merge branch 'v0.16.x'
Conflicts:
	Makefile.am
	NEWS
	configure.ac
	src/encoder/flac_encoder.c
	src/log.c
	src/pcm_buffer.c
2011-11-28 11:56:01 +01:00
Max Kellermann cee5036aca encoder/flac: use fifo_buffer instead of pcm_buffer
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
2011-11-28 09:21:32 +01:00
Max Kellermann 790823abb4 growing_fifo: new utility library for growing fifo_buffer 2011-11-28 09:11:11 +01:00
Max Kellermann f5f1bfbef1 pcm_buffer: un-inline pcm_buffer_get()
This method is too complex for inlining.
2011-11-27 20:17:12 +01:00
Avuton Olrich ef369c2e2b Makefile.am: Add PULSE_LIBS for linking the mixer when compiling with pulse
Commit 3a3158 introduced a small bug where the pulseaudio mixer would not link
with the main binary in some situations.
2011-11-14 05:09:18 -08:00
Max Kellermann f1da118a6c test: add GLib testing compatibility header
Didn't compile on GLib < 2.16.
2011-10-19 21:14:14 +02:00
Max Kellermann 572d8d0cc4 test: add unit test for the PCM library 2011-10-10 10:24:05 +02:00
Max Kellermann c9a57d354d pcm_buffer: un-inline pcm_buffer_get()
This function is too complex for being inlined everywhere.
2011-10-10 10:13:43 +02:00
Max Kellermann 311e627463 audio: rename audio.[ch] to audio_config.[ch] 2011-10-10 10:13:43 +02:00
Max Kellermann db0bb425e7 Makefile.am: cue_tag.c belongs to libplaylist_plugins.a 2011-10-09 18:48:20 +02:00
Max Kellermann e001dd2d45 Makefile.am: remove redundant GLIB_CFLAGS specifications 2011-10-09 18:45:37 +02:00
Max Kellermann c38772c97f Makefile.am: add static library libpcm.a 2011-10-09 18:42:32 +02:00
Max Kellermann 3a31589fdd Makefile.am: generate static library from plugins
Compile the plugins only once with the same C flags.
2011-10-09 18:33:02 +02:00
Max Kellermann 176debaf37 Makefile.am: require automake 1.11
Prepare for enabling "silent-rules".
2011-10-09 18:32:55 +02:00
Max Kellermann 072f83b240 configure.ac: use $LIBS instead of $MPD_LIBS 2011-10-09 18:29:25 +02:00
Max Kellermann cbd6770f2f configure.ac: substitute FAAD_CFLAGS, FAAD_LIBS
Don't use MPC_CFLAGS, MPD_LIBS.
2011-10-09 18:25:09 +02:00
Max Kellermann 0c3a7bcf12 configure.ac: substitute MPCDEC_LIBS, MPCDEC_CFLAGS
Don't use MPD_LIBS, MPC_CFLAGS.
2011-10-09 17:58:36 +02:00
Max Kellermann 389fbaaca2 configure.ac: add variable BZ2_LIBS
Don't use MPD_LIBS.
2011-10-09 17:56:46 +02:00
Max Kellermann 02a6a46e86 configure.ac: don't append DESPOTIFY_LIBS to MPD_LIBS
Use DESPOTIFY_LIBS in Makefile.am instead.  Also, use
DESPOTIFY_CFLAGS.
2011-10-09 17:39:24 +02:00
Max Kellermann 5c0576ca55 Merge branch 'v0.16.x'
Conflicts:
	configure.ac
	src/player_control.c
	src/player_thread.c
	src/playlist_song.c
2011-10-06 22:45:02 +02:00
Max Kellermann 4e909f9411 decoder/dsdiff: new decoder plugin
Doesn't seem to work yet, getting just noise from a test file.
Seeking isn't implemented yet.
2011-10-04 21:41:03 +02:00
Max Kellermann 99f49e266c Makefile.am: build the "dsd2pcm" program 2011-10-04 21:40:59 +02:00
Miklos Vajna 83f6498aac Install systemd service file if systemd is available 2011-09-30 08:37:36 +02:00
Max Kellermann 533a6b0240 tcp_connect: generic library for establishing TCP connections 2011-09-20 21:27:17 +02:00
Max Kellermann 7d9d459ac2 resolver: add function resolve_host_port() 2011-09-20 21:15:05 +02:00
Max Kellermann 3ea1073809 socket_util: move sockaddr_to_string() to resolver.c 2011-09-20 08:49:36 +02:00
Max Kellermann 921553d7bb Merge branch 'v0.16.x' 2011-09-20 08:47:06 +02:00
Max Kellermann b03f9ece05 glib_socket.h: wrap g_io_channel_*_new() calls portably
The server_socket library (used by the httpd output plugin) didn't
check for WIN32, that's fixed now.
2011-09-20 08:35:25 +02:00
Max Kellermann 74617389c8 output_plugin: the plugin allocates the audio_output object
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-19 09:41:21 +02:00
Max Kellermann b4a8b8c0d4 Makefile.am: rename SPARSE_SOURCES to SPARSE_SRC
Work around automake warning.
2011-09-19 08:03:31 +02:00
Max Kellermann 3c9bcdd347 output: per-plugin header
Move the "extern" declarations from output_list.c, for more type
safety.
2011-09-17 19:51:41 +02:00
Max Kellermann 5e22fe488e output: rename plugin source files 2011-09-17 08:54:50 +02:00
Max Kellermann 87b624f5d5 Merge branch 'v0.16.x' 2011-09-16 07:52:39 +02:00
Max Kellermann d8c829fa0c configure.ac: pass AM_CXXFLAGS, AM_CPPFLAGS to Makefile.am 2011-09-16 07:35:46 +02:00
Max Kellermann f2be6432a9 Makefile.am: allow out-of-tree sparse call 2011-09-15 09:48:36 +02:00
Max Kellermann dd33317f45 input_stream: move input_stream_init(), _deinit() to _internal.c 2011-09-14 22:01:55 +02:00
Max Kellermann a236a439cc db_print: move code to function db_selection_print()
Use it in handle_lsinfo(), and eliminate some duplicate code.
2011-09-13 22:09:37 +02:00
Max Kellermann a94d4be466 db_plugin: add method visit() 2011-09-13 21:47:00 +02:00
Max Kellermann 169db88c20 database: add struct db_visitor
Use this struct for db_walk().
2011-09-13 19:37:28 +02:00
Max Kellermann aede71b1dc playlist: move enum playlist_result to playlist_error.h
Reduce header dependencies.
2011-09-11 07:55:51 +02:00
Max Kellermann 7819aa6b20 db_plugin: introducing a plugin API for the song database
First draft, not really pluggable currently - hard-coded to use the
"simple" plugin, and calls several of its internal functions.

The API is very simple currently, all searches are still performed
over the root "directory" object.  Future changes to the API will move
those search implementations into the plugin, to allow more efficient
implementations, or implementations that don't have the whole tree in
memory all the time.
2011-09-10 07:58:43 +02:00
Max Kellermann 7cc6b63aac database: move code to db_save.c 2011-09-10 07:48:05 +02:00