summaryrefslogtreecommitdiff
path: root/src/lua5
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua5')
-rw-r--r--src/lua5/imlua_capture.c58
-rw-r--r--src/lua5/imlua_image.c35
-rw-r--r--src/lua5/imlua_process.c8
3 files changed, 78 insertions, 23 deletions
diff --git a/src/lua5/imlua_capture.c b/src/lua5/imlua_capture.c
index 15d52ce..59ec0fb 100644
--- a/src/lua5/imlua_capture.c
+++ b/src/lua5/imlua_capture.c
@@ -2,7 +2,7 @@
* \brief IM Lua 5 Binding
*
* See Copyright Notice in im_lib.h
- * $Id: imlua_capture.c,v 1.1 2008/10/17 06:16:32 scuri Exp $
+ * $Id: imlua_capture.c,v 1.2 2009/08/12 04:09:17 scuri Exp $
*/
#include <string.h>
@@ -92,7 +92,10 @@ static int imluaVideoCaptureConnect (lua_State *L)
{
imVideoCapture *vc = imlua_checkvideocapture(L, 1);
int device = luaL_optint(L, 2, -1);
- lua_pushnumber(L, imVideoCaptureConnect(vc, device));
+ if (device == -1)
+ lua_pushnumber(L, imVideoCaptureConnect(vc, device));
+ else
+ lua_pushboolean(L, imVideoCaptureConnect(vc, device));
return 1;
}
@@ -123,7 +126,7 @@ static int imluaVideoCaptureShowDialog (lua_State *L)
int dialog = luaL_checkint(L, 2);
void *parent = lua_touserdata(L, 3);
- lua_pushnumber(L, imVideoCaptureShowDialog(vc, dialog, parent));
+ lua_pushboolean(L, imVideoCaptureShowDialog(vc, dialog, parent));
return 1;
}
@@ -158,7 +161,7 @@ static int imluaVideoCaptureGetFormat (lua_State *L)
int width, height;
char desc[10];
- lua_pushnumber(L, imVideoCaptureGetFormat(vc, format, &width, &height, desc));
+ lua_pushboolean(L, imVideoCaptureGetFormat(vc, format, &width, &height, desc));
lua_pushnumber(L, width);
lua_pushnumber(L, height);
lua_pushstring(L, desc);
@@ -190,34 +193,50 @@ static int imluaVideoCaptureSetImageSize (lua_State *L)
int width = luaL_checkint(L, 2);
int height = luaL_checkint(L, 3);
- lua_pushnumber(L, imVideoCaptureSetImageSize(vc, width, height));
+ lua_pushboolean(L, imVideoCaptureSetImageSize(vc, width, height));
return 1;
}
/*****************************************************************************\
- vc:SetFormat()
+ vc:SetInOut()
\*****************************************************************************/
-static int imluaVideoCaptureSetFormat (lua_State *L)
+static int imluaVideoCaptureSetInOut(lua_State *L)
{
imVideoCapture *vc = imlua_checkvideocapture(L, 1);
- int format = luaL_checkint(L, 2);
+ int input = luaL_checkint(L, 2);
+ int output = luaL_checkint(L, 3);
+ int cross = luaL_checkint(L, 4);
- lua_pushnumber(L, imVideoCaptureSetFormat(vc, format));
+ lua_pushboolean(L, imVideoCaptureSetInOut(vc, input, output, cross));
return 1;
}
/*****************************************************************************\
+ vc:SetFormat()
+\*****************************************************************************/
+static int imluaVideoCaptureSetFormat (lua_State *L)
+{
+ imVideoCapture *vc = imlua_checkvideocapture(L, 1);
+ int format = luaL_optint(L, 2, -1);
+ if (format == -1)
+ lua_pushnumber(L, imVideoCaptureSetFormat(vc, format));
+ else
+ lua_pushboolean(L, imVideoCaptureSetFormat(vc, format));
+ return 1;
+}
+
+/*****************************************************************************\
vc:ResetAttribute(attrib, fauto)
\*****************************************************************************/
static int imluaVideoCaptureResetAttribute (lua_State *L)
{
imVideoCapture *vc = imlua_checkvideocapture(L, 1);
const char *attrib = luaL_checkstring(L, 2);
- int fauto = luaL_checkint(L, 3);
+ int fauto = lua_toboolean(L, 3);
- lua_pushnumber(L, imVideoCaptureResetAttribute(vc, attrib, fauto));
+ lua_pushboolean(L, imVideoCaptureResetAttribute(vc, attrib, fauto));
return 1;
}
@@ -230,7 +249,7 @@ static int imluaVideoCaptureSetAttribute (lua_State *L)
const char *attrib = luaL_checkstring(L, 2);
float percent = (float) luaL_checknumber(L, 3);
- lua_pushnumber(L, imVideoCaptureSetAttribute(vc, attrib, percent));
+ lua_pushboolean(L, imVideoCaptureSetAttribute(vc, attrib, percent));
return 1;
}
@@ -243,7 +262,7 @@ static int imluaVideoCaptureGetAttribute (lua_State *L)
const char *attrib = luaL_checkstring(L, 2);
float percent;
- lua_pushnumber(L, imVideoCaptureGetAttribute(vc, attrib, &percent));
+ lua_pushboolean(L, imVideoCaptureGetAttribute(vc, attrib, &percent));
lua_pushnumber(L, percent);
return 2;
}
@@ -282,7 +301,7 @@ static int imluaVideoCaptureFrame (lua_State *L)
luaL_argerror(L, 2, "image must be of RGB or Gray color spaces");
imlua_checkdatatype(L, 2, image, IM_BYTE);
- lua_pushnumber(L, imVideoCaptureFrame(vc, image->data[0], image->color_space, timeout));
+ lua_pushboolean(L, imVideoCaptureFrame(vc, image->data[0], image->color_space, timeout));
return 1;
}
@@ -299,7 +318,7 @@ static int imluaVideoCaptureOneFrame (lua_State *L)
luaL_argerror(L, 2, "image must be of RGB or Gray color spaces");
imlua_checkdatatype(L, 2, image, IM_BYTE);
- lua_pushnumber(L, imVideoCaptureOneFrame(vc, image->data[0], image->color_space));
+ lua_pushboolean(L, imVideoCaptureOneFrame(vc, image->data[0], image->color_space));
return 1;
}
@@ -310,9 +329,11 @@ static int imluaVideoCaptureOneFrame (lua_State *L)
static int imluaVideoCaptureLive (lua_State *L)
{
imVideoCapture *vc = imlua_checkvideocapture(L, 1);
- int live = luaL_checkint(L, 2);
-
- lua_pushnumber(L, imVideoCaptureLive(vc, live));
+ int live = luaL_optint(L, 2, -1);
+ if (live == -1)
+ lua_pushnumber(L, imVideoCaptureLive(vc, live));
+ else
+ lua_pushboolean(L, imVideoCaptureLive(vc, live));
return 1;
}
@@ -377,6 +398,7 @@ static const luaL_reg imcapture_metalib[] = {
{"SetFormat", imluaVideoCaptureSetFormat},
{"GetImageSize", imluaVideoCaptureGetImageSize},
{"SetImageSize", imluaVideoCaptureSetImageSize},
+ {"SetInOut", imluaVideoCaptureSetInOut},
{"ResetAttribute", imluaVideoCaptureResetAttribute},
{"GetAttribute", imluaVideoCaptureGetAttribute},
{"SetAttribute", imluaVideoCaptureSetAttribute},
diff --git a/src/lua5/imlua_image.c b/src/lua5/imlua_image.c
index 22ed38c..dc3322a 100644
--- a/src/lua5/imlua_image.c
+++ b/src/lua5/imlua_image.c
@@ -2,7 +2,7 @@
* \brief IM Lua 5 Binding
*
* See Copyright Notice in im_lib.h
- * $Id: imlua_image.c,v 1.1 2008/10/17 06:16:32 scuri Exp $
+ * $Id: imlua_image.c,v 1.2 2009/08/12 04:09:17 scuri Exp $
*/
#include <string.h>
@@ -437,6 +437,28 @@ static int imluaImageIsBitmap (lua_State *L)
return 1;
}
+
+/*****************************************************************************\
+ image:GetOpenGLData()
+\*****************************************************************************/
+static int imluaImageGetOpenGLData (lua_State *L)
+{
+ int format;
+ imbyte* gldata;
+ imImage *image = imlua_checkimage(L, 1);
+
+ gldata = imImageGetOpenGLData(image, &format);
+ if (!gldata)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ lua_pushlightuserdata(L, gldata);
+ lua_pushinteger(L, format);
+ return 2;
+}
+
/*****************************************************************************\
image:GetPalette()
\*****************************************************************************/
@@ -551,6 +573,15 @@ static int imluaImageMakeBinary (lua_State *L)
}
/*****************************************************************************\
+ image:MakeGray()
+\*****************************************************************************/
+static int imluaImageMakeGray (lua_State *L)
+{
+ imImageMakeGray(imlua_checkimage(L, 1));
+ return 0;
+}
+
+/*****************************************************************************\
image:Width()
\*****************************************************************************/
static int imluaImageWidth(lua_State *L)
@@ -965,6 +996,7 @@ static const luaL_reg imimage_metalib[] = {
{"GetAttributeList", imluaImageGetAttributeList},
{"Clear", imluaImageClear},
{"IsBitmap", imluaImageIsBitmap},
+ {"GetOpenGLData", imluaImageGetOpenGLData},
{"SetPalette", imluaImageSetPalette},
{"GetPalette", imluaImageGetPalette},
{"CopyAttributes", imluaImageCopyAttributes},
@@ -975,6 +1007,7 @@ static const luaL_reg imimage_metalib[] = {
{"Match", imluaImageMatch},
{"SetBinary", imluaImageSetBinary},
{"MakeBinary", imluaImageMakeBinary},
+ {"MakeGray", imluaImageMakeGray},
{"Width", imluaImageWidth},
{"Height", imluaImageHeight},
{"Depth", imluaImageDepth},
diff --git a/src/lua5/imlua_process.c b/src/lua5/imlua_process.c
index 492a1ba..1c0dfc8 100644
--- a/src/lua5/imlua_process.c
+++ b/src/lua5/imlua_process.c
@@ -2,7 +2,7 @@
* \brief IM Lua 5 Binding
*
* See Copyright Notice in im_lib.h
- * $Id: imlua_process.c,v 1.5 2009/08/04 21:35:26 scuri Exp $
+ * $Id: imlua_process.c,v 1.6 2009/08/12 04:09:17 scuri Exp $
*/
#include <memory.h>
@@ -77,7 +77,7 @@ static int imluaCalcHistogram (lua_State *L)
{
imImage* src_image = imlua_checkimage(L, 1);
int plane = luaL_checkint(L, 2);
- int cumulative = luaL_checkint(L, 3);
+ int cumulative = lua_toboolean(L, 3);
switch (src_image->data_type)
{
@@ -112,7 +112,7 @@ static int imluaCalcGrayHistogram (lua_State *L)
{
unsigned long hist[256];
imImage* src_image = imlua_checkimage(L, 1);
- int cumulative = luaL_checkint(L, 2);
+ int cumulative = lua_toboolean(L, 2);
imlua_checkdatatype(L, 1, src_image, IM_BYTE);
if (src_image->color_space >= IM_CMYK)
@@ -1679,7 +1679,7 @@ static int imluaProcessMergeComplex (lua_State *L)
imImage *src_image1 = imlua_checkimage(L, 1);
imImage *src_image2 = imlua_checkimage(L, 2);
imImage *dst_image = imlua_checkimage(L, 3);
- int polar = luaL_checkint(L, 5);
+ int polar = lua_toboolean(L, 4);
imlua_checkdatatype(L, 1, src_image1, IM_FLOAT);
imlua_checkdatatype(L, 2, src_image2, IM_FLOAT);