libsaria: Remove libsaria class

I replaced the class functions with simple functions that exist in
multiple files.  I think things will be easier to work with now.
This commit is contained in:
Bryan Schumaker 2011-09-12 11:08:56 -04:00
parent dbce5c244a
commit d3b8020bbe
7 changed files with 68 additions and 166 deletions

View File

@ -1,36 +1,9 @@
#ifndef LIBSARIA_H
#define LIBSARIA_H
#include <libsaria/audio.h>
#include <libsaria/print.h>
class Libsaria
{
private:
Audio audio;
public:
Libsaria(int, char**);
~Libsaria();
/* Other functions */
void load(string);
void set_volume(double);
double get_volume();
/* Control functions */
void play();
void pause();
void stop();
/* Functions related to position in the song */
void seek(int);
void seek_to(double);
};
class Libsaria *libsaria_get();
void libsaria_init(int, char**);
void libsaria_init(int, char **);
void libsaria_quit();
void libsaria_idle_task();
void audio_init(int, char **);
#endif /* LIBSARIA_H */

56
libsaria/audio.cpp Normal file
View File

@ -0,0 +1,56 @@
#include <libsaria/libsaria.h>
#include <libsaria/callback.h>
#include <libsaria/audio.h>
static Audio audio;
void audio_init(int argc, char **argv)
{
audio.init(argc, argv);
}
void libsaria_seek_to(double prcnt)
{
audio.seek_to(prcnt);
}
void libsaria_seek(int dt)
{
audio.seek(dt);
}
void libsaria_play()
{
if(audio.play())
trigger_callback(PLAY);
}
void libsaria_pause()
{
if(audio.pause())
trigger_callback(PAUSE);
}
void libsaria_stop()
{
libsaria_pause();
libsaria_seek_to(0);
}
void libsaria_load(string filepath)
{
audio.load(filepath);
libsaria_play();
}
void libsaria_set_volume(double volume)
{
audio.set_volume(volume);
trigger_callback(VOLUME);
}
double libsaria_get_volume()
{
return audio.get_volume();
}

View File

@ -1,45 +0,0 @@
#include <libsaria/libsaria.h>
#include <libsaria/callback.h>
#include <libsaria/audio.h>
/*
* Implementations of functions defined in the libsaria class
*/
void Libsaria::play()
{
if(audio.play())
trigger_callback(PLAY);
}
void Libsaria::pause()
{
if(audio.pause())
trigger_callback(PAUSE);
}
void Libsaria::stop()
{
pause();
seek_to(0);
}
/*
* Convenience functions for accessing libsaria class functions
*/
void libsaria_play()
{
libsaria_get()->play();
}
void libsaria_pause()
{
libsaria_get()->pause();
}
void libsaria_stop()
{
libsaria_get()->stop();
}

View File

@ -1,21 +0,0 @@
#include <libsaria/libsaria.h>
static class Libsaria *libsaria;
class Libsaria *libsaria_get()
{
return libsaria;
}
void libsaria_init(int argc, char **argv)
{
print("Initializing libsaria");
libsaria = new Libsaria(argc, argv);
}
void libsaria_quit()
{
print("Quitting libsaria");
delete libsaria;
}

View File

@ -1,52 +1,14 @@
#include <libsaria/libsaria.h>
#include <libsaria/callback.h>
#include <libsaria/print.h>
/*
* Implementations of functions defined in the libsaria class
*/
Libsaria::Libsaria(int argc, char **argv)
void libsaria_init(int argc, char **argv)
{
audio.init(argc, argv);
print("Initializing libsaria");
audio_init(argc, argv);
}
Libsaria::~Libsaria()
void libsaria_quit()
{
}
void Libsaria::load(string filepath)
{
audio.load(filepath);
play();
}
void Libsaria::set_volume(double volume)
{
audio.set_volume(volume);
trigger_callback(VOLUME);
}
double Libsaria::get_volume()
{
return audio.get_volume();
}
/*
* Convenience functions for accessing libsaria class functions
*/
void libsaria_load(string filepath)
{
libsaria_get()->load(filepath);
}
void libsaria_set_volume(double volume)
{
libsaria_get()->set_volume(volume);
}
double libsaria_get_volume()
{
return libsaria_get()->get_volume();
print("Quitting libsaria");
}

View File

@ -1,26 +0,0 @@
#include <libsaria/libsaria.h>
/*
* Implementations of functions defined in the libsaria class
*/
void Libsaria::seek_to(double prcnt)
{
audio.seek_to(prcnt);
}
void Libsaria::seek(int dt)
{
audio.seek(dt);
}
/*
* Convenience functions for accessing libsaria class functions
*/
void libsaria_seek(int dt)
{
libsaria_get()->seek(dt);
}

View File

@ -6,7 +6,10 @@
#include <ocarina/settings.h>
#include <ocarina/footer.h>
#include <ocarina/window.h>
#include <libsaria/libsaria.h>
#include <libsaria/controls.h>
#include <libsaria/print.h>
static gboolean ocarina_idle(gpointer data)
{
@ -46,7 +49,7 @@ int main(int argc, char **argv)
ocarina_init(argc, argv);
if (argc > 1)
libsaria_get()->load(argv[1]);
libsaria_load(argv[1]);
gtk_main();
libsaria_quit();