index
:
lcd4linux.git
master
lcd4linux Debian packaging
Jonathan McCrohan
about
summary
refs
log
tree
commit
diff
stats
log msg
author
committer
range
path:
root
/
plugin.c
diff options
context:
1
2
3
4
5
6
7
8
9
10
15
20
25
30
35
40
space:
include
ignore
mode:
unified
ssdiff
-}
-
-static void my_log (RESULT *result, RESULT *arg1)
-{
- double value=log10(R2N(arg1));
- SetResult(&result, R_NUMBER, &value);
-}
-
-static void my_sin (RESULT *result, RESULT *arg1)
-{
- double value=sin(R2N(arg1));
- SetResult(&result, R_NUMBER, &value);
-}
-
-static void my_cos (RESULT *result, RESULT *arg1)
-{
- double value=cos(R2N(arg1));
- SetResult(&result, R_NUMBER, &value);
-}
-
-static void my_tan (RESULT *result, RESULT *arg1)
-{
- double value=tan(R2N(arg1));
- SetResult(&result, R_NUMBER, &value);
-}
-
-
-static void my_min (RESULT *result, RESULT *arg1, RESULT *arg2)
-{
- double a1=R2N(arg1);
- double a2=R2N(arg2);
- double value=a1<a2?a1:a2;
- SetResult(&result, R_NUMBER, &value);
-}
-
-static void my_max (RESULT *result, RESULT *arg1, RESULT *arg2)
-{
- double a1=R2N(arg1);
- double a2=R2N(arg2);
- double value=a1>a2?a1:a2;
- SetResult(&result, R_NUMBER, &value);
-}
-
-
-static void my_strlen (RESULT *result, RESULT *arg1)
-{
- double value=strlen(R2S(arg1));
- SetResult(&result, R_NUMBER, &value);
-}
+int plugin_init_math (void);
+int plugin_init_string (void);
int plugin_init (void)
{
- // set some handy constants
- AddNumericVariable ("Pi", M_PI);
- AddNumericVariable ("e", M_E);
-
- // register some basic math functions
- AddFunction ("sqrt", 1, my_sqrt);
- AddFunction ("exp", 1, my_exp);
- AddFunction ("ln", 1, my_ln);
- AddFunction ("log", 1, my_log);
- AddFunction ("sin", 1, my_sin);
- AddFunction ("cos", 1, my_cos);
- AddFunction ("tan", 1, my_tan);
+ // math plugin
+ plugin_init_math();
+ plugin_init_string();
- // min, max
- AddFunction ("min", 2, my_min);
- AddFunction ("max", 2, my_max);
-
- // register some basic string functions
- AddFunction ("strlen", 1, my_strlen);
-
return 0;
}