song: use C++ compiler
This commit is contained in:
parent
c1f90a99f4
commit
050ba302cb
@ -335,7 +335,7 @@ src_mpd_SOURCES = \
|
|||||||
src/replay_gain_config.c \
|
src/replay_gain_config.c \
|
||||||
src/replay_gain_info.c \
|
src/replay_gain_info.c \
|
||||||
src/sig_handlers.c \
|
src/sig_handlers.c \
|
||||||
src/song.c \
|
src/Song.cxx \
|
||||||
src/song_update.c \
|
src/song_update.c \
|
||||||
src/song_print.c \
|
src/song_print.c \
|
||||||
src/song_save.c \
|
src/song_save.c \
|
||||||
@ -1059,7 +1059,7 @@ test_DumpDatabase_SOURCES = test/DumpDatabase.cxx \
|
|||||||
src/Directory.cxx src/directory_save.c \
|
src/Directory.cxx src/directory_save.c \
|
||||||
src/playlist_vector.c src/playlist_database.c \
|
src/playlist_vector.c src/playlist_database.c \
|
||||||
src/db_lock.c src/db_save.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/tag.c src/tag_pool.c src/tag_save.c \
|
||||||
src/path.c \
|
src/path.c \
|
||||||
src/locate.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/io_thread.c src/io_thread.h \
|
||||||
src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
|
src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
|
||||||
src/uri.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/tag_handler.c src/tag_file.c \
|
||||||
src/audio_check.c src/pcm_buffer.c \
|
src/audio_check.c src/pcm_buffer.c \
|
||||||
src/text_input_stream.c src/fifo_buffer.c \
|
src/text_input_stream.c src/fifo_buffer.c \
|
||||||
|
@ -20,7 +20,10 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "song.h"
|
#include "song.h"
|
||||||
#include "directory.h"
|
#include "directory.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
|
}
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
@ -30,14 +33,15 @@ static struct song *
|
|||||||
song_alloc(const char *uri, struct directory *parent)
|
song_alloc(const char *uri, struct directory *parent)
|
||||||
{
|
{
|
||||||
size_t uri_length;
|
size_t uri_length;
|
||||||
struct song *song;
|
|
||||||
|
|
||||||
assert(uri);
|
assert(uri);
|
||||||
uri_length = strlen(uri);
|
uri_length = strlen(uri);
|
||||||
assert(uri_length);
|
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);
|
memcpy(song->uri, uri, uri_length + 1);
|
||||||
song->parent = parent;
|
song->parent = parent;
|
||||||
song->mtime = 0;
|
song->mtime = 0;
|
||||||
@ -49,13 +53,13 @@ song_alloc(const char *uri, struct directory *parent)
|
|||||||
struct song *
|
struct song *
|
||||||
song_remote_new(const char *uri)
|
song_remote_new(const char *uri)
|
||||||
{
|
{
|
||||||
return song_alloc(uri, NULL);
|
return song_alloc(uri, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct song *
|
struct song *
|
||||||
song_file_new(const char *path, struct directory *parent)
|
song_file_new(const char *path, struct directory *parent)
|
||||||
{
|
{
|
||||||
assert((parent == NULL) == (*path == '/'));
|
assert((parent == nullptr) == (*path == '/'));
|
||||||
|
|
||||||
return song_alloc(path, parent);
|
return song_alloc(path, parent);
|
||||||
}
|
}
|
||||||
@ -83,14 +87,14 @@ song_free(struct song *song)
|
|||||||
char *
|
char *
|
||||||
song_get_uri(const struct song *song)
|
song_get_uri(const struct song *song)
|
||||||
{
|
{
|
||||||
assert(song != NULL);
|
assert(song != nullptr);
|
||||||
assert(*song->uri);
|
assert(*song->uri);
|
||||||
|
|
||||||
if (!song_in_database(song) || directory_is_root(song->parent))
|
if (!song_in_database(song) || directory_is_root(song->parent))
|
||||||
return g_strdup(song->uri);
|
return g_strdup(song->uri);
|
||||||
else
|
else
|
||||||
return g_strconcat(directory_get_path(song->parent),
|
return g_strconcat(directory_get_path(song->parent),
|
||||||
"/", song->uri, NULL);
|
"/", song->uri, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
double
|
double
|
||||||
@ -99,7 +103,7 @@ song_get_duration(const struct song *song)
|
|||||||
if (song->end_ms > 0)
|
if (song->end_ms > 0)
|
||||||
return (song->end_ms - song->start_ms) / 1000.0;
|
return (song->end_ms - song->start_ms) / 1000.0;
|
||||||
|
|
||||||
if (song->tag == NULL)
|
if (song->tag == nullptr)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return song->tag->time - song->start_ms / 1000.0;
|
return song->tag->time - song->start_ms / 1000.0;
|
@ -58,6 +58,8 @@ struct song {
|
|||||||
char uri[sizeof(int)];
|
char uri[sizeof(int)];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
/** allocate a new song with a remote URL */
|
/** allocate a new song with a remote URL */
|
||||||
struct song *
|
struct song *
|
||||||
song_remote_new(const char *uri);
|
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] == '/';
|
return song_in_database(song) || song->uri[0] == '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user