core/tags/genre: Replace std::string with gchar *
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
e98e74213e
commit
6c3d708576
|
@ -9,40 +9,41 @@ extern "C" {
|
|||
|
||||
static struct database genre_db;
|
||||
|
||||
static struct db_entry *genre_alloc(const gchar *name)
|
||||
static struct genre *__genre_alloc(gchar *name)
|
||||
{
|
||||
struct genre *genre = new struct genre;
|
||||
gchar *lower = string_lowercase(name);
|
||||
|
||||
dbe_init(&genre->ge_dbe, genre);
|
||||
genre->ge_name = name;
|
||||
genre->ge_lower = lower;
|
||||
genre->ge_lower = string_lowercase(name);
|
||||
|
||||
g_free(lower);
|
||||
return &genre->ge_dbe;
|
||||
return genre;
|
||||
}
|
||||
|
||||
static struct db_entry *genre_alloc(const gchar *name)
|
||||
{
|
||||
return &__genre_alloc(g_strdup(name))->ge_dbe;
|
||||
}
|
||||
|
||||
static void genre_free(struct db_entry *dbe)
|
||||
{
|
||||
g_free(GENRE(dbe)->ge_lower);
|
||||
delete GENRE(dbe);
|
||||
}
|
||||
|
||||
static gchar *genre_key(struct db_entry *dbe)
|
||||
{
|
||||
return g_strdup_printf(GENRE(dbe)->ge_name.c_str());
|
||||
return GENRE(dbe)->ge_name;
|
||||
}
|
||||
|
||||
static struct db_entry *genre_read(struct file *file)
|
||||
{
|
||||
gchar *name = file_readl(file);
|
||||
struct db_entry *dbe = genre_alloc(name);
|
||||
g_free(name);
|
||||
return dbe;
|
||||
return &__genre_alloc(file_readl(file))->ge_dbe;
|
||||
}
|
||||
|
||||
static void genre_write(struct file *file, struct db_entry *dbe)
|
||||
{
|
||||
file_writef(file, "%s", GENRE(dbe)->ge_name.c_str());
|
||||
file_writef(file, "%s", GENRE(dbe)->ge_name);
|
||||
}
|
||||
|
||||
|
||||
|
@ -67,9 +68,9 @@ void genre_db_deinit()
|
|||
db_deinit(&genre_db);
|
||||
}
|
||||
|
||||
struct genre *genre_find(const std::string &name)
|
||||
struct genre *genre_find(const gchar *name)
|
||||
{
|
||||
return GENRE(db_find(&genre_db, name.c_str()));
|
||||
return GENRE(db_find(&genre_db, name));
|
||||
}
|
||||
|
||||
struct genre *genre_get(const unsigned int index)
|
||||
|
@ -79,7 +80,7 @@ struct genre *genre_get(const unsigned int index)
|
|||
|
||||
int genre_compare(struct genre *lhs, struct genre *rhs)
|
||||
{
|
||||
return string_compare(lhs->ge_lower.c_str(), rhs->ge_lower.c_str());
|
||||
return string_compare(lhs->ge_lower, rhs->ge_lower);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TESTING
|
||||
|
|
|
@ -126,7 +126,8 @@ void QueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column,
|
|||
case 5:
|
||||
return set_val(track->tr_album->al_year, value);
|
||||
case 6:
|
||||
return set_val(track->tr_genre->ge_name, value);
|
||||
field = track->tr_genre->ge_name;
|
||||
return set_val(field, value);
|
||||
case 7:
|
||||
return set_val(track->tr_count, value);
|
||||
case 8:
|
||||
|
|
|
@ -14,8 +14,8 @@ extern "C" {
|
|||
* to the tag database.
|
||||
*/
|
||||
struct genre {
|
||||
std::string ge_name; /* This genre's name. */
|
||||
std::string ge_lower; /* This genre's name (lowercased). */
|
||||
gchar *ge_name; /* This genre's name. */
|
||||
gchar *ge_lower; /* This genre's name (lowercased). */
|
||||
struct db_entry ge_dbe;
|
||||
};
|
||||
|
||||
|
@ -29,7 +29,7 @@ void genre_db_init();
|
|||
void genre_db_deinit();
|
||||
|
||||
/* Called to find a genre tag by name. */
|
||||
struct genre *genre_find(const std::string &);
|
||||
struct genre *genre_find(const gchar *);
|
||||
|
||||
/* Called to get a genre tag with a specific index. */
|
||||
struct genre *genre_get(const unsigned int);
|
||||
|
|
|
@ -9,7 +9,7 @@ static void test_verify_empty(struct genre *genre)
|
|||
const struct db_ops *genre_ops = test_genre_ops();
|
||||
test_equal(genre->ge_name, "");
|
||||
test_equal(genre->ge_lower, "");
|
||||
test_str_equal(genre_ops->dbe_key(&genre->ge_dbe), "");
|
||||
test_equal(genre_ops->dbe_key(&genre->ge_dbe), "");
|
||||
}
|
||||
|
||||
static void test_verify_vg(struct genre *genre)
|
||||
|
@ -17,7 +17,7 @@ static void test_verify_vg(struct genre *genre)
|
|||
const struct db_ops *genre_ops = test_genre_ops();
|
||||
test_equal(genre->ge_name, "Video Game Music");
|
||||
test_equal(genre->ge_lower, "video game music");
|
||||
test_str_equal(genre_ops->dbe_key(&genre->ge_dbe), "Video Game Music");
|
||||
test_equal(genre_ops->dbe_key(&genre->ge_dbe), "Video Game Music");
|
||||
}
|
||||
|
||||
static void test_genre()
|
||||
|
@ -35,18 +35,21 @@ static void test_genre()
|
|||
file_writef(&f, "1 \n1 ");
|
||||
genre_ops->dbe_write(&f, &genre->ge_dbe);
|
||||
file_close(&f);
|
||||
g_free(genre->ge_name);
|
||||
genre_ops->dbe_free(&genre->ge_dbe);
|
||||
|
||||
file_open(&f, OPEN_READ);
|
||||
file_readf(&f, "%u", &i);
|
||||
genre = GENRE(genre_ops->dbe_read(&f));
|
||||
test_verify_empty(genre);
|
||||
g_free(genre->ge_name);
|
||||
genre_ops->dbe_free(&genre->ge_dbe);
|
||||
|
||||
file_readf(&f, "%u", &i);
|
||||
genre = GENRE(genre_ops->dbe_read(&f));
|
||||
file_close(&f);
|
||||
test_verify_vg(genre);
|
||||
g_free(genre->ge_name);
|
||||
genre_ops->dbe_free(&genre->ge_dbe);
|
||||
}
|
||||
|
||||
|
@ -62,6 +65,8 @@ static void test_genre_compare()
|
|||
test_equal(genre_compare(video, game), 1);
|
||||
test_equal(genre_compare(game, video), -1);
|
||||
|
||||
g_free(video->ge_name);
|
||||
g_free(game->ge_name);
|
||||
genre_ops->dbe_free(&video->ge_dbe);
|
||||
genre_ops->dbe_free(&game->ge_dbe);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue