mirror of
https://github.com/ctruLua/ctruLua.git
synced 2025-10-27 16:39:29 +00:00
Fixed te cam lib, added some field for the documentation, added setFrameRate
This commit is contained in:
parent
09ea79bc86
commit
3aeb5b3534
1 changed files with 71 additions and 19 deletions
90
source/cam.c
90
source/cam.c
|
|
@ -296,6 +296,21 @@ static int cam_setEffect(lua_State *L) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
Set the frame rate of a camera.
|
||||||
|
@function setFrameRate
|
||||||
|
@tparam number camera (`SELECT_x`)
|
||||||
|
@tparam number rate frame rate (`FRAME_RATE_x`)
|
||||||
|
*/
|
||||||
|
static int cam_setFrameRate(lua_State *L) {
|
||||||
|
u8 cam = luaL_checkinteger(L, 1);
|
||||||
|
u8 rate = luaL_checkinteger(L, 2);
|
||||||
|
|
||||||
|
CAMU_SetFrameRate(cam, rate);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
Take a picture and put it in a texture.
|
Take a picture and put it in a texture.
|
||||||
@function takePicture
|
@function takePicture
|
||||||
|
|
@ -319,10 +334,8 @@ static int cam_takePicture(lua_State *L) {
|
||||||
Handle camReceiveEvent = 0;
|
Handle camReceiveEvent = 0;
|
||||||
|
|
||||||
CAMU_ClearBuffer(cam);
|
CAMU_ClearBuffer(cam);
|
||||||
CAMU_SetReceiving(&camReceiveEvent, buf, cam, bufSize, (s16)bufSize);
|
|
||||||
CAMU_StartCapture(cam);
|
CAMU_StartCapture(cam);
|
||||||
svcWaitSynchronization(camReceiveEvent, 300000000ULL);
|
CAMU_SetReceiving(&camReceiveEvent, buf, cam, bufSize, (s16)bufSize);
|
||||||
CAMU_SetReceiving(&camReceiveEvent, buf, cam, bufSize, (s16)bufSize); // I don't know why you have to put it twice ...
|
|
||||||
svcWaitSynchronization(camReceiveEvent, 300000000ULL);
|
svcWaitSynchronization(camReceiveEvent, 300000000ULL);
|
||||||
CAMU_StopCapture(cam);
|
CAMU_StopCapture(cam);
|
||||||
|
|
||||||
|
|
@ -365,13 +378,12 @@ static const struct luaL_Reg cam_lib[] = {
|
||||||
{"playShutterSound", cam_playShutterSound },
|
{"playShutterSound", cam_playShutterSound },
|
||||||
{"setSize", cam_setSize },
|
{"setSize", cam_setSize },
|
||||||
{"setEffect", cam_setEffect },
|
{"setEffect", cam_setEffect },
|
||||||
|
{"setFrameRate", cam_setFrameRate },
|
||||||
{"takePicture", cam_takePicture },
|
{"takePicture", cam_takePicture },
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Constants. Warning: long block
|
|
||||||
struct { char *name; int value; } cam_constants[] = {
|
struct { char *name; int value; } cam_constants[] = {
|
||||||
// port
|
|
||||||
/***
|
/***
|
||||||
First camera activated.
|
First camera activated.
|
||||||
@field PORT_CAM1
|
@field PORT_CAM1
|
||||||
|
|
@ -387,7 +399,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field PORT_BOTH
|
@field PORT_BOTH
|
||||||
*/
|
*/
|
||||||
{"PORT_BOTH", PORT_BOTH},
|
{"PORT_BOTH", PORT_BOTH},
|
||||||
// camera selection
|
|
||||||
/***
|
/***
|
||||||
@field SELECT_NONE
|
@field SELECT_NONE
|
||||||
*/
|
*/
|
||||||
|
|
@ -420,7 +431,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field SELECT_ALL
|
@field SELECT_ALL
|
||||||
*/
|
*/
|
||||||
{"SELECT_ALL", SELECT_ALL },
|
{"SELECT_ALL", SELECT_ALL },
|
||||||
// context
|
|
||||||
/***
|
/***
|
||||||
@field CONTEXT_NONE
|
@field CONTEXT_NONE
|
||||||
*/
|
*/
|
||||||
|
|
@ -437,7 +447,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field CONTEXT_BOTH
|
@field CONTEXT_BOTH
|
||||||
*/
|
*/
|
||||||
{"CONTEXT_BOTH", CONTEXT_BOTH},
|
{"CONTEXT_BOTH", CONTEXT_BOTH},
|
||||||
// image flip
|
|
||||||
/***
|
/***
|
||||||
@field FLIP_NONE
|
@field FLIP_NONE
|
||||||
*/
|
*/
|
||||||
|
|
@ -454,7 +463,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field FLIP_REVERSE
|
@field FLIP_REVERSE
|
||||||
*/
|
*/
|
||||||
{"FLIP_REVERSE", FLIP_REVERSE },
|
{"FLIP_REVERSE", FLIP_REVERSE },
|
||||||
// image size
|
|
||||||
/***
|
/***
|
||||||
640x480
|
640x480
|
||||||
@field SIZE_VGA
|
@field SIZE_VGA
|
||||||
|
|
@ -500,21 +508,58 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field SIZE_BOTTOM_LCD
|
@field SIZE_BOTTOM_LCD
|
||||||
*/
|
*/
|
||||||
{"SIZE_CTR_BOTTOM_LCD", SIZE_CTR_BOTTOM_LCD},
|
{"SIZE_CTR_BOTTOM_LCD", SIZE_CTR_BOTTOM_LCD},
|
||||||
// frame rate
|
/***
|
||||||
|
@field FRAME_RATE_15
|
||||||
|
*/
|
||||||
{"FRAME_RATE_15", FRAME_RATE_15 },
|
{"FRAME_RATE_15", FRAME_RATE_15 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_15_TO_5
|
||||||
|
*/
|
||||||
{"FRAME_RATE_15_TO_5", FRAME_RATE_15_TO_5 },
|
{"FRAME_RATE_15_TO_5", FRAME_RATE_15_TO_5 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_15_TO_2
|
||||||
|
*/
|
||||||
{"FRAME_RATE_15_To_2", FRAME_RATE_15_TO_2 },
|
{"FRAME_RATE_15_To_2", FRAME_RATE_15_TO_2 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_10
|
||||||
|
*/
|
||||||
{"FRAME_RATE_10", FRAME_RATE_10 },
|
{"FRAME_RATE_10", FRAME_RATE_10 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_8_5
|
||||||
|
*/
|
||||||
{"FRAME_RATE_8_5", FRAME_RATE_8_5 },
|
{"FRAME_RATE_8_5", FRAME_RATE_8_5 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_5
|
||||||
|
*/
|
||||||
{"FRAME_RATE_5", FRAME_RATE_5 },
|
{"FRAME_RATE_5", FRAME_RATE_5 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_20
|
||||||
|
*/
|
||||||
{"FRAME_RATE_20", FRAME_RATE_20 },
|
{"FRAME_RATE_20", FRAME_RATE_20 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_20_TO_5
|
||||||
|
*/
|
||||||
{"FRAME_RATE_20_TO_5", FRAME_RATE_20_TO_5 },
|
{"FRAME_RATE_20_TO_5", FRAME_RATE_20_TO_5 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_30
|
||||||
|
*/
|
||||||
{"FRAME_RATE_30", FRAME_RATE_30 },
|
{"FRAME_RATE_30", FRAME_RATE_30 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_TO_5
|
||||||
|
*/
|
||||||
{"FRAME_RATE_30_TO_5", FRAME_RATE_30_TO_5 },
|
{"FRAME_RATE_30_TO_5", FRAME_RATE_30_TO_5 },
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_15_TO_10
|
||||||
|
*/
|
||||||
{"FRAME_RATE_15_TO_10", FRAME_RATE_15_TO_10},
|
{"FRAME_RATE_15_TO_10", FRAME_RATE_15_TO_10},
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_20_TO_10
|
||||||
|
*/
|
||||||
{"FRAME_RATE_20_TO_10", FRAME_RATE_20_TO_10},
|
{"FRAME_RATE_20_TO_10", FRAME_RATE_20_TO_10},
|
||||||
|
/***
|
||||||
|
@field FRAME_RATE_30_TO_10
|
||||||
|
*/
|
||||||
{"FRAME_RATE_30_TO_10", FRAME_RATE_30_TO_10},
|
{"FRAME_RATE_30_TO_10", FRAME_RATE_30_TO_10},
|
||||||
// white balance
|
|
||||||
/***
|
/***
|
||||||
@field WHITe_BALANCE_AUTO
|
@field WHITe_BALANCE_AUTO
|
||||||
*/
|
*/
|
||||||
|
|
@ -539,7 +584,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field WHITE_BALANCE_7000K
|
@field WHITE_BALANCE_7000K
|
||||||
*/
|
*/
|
||||||
{"WHITE_BALANCE_7000K", WHITE_BALANCE_7000K},
|
{"WHITE_BALANCE_7000K", WHITE_BALANCE_7000K},
|
||||||
// white balance aliases
|
|
||||||
/***
|
/***
|
||||||
@field WHITE_BALANCE_MAX
|
@field WHITE_BALANCE_MAX
|
||||||
*/
|
*/
|
||||||
|
|
@ -568,13 +612,26 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field WHITE_BALANCE_SHADE
|
@field WHITE_BALANCE_SHADE
|
||||||
*/
|
*/
|
||||||
{"WHITE_BALANCE_SHADE", WHITE_BALANCE_SHADE },
|
{"WHITE_BALANCE_SHADE", WHITE_BALANCE_SHADE },
|
||||||
// photo mode
|
/***
|
||||||
|
@field PHOTO_MODE_NORMAL
|
||||||
|
*/
|
||||||
{"PHOTO_MODE_NORMAL", PHOTO_MODE_NORMAL },
|
{"PHOTO_MODE_NORMAL", PHOTO_MODE_NORMAL },
|
||||||
|
/***
|
||||||
|
@field PHOTO_MODE_PORTRAIT
|
||||||
|
*/
|
||||||
{"PHOTO_MODE_PORTRAIT", PHOTO_MODE_PORTRAIT },
|
{"PHOTO_MODE_PORTRAIT", PHOTO_MODE_PORTRAIT },
|
||||||
|
/***
|
||||||
|
@field PHOTO_MODE_LANDSCAPE
|
||||||
|
*/
|
||||||
{"PHOTO_MODE_LANDSCAPE", PHOTO_MODE_LANDSCAPE},
|
{"PHOTO_MODE_LANDSCAPE", PHOTO_MODE_LANDSCAPE},
|
||||||
|
/***
|
||||||
|
@field PHOTO_MODE_NIGHTVIEW
|
||||||
|
*/
|
||||||
{"PHOTO_MODE_NIGHTVIEW", PHOTO_MODE_NIGHTVIEW},
|
{"PHOTO_MODE_NIGHTVIEW", PHOTO_MODE_NIGHTVIEW},
|
||||||
|
/***
|
||||||
|
@field PHOTO_MODE_LETTER
|
||||||
|
*/
|
||||||
{"PHOTO_MODE_LETTER", PHOTO_MODE_LETTER },
|
{"PHOTO_MODE_LETTER", PHOTO_MODE_LETTER },
|
||||||
// camera special effects
|
|
||||||
/***
|
/***
|
||||||
@field EFFECT_NONE
|
@field EFFECT_NONE
|
||||||
*/
|
*/
|
||||||
|
|
@ -599,7 +656,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field EFFECT_SEPIA01
|
@field EFFECT_SEPIA01
|
||||||
*/
|
*/
|
||||||
{"EFFECT_SEPIA01", EFFECT_SEPIA01 },
|
{"EFFECT_SEPIA01", EFFECT_SEPIA01 },
|
||||||
// contrast
|
|
||||||
/***
|
/***
|
||||||
@field CONTRAST_01
|
@field CONTRAST_01
|
||||||
*/
|
*/
|
||||||
|
|
@ -656,7 +712,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field CONTRAST_HIGH
|
@field CONTRAST_HIGH
|
||||||
*/
|
*/
|
||||||
{"CONTRAST_HIGH", CONTRAST_HIGH },
|
{"CONTRAST_HIGH", CONTRAST_HIGH },
|
||||||
// lens correction
|
|
||||||
/***
|
/***
|
||||||
@field LENS_CORRECTION_OFF
|
@field LENS_CORRECTION_OFF
|
||||||
*/
|
*/
|
||||||
|
|
@ -669,7 +724,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field LENS_CORRECTION_BRIGHT
|
@field LENS_CORRECTION_BRIGHT
|
||||||
*/
|
*/
|
||||||
{"LENS_CORRECTION_BRIGHT", LENS_CORRECTION_BRIGHT},
|
{"LENS_CORRECTION_BRIGHT", LENS_CORRECTION_BRIGHT},
|
||||||
// shutter sounds
|
|
||||||
/***
|
/***
|
||||||
@field SHUTTER_NORMAL
|
@field SHUTTER_NORMAL
|
||||||
*/
|
*/
|
||||||
|
|
@ -682,8 +736,6 @@ struct { char *name; int value; } cam_constants[] = {
|
||||||
@field SHUTTER_MOVIE_END
|
@field SHUTTER_MOVIE_END
|
||||||
*/
|
*/
|
||||||
{"SHUTTER_MOVIE_END", SHUTTER_SOUND_TYPE_MOVIE_END},
|
{"SHUTTER_MOVIE_END", SHUTTER_SOUND_TYPE_MOVIE_END},
|
||||||
// Wow, look, the end of the tunnel !
|
|
||||||
// I think I will never do that again
|
|
||||||
{NULL, 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue