Scilab: add %scilabconst in enum example

This commit is contained in:
Simon Marchetto 2013-08-30 16:41:42 +02:00
commit 39bab12d2c
4 changed files with 40 additions and 15 deletions

View file

@ -1,6 +1,7 @@
/* File : example.c */
#include "example.h"
#include "scilabconst_example.h"
#include <stdio.h>
void enum_test(color c) {
@ -14,3 +15,15 @@ void enum_test(color c) {
printf("color = Unknown color!\n");
}
}
void scilabconst_enum_test(fruit f) {
if (f == APPLE) {
printf("fruit = APPLE\n");
} else if (f == ORANGE) {
printf("fruit = ORANGE\n");
} else if (f == LEMON) {
printf("fruit = LEMON\n");
} else {
printf("fruit = Unknown fruit!\n");
}
}

View file

@ -1,13 +1,13 @@
/* File : example.i */
%module example
%scilabconst(1);
%{
#include "example.h"
#include "scilabconst_example.h"
%}
/* Let's just grab the original header file here */
%include "example.h"
%scilabconst(1);
%include "scilabconst_example.h"

View file

@ -2,19 +2,28 @@ lines(0);
exec loader.sce;
SWIG_Init();
// Print out the value of some enums
printf("\nTesting use of enums wrapped as Scilab functions\n");
printf("*** color ***\n");
printf(" RED = %i\n", RED);
printf(" BLUE = %i\n", BLUE);
printf(" GREEN = %i\n", GREEN);
printf(" RED = %i\n", RED_get());
printf(" BLUE = %i\n", BLUE_get());
printf(" GREEN = %i\n", GREEN_get());
printf("\nTesting use of enums with functions\n");
enum_test(RED);
enum_test(BLUE);
enum_test(GREEN);
enum_test(RED_get());
enum_test(BLUE_get());
enum_test(GREEN_get());
enum_test(int32(1234));
exit
printf("\nTesting use of enums wrapped as Scilab variables\n");
printf("*** fruit ***\n");
printf(" APPLE = %i\n", APPLE);
printf(" ORANGE = %i\n", ORANGE);
printf(" LEMON = %i\n", LEMON);
scilabconst_enum_test(APPLE);
scilabconst_enum_test(ORANGE);
scilabconst_enum_test(LEMON);
scilabconst_enum_test(int32(1234));
exit

View file

@ -0,0 +1,3 @@
typedef enum { APPLE, ORANGE, LEMON } fruit;
void scilabconst_enum_test(fruit f);