Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | InputStream: make Seek() always absolute | Max Kellermann | 2014-05-22 | 1 | -3/+3 |
| | | | | | Remove the "whence" parameter that is not actually necessary, and only complicates the InputStream implementations. | ||||
* | DecoderAPI: add function decoder_open_uri() | Max Kellermann | 2014-05-22 | 3 | -5/+13 |
| | | | Move and refactor code from the Wavpack decoder plugin. | ||||
* | test/run_decoder: merge code into FakeDecoderAPI.cxx | Max Kellermann | 2014-05-22 | 3 | -137/+48 |
| | | | | Eliminate duplicate code. | ||||
* | test/run_decoder: auto-initialize struct Decoder | Max Kellermann | 2014-05-22 | 1 | -2/+3 |
| | |||||
* | test/run_decoder: move the "uri" attribute out of struct Decoder | Max Kellermann | 2014-05-22 | 1 | -8/+4 |
| | |||||
* | test/run_decoder: move the DecoderPlugin pointer out of struct Decoder | Max Kellermann | 2014-05-22 | 1 | -8/+6 |
| | |||||
* | test/test_rewind: unit test for class RewindInputStream | Max Kellermann | 2014-05-21 | 1 | -0/+164 |
| | |||||
* | InputStream: add virtual destructor | Max Kellermann | 2014-05-11 | 5 | -7/+6 |
| | | | Replaces the method Close(). | ||||
* | InputStream: convert to class | Max Kellermann | 2014-05-11 | 1 | -2/+2 |
| | |||||
* | test/run_decoder: use InputStream::OpenReady() instead of InputStream::Open() | Max Kellermann | 2014-03-16 | 1 | -1/+1 |
| | |||||
* | test/{run_decoder,dump_playlist}: fix accidental search/replace hiccups | Max Kellermann | 2014-03-16 | 2 | -2/+2 |
| | |||||
* | util/CircularBuffer: add method GetSpace() | Max Kellermann | 2014-03-16 | 1 | -0/+10 |
| | |||||
* | util/CircularBuffer: add method GetSize() | Max Kellermann | 2014-03-16 | 1 | -0/+10 |
| | |||||
* | util/CircularBuffer: rename GetSize() to GetCapacity() | Max Kellermann | 2014-03-15 | 1 | -0/+2 |
| | |||||
* | util/CircularBuffer: new buffer class | Max Kellermann | 2014-03-15 | 2 | -0/+143 |
| | |||||
* | test/test_pcm: replace 256 with prime number | Max Kellermann | 2014-03-15 | 6 | -13/+13 |
| | | | | | Use some odd number that will expose problems with remaining samples after optimized vector operations. | ||||
* | test/test_pcm_format: add unit test for float clamping | Max Kellermann | 2014-03-15 | 1 | -0/+20 |
| | |||||
* | test/test_pcm_all: move CPPUNIT_TEST_SUITE_REGISTRATION() to test_pcm_main.cxx | Max Kellermann | 2014-03-15 | 2 | -12/+7 |
| | | | | | | Run each unit test only once. Using CPPUNIT_TEST_SUITE_REGISTRATION from within the header meant that each unit class was registered again for each source file that includes the header. | ||||
* | util/{Const,Writable}Buffer: add operator[] | Max Kellermann | 2014-03-01 | 3 | -15/+15 |
| | |||||
* | UriUtil: support ftp:// URLs in uri_remove_auth() | Max Kellermann | 2014-02-24 | 1 | -0/+2 |
| | |||||
* | PlayerListener: new interface to replace GlobalEvents access | Max Kellermann | 2014-02-21 | 1 | -3/+5 |
| | |||||
* | test/run_{filter,output}: use config_find_block() | Max Kellermann | 2014-02-20 | 2 | -34/+4 |
| | |||||
* | DatabasePlugin: split header | Max Kellermann | 2014-02-19 | 1 | -0/+1 |
| | |||||
* | Mixer: add class MixerListener | Max Kellermann | 2014-02-19 | 2 | -13/+4 |
| | | | | Use a listener interface instead of GlobalEvents. | ||||
* | test: various fixups for building without GLib | Max Kellermann | 2014-02-18 | 7 | -4/+20 |
| | |||||
* | ArchivePlugin: pass Path to open() | Max Kellermann | 2014-02-08 | 1 | -1/+1 |
| | |||||
* | ArchivePlugin: rename struct archive_plugin to ArchivePlugin | Max Kellermann | 2014-02-08 | 1 | -1/+1 |
| | |||||
* | storage/local: remove utf8 path from constructor | Max Kellermann | 2014-02-07 | 1 | -3/+4 |
| | | | | Build the UTF-8 version of the path automatically in the constructor. | ||||
* | StoragePlugin: add method MapToRelativeUTF8() | Max Kellermann | 2014-02-07 | 1 | -16/+8 |
| | | | | Replaces map_to_relative_path() from Mapper.cxx. | ||||
* | DecoderPlugin: pass Path instance to file_decode() and scan_file() | Max Kellermann | 2014-02-07 | 2 | -7/+9 |
| | |||||
* | Mapper: move map_song_detach() to db/DatabaseSong.cxx | Max Kellermann | 2014-02-07 | 1 | -6/+16 |
| | | | | Use Storage::MapUTF8() internally, don't use global variables. | ||||
* | mixer/Plugin: pass AudioOutput reference to init() | Max Kellermann | 2014-02-06 | 1 | -54/+2 |
| | | | | Passing a void pointer is unsafe. | ||||
* | Mixer: use reference instead of pointer for MixerPlugin | Max Kellermann | 2014-02-05 | 1 | -1/+1 |
| | |||||
* | MixerPlugin: add EventLoop& init() parameter | Max Kellermann | 2014-02-05 | 2 | -14/+7 |
| | |||||
* | event/Loop: remove the dummy constructor argument | Max Kellermann | 2014-02-05 | 5 | -5/+5 |
| | |||||
* | test/ShutdownHandler: make the constructor "explicit" | Max Kellermann | 2014-02-05 | 1 | -1/+1 |
| | |||||
* | db/DatabaseListener: add method OnDatabaseSongRemoved() | Max Kellermann | 2014-02-04 | 1 | -0/+4 |
| | | | | Decouples db/update/Remove.cpp from global variables. | ||||
* | Instance: add Database attribute | Max Kellermann | 2014-02-04 | 1 | -2/+9 |
| | | | | Move from db/DatabaseGlue.cxx, eliminating global variable. | ||||
* | db/DatabasePlaylist: pass Database reference around | Max Kellermann | 2014-02-04 | 1 | -4/+6 |
| | | | | Reduce global variable usage, move to frontend code. | ||||
* | SongLoader: new class that merges duplicate code | Max Kellermann | 2014-02-03 | 1 | -10/+41 |
| | | | | | There was quite a lot of duplicate code for loading DetachedSong objects, with different semantics for "securely" loading local files. | ||||
* | output: move functions into the AudioOutput struct | Max Kellermann | 2014-01-29 | 1 | -1/+0 |
| | |||||
* | output: rename source files | Max Kellermann | 2014-01-28 | 1 | -1/+1 |
| | |||||
* | output: rename struct audio_output to AudioOutput | Max Kellermann | 2014-01-28 | 1 | -4/+4 |
| | |||||
* | OutputAll: convert to class, move instance to class Partition | Max Kellermann | 2014-01-28 | 1 | -3/+6 |
| | | | | Another big chunk of code for multi-player support. | ||||
* | Playlist{Info,Vector}: move to db/ | Max Kellermann | 2014-01-27 | 1 | -1/+1 |
| | |||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2014-01-27 | 1 | -0/+85 |
|\ | |||||
| * | IcyMetadataParser: more robust tag parser | Max Kellermann | 2014-01-27 | 1 | -0/+15 |
| | | | | | | | | | | Allow semicolons and single quotes in the stream title. This is not part of any specification, but found in real life. | ||||
| * | test/test_icy_parser: unit test for IcyMetaDataParser.cxx | Max Kellermann | 2014-01-27 | 1 | -0/+70 |
| | | |||||
* | | neighbor: new subsystem to detect file servers on the local network | Max Kellermann | 2014-01-26 | 2 | -0/+86 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the NeighborPlugin API which can be used to detect nearby file servers that can be used by input plugins. This list of servers is exported using the new "listneighbors" command. The idle even "neighbor" notifies interested clients when a new neighbor is found or an existing one is lost. There's a lot missing currently: protocol&user documentation, and a way to "mount" remote servers into the music database. Obviously, some code from the UPnP database plugin can be moved to a neighbor plugin. | ||||
* | | Mixer*: move to mixer/ | Max Kellermann | 2014-01-24 | 2 | -3/+3 |
| | |