| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
Fixes wrong object URIs with duplicate base names.
|
|
Initial support for "detached" songs that come from the database, but
are private copies.
|
|
decoder_is_current_song() now recognizes different instances of the
same physical song.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Added attributes start_ms, end_ms. This allows us to address a
portion of a song file (important for CUE support). There is no
support yet for storing these attributes in the state file.
|
|
|
|
Changed songvec_load() to song_load(). Added start and end markers
for each song. Removed the "key" line, it's redundant.
|
|
|
|
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.
|
|
|
|
|
|
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is
ffmpeg's fault, because short macros should be reserved for
applications, but since it's always a good idea to choose prefixed
macro names, even for applications, we are going to do that in MPD.
|
|
Clients which have authenticated via unix socket may add local files
to the MPD playlist, provided that they own the file.
|
|
Some functions assume that a song is not in the database when it is a
remote song. Based on that, they decide whether they are responsible
for freeing the song struct. Add a special function which checks
whether a song is in the database (currently equal to song_is_file()).
|
|
song_get_url() doesn't modify the song object.
|
|
Instead of returning 0 or -1, return true on success and false on
failure. This seems more natural, and when the C library was
designed, there was no "bool" data type.
|
|
CamelCase is ugly... rename all functions.
|
|
Provide separate constructors for creating a remote song, a local
song, and one for loading data from a song file. This way, we can add
more assertions.
|
|
"bool" should be used in C99 programs for boolean values.
|
|
When there are standardized headers, use these instead of the bloated
os_compat.h.
|
|
Include only headers which are really used.
|
|
Again, a data type which can be forward-declared.
|
|
The struct can be forward-declared by other headers, which relaxes the
header dependencies.
|
|
Somehow I must have missed this in commit 22e40b61.
|
|
This makes the update code thread-safe and doesn't penalize
the playlist code by complicating it with complicated and
error-prone locks (and the associated overhead, not everybody
has a thread-implementation as good as NPTL).
The update task blocks during the delete; but the update task is
a slow task anyways so we can block w/o people caring too much.
This was also our only freeSong call site, so remove that
function.
Note that deleting entire directories is not fully thread-safe,
yet; as their traversals are not yet locked.
|
|
We already know if a song is a URL or not based on whether it
has parentDir defined or not. Hopefully one day in the future
we can drop HTTP support from MPD entirely when an HTTP
filesystem comes along and we can access streams via open(2).
|
|
The "packed" attribute may have negative side effects on performance.
Remove the "packed" attribute, and increase the size of "song.url" to
a multiple of the machine word size.
|
|
Reduce the number of allocations we make, so there's less
pressure on the allocator and less overhead to keep track
of the allocations in.
|
|
It didn't save us any lines of code nor did it do anything
useful since we would overwrite everything anyways.
|
|
Since we use a C99 compiler now, we can assert that the C99 standard
headers are available, no need for complicated compile time checks.
Kill mpd_types.h.
|
|
Having an enum type is much nicer than an anonymous integer plus CPP
macros. Note that the old code didn't save any space by declaring the
variable 8 bit, due to padding.
|
|
Do full C99 integer type conversion in all modules which were not
touched by Eric's merged patch.
|
|
SongList has been superseded by struct songvec.
|
|
Don't pass the raw file descriptor around. This migration patch is
rather large, because all of the sources have inter dependencies - we
have to change all of them at the same time.
|
|
Move everything which dumps song information (via tag_print.c) to a
separate source file. song_print.c gets code which writes song data
to the client; song_save.c is responsible for serializing songs from
the tag cache.
|
|
As usual, include only headers which are really needed.
|
|
The function newNullSong() is only used internally in song.c.
|
|
Getting rid of CamelCase; not having typedefs also allows us to
forward-declare the structures.
|
|
[merged r7184 from branches/ew]
git-svn-id: https://svn.musicpd.org/mpd/trunk@7242 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
[ew: cleaned up the dirty union hack a bit]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
git-svn-id: https://svn.musicpd.org/mpd/trunk@7180 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
This will make refactoring features easier, especially now that
pthreads support and larger refactorings are on the horizon.
Hopefully, this will make porting to other platforms (even
non-UNIX-like ones for masochists) easier, too.
os_compat.h will house all the #includes for system headers
considered to be the "core" of MPD. Headers for optional
features will be left to individual source files.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|