2010-08-09 13:28:56 +00:00
|
|
|
/*
|
|
|
|
ruby
|
2013-07-29 09:42:45 +00:00
|
|
|
version: 0.10 (2013-07-27)
|
2010-08-09 13:28:56 +00:00
|
|
|
license: public domain
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef RUBY_H
|
|
|
|
#define RUBY_H
|
|
|
|
|
2013-04-09 13:31:46 +00:00
|
|
|
#include <nall/nall.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/input.hpp>
|
|
|
|
|
|
|
|
namespace ruby {
|
|
|
|
|
|
|
|
#include <ruby/video.hpp>
|
|
|
|
#include <ruby/audio.hpp>
|
|
|
|
#include <ruby/input.hpp>
|
|
|
|
|
2011-09-29 12:08:22 +00:00
|
|
|
struct VideoInterface {
|
2013-05-02 11:25:45 +00:00
|
|
|
void driver(const char* driver = "");
|
2013-07-29 09:42:45 +00:00
|
|
|
const char* optimalDriver();
|
|
|
|
const char* safestDriver();
|
|
|
|
const char* availableDrivers();
|
2010-08-09 13:28:56 +00:00
|
|
|
bool init();
|
|
|
|
void term();
|
|
|
|
|
|
|
|
bool cap(const nall::string& name);
|
|
|
|
nall::any get(const nall::string& name);
|
|
|
|
bool set(const nall::string& name, const nall::any& value);
|
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool lock(uint32_t*& data, unsigned& pitch, unsigned width, unsigned height);
|
2010-08-09 13:28:56 +00:00
|
|
|
void unlock();
|
|
|
|
void clear();
|
|
|
|
void refresh();
|
|
|
|
VideoInterface();
|
|
|
|
~VideoInterface();
|
|
|
|
|
|
|
|
private:
|
2013-05-02 11:25:45 +00:00
|
|
|
Video* p = nullptr;
|
2010-08-09 13:28:56 +00:00
|
|
|
};
|
|
|
|
|
2011-09-29 12:08:22 +00:00
|
|
|
struct AudioInterface {
|
2013-05-02 11:25:45 +00:00
|
|
|
void driver(const char* driver = "");
|
2013-07-29 09:42:45 +00:00
|
|
|
const char* optimalDriver();
|
|
|
|
const char* safestDriver();
|
|
|
|
const char* availableDrivers();
|
2010-08-09 13:28:56 +00:00
|
|
|
bool init();
|
|
|
|
void term();
|
|
|
|
|
|
|
|
bool cap(const nall::string& name);
|
|
|
|
nall::any get(const nall::string& name);
|
|
|
|
bool set(const nall::string& name, const nall::any& value);
|
|
|
|
|
|
|
|
void sample(uint16_t left, uint16_t right);
|
|
|
|
void clear();
|
|
|
|
AudioInterface();
|
|
|
|
~AudioInterface();
|
|
|
|
|
|
|
|
private:
|
2013-05-02 11:25:45 +00:00
|
|
|
Audio* p = nullptr;
|
2010-08-09 13:28:56 +00:00
|
|
|
};
|
|
|
|
|
2011-09-29 12:08:22 +00:00
|
|
|
struct InputInterface {
|
2013-05-02 11:25:45 +00:00
|
|
|
void driver(const char* driver = "");
|
2013-07-29 09:42:45 +00:00
|
|
|
const char* optimalDriver();
|
|
|
|
const char* safestDriver();
|
|
|
|
const char* availableDrivers();
|
2010-08-09 13:28:56 +00:00
|
|
|
bool init();
|
|
|
|
void term();
|
|
|
|
|
|
|
|
bool cap(const nall::string& name);
|
|
|
|
nall::any get(const nall::string& name);
|
|
|
|
bool set(const nall::string& name, const nall::any& value);
|
|
|
|
|
|
|
|
bool acquire();
|
|
|
|
bool unacquire();
|
|
|
|
bool acquired();
|
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool poll(int16_t* table);
|
2010-08-09 13:28:56 +00:00
|
|
|
InputInterface();
|
|
|
|
~InputInterface();
|
|
|
|
|
|
|
|
private:
|
2013-05-02 11:25:45 +00:00
|
|
|
Input* p = nullptr;
|
2010-08-09 13:28:56 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern VideoInterface video;
|
|
|
|
extern AudioInterface audio;
|
|
|
|
extern InputInterface input;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|