core/tags/album: Replace std::string with gchar *

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-11-11 08:11:54 -05:00
parent 7c3bba11b5
commit ad48d24533
6 changed files with 31 additions and 28 deletions

View File

@ -1,3 +1,3 @@
#!/usr/bin/python
res = Glob("*.cpp")
res = Glob("*.cpp") + Glob("*.c")
Return("res")

View File

@ -9,39 +9,38 @@ extern "C" {
static struct database album_db;
static gchar *__album_key(const std::string &name, unsigned int year)
static gchar *__album_key(const gchar *name, unsigned int year)
{
return g_strdup_printf("%u/%s", year, name.c_str());
return g_strdup_printf("%u/%s", year, name);
}
static struct album *__album_setup(struct album *album, const gchar *name)
static struct album *__album_alloc(gchar *name, unsigned int year)
{
gchar *lower = string_lowercase(name);
struct album *album = new struct album;
dbe_init(&album->al_dbe, album);
album->al_year = year;
album->al_name = name;
album->al_lower = lower;
album->al_lower = string_lowercase(album->al_name);
g_free(lower);
return album;
}
static struct db_entry *album_alloc(const gchar *key)
{
struct album *album = new struct album;
unsigned int year;
gchar *name;
if (sscanf(key, "%u/%m[^\n]", &album->al_year, &name) == 1)
if (sscanf(key, "%u/%m[^\n]", &year, &name) == 1)
name = g_strdup("");
album = __album_setup(album, name);
g_free(name);
return &album->al_dbe;
return &__album_alloc(name, year)->al_dbe;
}
static void album_free(struct db_entry *dbe)
{
g_free(ALBUM(dbe)->al_name);
g_free(ALBUM(dbe)->al_lower);
delete ALBUM(dbe);
}
@ -52,22 +51,20 @@ static gchar *album_key(struct db_entry *dbe)
static struct db_entry *album_read(struct file *file)
{
struct album *album = new struct album;
gchar *name, *line;
unsigned int year;
gchar *line, *name;
line = file_readl(file);
if (sscanf(line, "%u %m[^\n]", &album->al_year, &name) == 1)
if (sscanf(line, "%u %m[^\n]", &year, &name) == 1)
name = g_strdup("");
album = __album_setup(album, name);
g_free(line);
g_free(name);
return &album->al_dbe;
return &__album_alloc(name, year)->al_dbe;
}
static void album_write(struct file *file, struct db_entry *dbe)
{
file_writef(file, "%u %s", ALBUM(dbe)->al_year, ALBUM(dbe)->al_name.c_str());
file_writef(file, "%u %s", ALBUM(dbe)->al_year, ALBUM(dbe)->al_name);
}
@ -92,7 +89,7 @@ void album_db_deinit()
db_deinit(&album_db);
}
struct album *album_find(const std::string &name, unsigned int year)
struct album *album_find(const gchar *name, unsigned int year)
{
gchar *key = __album_key(name, year);
struct album *album = ALBUM(db_find(&album_db, key));
@ -107,7 +104,7 @@ struct album *album_get(const unsigned int index)
int album_compare(struct album *lhs, struct album *rhs)
{
return string_compare(lhs->al_lower.c_str(), rhs->al_lower.c_str());
return string_compare(lhs->al_lower, rhs->al_lower);
}
#ifdef CONFIG_TESTING

View File

@ -87,7 +87,7 @@ static void track_setup(struct db_entry *dbe)
filter_add(track->tr_lower.c_str(), track->dbe_index);
filter_add(track->tr_artist->ar_lower.c_str(), track->dbe_index);
filter_add(track->tr_album->al_lower.c_str(), track->dbe_index);
filter_add(track->tr_album->al_lower, track->dbe_index);
track->tr_library->li_size++;
}

View File

@ -61,12 +61,16 @@ public:
{
gchar *uri = gst_filename_to_uri(track_path(track).c_str(), NULL);
gchar *len = string_sec2str(track->tr_length);
gchar *from;
gst_change_state(GST_STATE_NULL);
g_object_set(G_OBJECT(gst_player), "uri", uri, NULL);
g_free(uri);
set_markup(o_album, "x-large", "From: " + track->tr_album->al_name);
from = g_strdup_printf("From: %s", track->tr_album->al_name);
set_markup(o_album, "x-large", from);
g_free(from);
set_markup(o_artist, "x-large", "By: " + track->tr_artist->ar_name);
set_markup(o_title, "xx-large", track->tr_title);
o_duration->set_text(len);

View File

@ -98,6 +98,7 @@ void QueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column,
Glib::ValueBase &value) const
{
struct track *track;
std::string field;
gchar *str;
if (!check_iter_validity(iter) ||
@ -119,7 +120,8 @@ void QueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column,
case 3:
return set_val(track->tr_artist->ar_name, value);
case 4:
return set_val(track->tr_album->al_name, value);
field = track->tr_album->al_name;
return set_val(field, value);
case 5:
return set_val(track->tr_album->al_year, value);
case 6:

View File

@ -22,8 +22,8 @@ extern "C" {
*/
struct album {
unsigned int al_year; /* This album's year. */
std::string al_name; /* This album's name. */
std::string al_lower; /* This album's name (lowercased). */
gchar *al_name; /* This album's name. */
gchar *al_lower; /* This album's name (lowercased). */
struct db_entry al_dbe;
};
@ -37,7 +37,7 @@ void album_db_init();
void album_db_deinit();
/* Called to find an album tag by name and year. */
struct album *album_find(const std::string &, unsigned int);
struct album *album_find(const gchar *, unsigned int);
/* Called to get an album tag with a specific index. */
struct album *album_get(const unsigned int);