diff options
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | src/Song.cxx (renamed from src/song.c) | 20 | ||||
-rw-r--r-- | src/song.h | 4 |
3 files changed, 19 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am index 7641758ac..dc3b04658 100644 --- a/Makefile.am +++ b/Makefile.am @@ -335,7 +335,7 @@ src_mpd_SOURCES = \ src/replay_gain_config.c \ src/replay_gain_info.c \ src/sig_handlers.c \ - src/song.c \ + src/Song.cxx \ src/song_update.c \ src/song_print.c \ src/song_save.c \ @@ -1059,7 +1059,7 @@ test_DumpDatabase_SOURCES = test/DumpDatabase.cxx \ src/Directory.cxx src/directory_save.c \ src/playlist_vector.c src/playlist_database.c \ src/db_lock.c src/db_save.c \ - src/song.c src/song_sort.c src/song_save.c \ + src/Song.cxx src/song_sort.c src/song_save.c \ src/tag.c src/tag_pool.c src/tag_save.c \ src/path.c \ src/locate.c \ @@ -1103,7 +1103,7 @@ test_dump_playlist_SOURCES = test/dump_playlist.c \ src/io_thread.c src/io_thread.h \ src/conf.c src/tokenizer.c src/utils.c src/string_util.c\ src/uri.c \ - src/song.c src/tag.c src/tag_pool.c src/tag_save.c \ + src/Song.cxx src/tag.c src/tag_pool.c src/tag_save.c \ src/tag_handler.c src/tag_file.c \ src/audio_check.c src/pcm_buffer.c \ src/text_input_stream.c src/fifo_buffer.c \ diff --git a/src/song.c b/src/Song.cxx index 21ea59d23..006ef8aaa 100644 --- a/src/song.c +++ b/src/Song.cxx @@ -20,7 +20,10 @@ #include "config.h" #include "song.h" #include "directory.h" + +extern "C" { #include "tag.h" +} #include <glib.h> @@ -30,14 +33,15 @@ static struct song * song_alloc(const char *uri, struct directory *parent) { size_t uri_length; - struct song *song; assert(uri); uri_length = strlen(uri); assert(uri_length); - song = g_malloc(sizeof(*song) - sizeof(song->uri) + uri_length + 1); - song->tag = NULL; + struct song *song = (struct song *) + g_malloc(sizeof(*song) - sizeof(song->uri) + uri_length + 1); + + song->tag = nullptr; memcpy(song->uri, uri, uri_length + 1); song->parent = parent; song->mtime = 0; @@ -49,13 +53,13 @@ song_alloc(const char *uri, struct directory *parent) struct song * song_remote_new(const char *uri) { - return song_alloc(uri, NULL); + return song_alloc(uri, nullptr); } struct song * song_file_new(const char *path, struct directory *parent) { - assert((parent == NULL) == (*path == '/')); + assert((parent == nullptr) == (*path == '/')); return song_alloc(path, parent); } @@ -83,14 +87,14 @@ song_free(struct song *song) char * song_get_uri(const struct song *song) { - assert(song != NULL); + assert(song != nullptr); assert(*song->uri); if (!song_in_database(song) || directory_is_root(song->parent)) return g_strdup(song->uri); else return g_strconcat(directory_get_path(song->parent), - "/", song->uri, NULL); + "/", song->uri, nullptr); } double @@ -99,7 +103,7 @@ song_get_duration(const struct song *song) if (song->end_ms > 0) return (song->end_ms - song->start_ms) / 1000.0; - if (song->tag == NULL) + if (song->tag == nullptr) return 0; return song->tag->time - song->start_ms / 1000.0; diff --git a/src/song.h b/src/song.h index 8b97d45d0..441d8729b 100644 --- a/src/song.h +++ b/src/song.h @@ -58,6 +58,8 @@ struct song { char uri[sizeof(int)]; }; +G_BEGIN_DECLS + /** allocate a new song with a remote URL */ struct song * song_remote_new(const char *uri); @@ -117,4 +119,6 @@ song_is_file(const struct song *song) return song_in_database(song) || song->uri[0] == '/'; } +G_END_DECLS + #endif |