[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash/extensions/lirc lirc.cpp
From: |
Rob Savoye |
Subject: |
[Gnash-commit] gnash/extensions/lirc lirc.cpp |
Date: |
Fri, 14 Sep 2007 23:16:21 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Rob Savoye <rsavoye> 07/09/14 23:16:21
Modified files:
extensions/lirc: lirc.cpp
Log message:
Much more complete implementation of the lirc_client API.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/extensions/lirc/lirc.cpp?cvsroot=gnash&r1=1.1&r2=1.2
Patches:
Index: lirc.cpp
===================================================================
RCS file: /sources/gnash/gnash/extensions/lirc/lirc.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- lirc.cpp 12 Sep 2007 04:16:30 -0000 1.1
+++ lirc.cpp 14 Sep 2007 23:16:21 -0000 1.2
@@ -20,11 +20,16 @@
#include "config.h"
#endif
-#include <map>
#include <iostream>
+
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+
#include <string>
#include "log.h"
#include "lirc.h"
+#include "lirc/lirc_client.h"
#include "fn_call.h"
#include "as_object.h"
#include "builtin_function.h" // need builtin_function
@@ -33,20 +38,19 @@
namespace gnash
{
+ struct lirc_config *config;
-as_value lirc_ext_init(const fn_call& fn);
-as_value lirc_ext_deinit(const fn_call& fn);
-as_value lirc_ext_readconfig(const fn_call& fn);
-as_value lirc_ext_freeconfig(const fn_call& fn);
-as_value lirc_ext_nextcode(const fn_call& fn);
-as_value lirc_ext_code2char(const fn_call& fn);
-as_value lirc_ext_readconfig_only(const fn_call& fn);
-as_value lirc_ext_code2charprog(const fn_call& fn);
-as_value lirc_ext_getsocketname(const fn_call& fn);
-as_value lirc_ext_getmode(const fn_call& fn);
-as_value lirc_ext_setmode(const fn_call& fn);
-
-LogFile& dbglogfile = LogFile::getDefaultInstance();
+ as_value lirc_ext_init(const fn_call& fn);
+ as_value lirc_ext_deinit(const fn_call& fn);
+ as_value lirc_ext_readconfig(const fn_call& fn);
+ as_value lirc_ext_freeconfig(const fn_call& fn);
+ as_value lirc_ext_nextcode(const fn_call& fn);
+ as_value lirc_ext_code2char(const fn_call& fn);
+ as_value lirc_ext_readconfig_only(const fn_call& fn);
+ as_value lirc_ext_code2charprog(const fn_call& fn);
+ as_value lirc_ext_getsocketname(const fn_call& fn);
+ as_value lirc_ext_getmode(const fn_call& fn);
+ as_value lirc_ext_setmode(const fn_call& fn);
class lirc_as_object : public as_object
{
@@ -57,7 +61,7 @@
static void
attachInterface(as_object *obj)
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
obj->init_member("lirc_init", new builtin_function(lirc_ext_init));
obj->init_member("lirc_deinit", new builtin_function(lirc_ext_deinit));
obj->init_member("lirc_readconfig", new
builtin_function(lirc_ext_readconfig));
@@ -74,7 +78,7 @@
static as_object*
getInterface()
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
static boost::intrusive_ptr<as_object> o;
if (o == NULL) {
o = new as_object();
@@ -85,7 +89,7 @@
static as_value
lirc_ctor(const fn_call& /* fn */)
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
lirc_as_object* obj = new lirc_as_object();
attachInterface(obj);
@@ -96,38 +100,44 @@
Lirc::Lirc()
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
}
Lirc::~Lirc()
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
}
+// int lirc_init(char *prog,int verbose);
as_value
-lirc_ext_deinit(const fn_call& fn)
+lirc_ext_init(const fn_call& fn)
{
GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
string text = fn.arg(0).to_string();
-// return as_value(ptr->obj.deinit(text.c_str()));
+ int num = fn.arg(1).to_number<int>();
+ return as_value(lirc_init(const_cast<char *>(text.c_str()), num));
}
+ return as_value(false);
}
+// int lirc_deinit(void);
as_value
-lirc_ext_init(const fn_call& fn)
+lirc_ext_deinit(const fn_call& fn)
{
GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
string text = fn.arg(0).to_string();
-// return as_value(ptr->obj.init(text.c_str()));
+ return as_value(lirc_deinit());
}
+ return as_value(false);
}
+// int lirc_readconfig(char *file,struct lirc_config **config, int
(check)(char *s));
as_value
lirc_ext_readconfig(const fn_call& fn)
{
@@ -136,19 +146,29 @@
if (fn.nargs > 0) {
string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(1).to_object().get());
+ char *code = const_cast<char *>(text.c_str());
+ // char *check = const_cast<char *>(fn.arg(2).to_string().c_str());
+ // return as_value(lirc_readconfig(const_cast<char *>(text.c_str(),
&config, check)));
}
+ return as_value(false);
}
+// void lirc_freeconfig(struct lirc_config *config);
as_value lirc_ext_freeconfig(const fn_call& fn)
{
GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(0).to_object().get());
+ lirc_freeconfig(config);
+ return as_value(true);
}
+ return as_value(false);
}
+// int lirc_nextcode(char **code);
as_value lirc_ext_nextcode(const fn_call& fn)
{
GNASH_REPORT_FUNCTION;
@@ -156,19 +176,29 @@
if (fn.nargs > 0) {
string text = fn.arg(0).to_string();
+ char *code = const_cast<char *>(text.c_str());
+ return as_value(lirc_nextcode(&code));
}
+ return as_value(false);
}
+// int lirc_code2char(struct lirc_config *config,char *code,char **string);
as_value lirc_ext_code2char(const fn_call& fn)
{
GNASH_REPORT_FUNCTION;
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(0).to_object().get());
+ char *code = const_cast<char *>(fn.arg(1).to_string().c_str());
+ char *str = const_cast<char *>(fn.arg(2).to_string().c_str());
+ return as_value(lirc_code2char(config, code, &str));
}
+ return as_value(false);
}
+// int lirc_readconfig_only(char *file,struct lirc_config **config,
+// int (check)(char *s));
as_value
lirc_ext_readconfig_only(const fn_call& fn)
{
@@ -176,10 +206,16 @@
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ char *file = const_cast<char *>(fn.arg(0).to_string().c_str());
+ config = dynamic_cast<lirc_config *>(fn.arg(1).to_object().get());
+ char *check = const_cast<char *>(fn.arg(2).to_string().c_str());
+ // return as_value(lirc_readconfig_only(file, &config, check));
}
+ return as_value(false);
}
+// int lirc_code2charprog(struct lirc_config *config,char *code,char **string,
+// char **prog);
as_value
lirc_ext_code2charprog(const fn_call& fn)
{
@@ -187,10 +223,16 @@
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(0).to_object().get());
+ char *code = const_cast<char *>(fn.arg(1).to_string().c_str());
+ char *str = const_cast<char *>(fn.arg(2).to_string().c_str());
+ char *prog = const_cast<char *>(fn.arg(3).to_string().c_str());
+ return as_value(lirc_code2charprog(config, code, &str, &prog));
}
+ return as_value(false);
}
+// size_t lirc_getsocketname(const char *filename, char *buf, size_t size);
as_value
lirc_ext_getsocketname(const fn_call& fn)
{
@@ -198,10 +240,15 @@
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ const char *filename = fn.arg(0).to_string().c_str();
+ char *buf = const_cast<char *>(fn.arg(1).to_string().c_str());
+ size_t size = fn.arg(2).to_number<int>();
+ lirc_getsocketname(filename, buf, size);
}
+ return as_value(false);
}
+// const char *lirc_getmode(struct lirc_config *config);
as_value
lirc_ext_getmode(const fn_call& fn)
{
@@ -209,10 +256,13 @@
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(0).to_object().get());
+ return as_value(lirc_getmode(config));
}
+ return as_value(false);
}
+// const char *lirc_setmode(struct lirc_config *config, const char *mode);
as_value
lirc_ext_setmode(const fn_call& fn)
{
@@ -220,8 +270,11 @@
boost::intrusive_ptr<lirc_as_object> ptr =
ensureType<lirc_as_object>(fn.this_ptr);
if (fn.nargs > 0) {
- string text = fn.arg(0).to_string();
+ config = dynamic_cast<lirc_config *>(fn.arg(0).to_object().get());
+ char *mode = const_cast<char *>(fn.arg(1).to_string().c_str());
+ return as_value(lirc_setmode(config, mode));
}
+ return as_value(false);
}
std::auto_ptr<as_object>
@@ -230,6 +283,7 @@
return std::auto_ptr<as_object>(new lirc_as_object());
}
+// const char *lirc_setmode(struct lirc_config *config, const char *mode);
extern "C" {
void
lirc_class_init(as_object &obj)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash/extensions/lirc lirc.cpp,
Rob Savoye <=