libsaria: Turn the library::Renderer into a library::Driver
This will provide a 2-way notification system, rather than just going from libsaria to the UI. Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
111e8f2c3b
commit
4448ba7ce1
|
@ -14,15 +14,14 @@ namespace libsaria
|
|||
string path;
|
||||
};
|
||||
|
||||
class Renderer {
|
||||
class Driver {
|
||||
public:
|
||||
Renderer();
|
||||
~Renderer();
|
||||
Driver();
|
||||
~Driver();
|
||||
|
||||
void add_path(string);
|
||||
virtual void path_added(Path *) = 0;
|
||||
};
|
||||
void set_renderer(Renderer *);
|
||||
|
||||
void add_path(string);
|
||||
|
||||
/*namespace iter
|
||||
{
|
||||
|
|
|
@ -12,7 +12,6 @@ using namespace std;
|
|||
#include <libsaria/stack.h>*/
|
||||
|
||||
static list<struct libsaria::library::Path> path_list;
|
||||
static libsaria::library::Renderer *renderer;
|
||||
/*list<libsaria::LibraryPath> path_list;
|
||||
libsaria::Playlist lib_playlist(PL_RANDOM | PL_SEQUENTIAL | PL_FILTER);
|
||||
static map<sid_t, libsaria::Track *> lookup_map;
|
||||
|
@ -36,9 +35,12 @@ static void do_update(libsaria::LibraryPath *path):
|
|||
namespace libsaria
|
||||
{
|
||||
|
||||
void library::set_renderer(Renderer *render)
|
||||
library::Driver::Driver()
|
||||
{
|
||||
}
|
||||
|
||||
library::Driver::~Driver()
|
||||
{
|
||||
renderer = render;
|
||||
}
|
||||
/*
|
||||
void library::init()
|
||||
|
@ -78,13 +80,12 @@ namespace libsaria
|
|||
trigger_callback(LIBRARY_REFRESH);
|
||||
}
|
||||
*/
|
||||
void library::add_path(string dir)
|
||||
void library::Driver::add_path(string dir)
|
||||
{
|
||||
struct Path path;
|
||||
path.path = dir;
|
||||
path_list.push_back(path);
|
||||
if (renderer)
|
||||
renderer->path_added(&path);
|
||||
path_added(&path);
|
||||
}
|
||||
/*
|
||||
void library::remove_path(string dir)
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
// Copyright (c) 2011 Bryan Schumaker.
|
||||
|
||||
#include <libsaria/library.h>
|
||||
|
||||
namespace libsaria
|
||||
{
|
||||
|
||||
namespace library
|
||||
{
|
||||
|
||||
Renderer::Renderer()
|
||||
{
|
||||
}
|
||||
|
||||
Renderer::~Renderer()
|
||||
{
|
||||
}
|
||||
|
||||
}; /* Namespace: library */
|
||||
|
||||
}; /* Namespace: libsaria */
|
|
@ -5,12 +5,24 @@
|
|||
#include <ocarina/button.h>
|
||||
#include <ocarina/body.h>
|
||||
|
||||
class LibraryDriver : public libsaria::library::Driver {
|
||||
public:
|
||||
void path_added(libsaria::library::Path *);
|
||||
};
|
||||
|
||||
static LibraryDriver driver;
|
||||
|
||||
void LibraryDriver::path_added(libsaria::library::Path *path)
|
||||
{
|
||||
println("Path added: " + path->path);
|
||||
}
|
||||
|
||||
static void on_click_add(GtkWidget *b, GdkEvent *e, gpointer d)
|
||||
{
|
||||
string dir = ocarina::choose_dir();
|
||||
if (dir != "") {
|
||||
println("Scanning dir: " + dir);
|
||||
libsaria::library::add_path(dir);
|
||||
driver.add_path(dir);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue