diff options
Diffstat (limited to 'libraries/embryo/src/lib/embryo_time.c')
-rw-r--r-- | libraries/embryo/src/lib/embryo_time.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/libraries/embryo/src/lib/embryo_time.c b/libraries/embryo/src/lib/embryo_time.c deleted file mode 100644 index 90c14cf..0000000 --- a/libraries/embryo/src/lib/embryo_time.c +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include "config.h" | ||
3 | #endif | ||
4 | |||
5 | #ifndef EFL_HAVE_GETTIMEOFDAY | ||
6 | # error "Your platform isn't supported yet" | ||
7 | #endif | ||
8 | |||
9 | #include <sys/time.h> | ||
10 | #include <time.h> | ||
11 | |||
12 | #ifdef _MSC_VER | ||
13 | # include <winsock2.h> | ||
14 | #endif | ||
15 | |||
16 | #ifdef HAVE_EVIL | ||
17 | # include <Evil.h> | ||
18 | #endif | ||
19 | |||
20 | #ifdef HAVE_EXOTIC | ||
21 | # include <Exotic.h> | ||
22 | #endif | ||
23 | |||
24 | #include "Embryo.h" | ||
25 | #include "embryo_private.h" | ||
26 | |||
27 | /* exported time api */ | ||
28 | |||
29 | static Embryo_Cell | ||
30 | _embryo_time_seconds(Embryo_Program *ep __UNUSED__, Embryo_Cell *params __UNUSED__) | ||
31 | { | ||
32 | struct timeval timev; | ||
33 | double t; | ||
34 | float f; | ||
35 | |||
36 | gettimeofday(&timev, NULL); | ||
37 | t = (double)(timev.tv_sec - ((timev.tv_sec / (60 * 60 * 24)) * (60 * 60 * 24))) | ||
38 | + (((double)timev.tv_usec) / 1000000); | ||
39 | f = (float)t; | ||
40 | return EMBRYO_FLOAT_TO_CELL(f); | ||
41 | } | ||
42 | |||
43 | static Embryo_Cell | ||
44 | _embryo_time_date(Embryo_Program *ep, Embryo_Cell *params) | ||
45 | { | ||
46 | static time_t last_tzset = 0; | ||
47 | struct timeval timev; | ||
48 | struct tm *tm; | ||
49 | time_t tt; | ||
50 | |||
51 | if (params[0] != (8 * sizeof(Embryo_Cell))) return 0; | ||
52 | gettimeofday(&timev, NULL); | ||
53 | tt = (time_t)(timev.tv_sec); | ||
54 | if ((tt > (last_tzset + 1)) || | ||
55 | (tt < (last_tzset - 1))) | ||
56 | { | ||
57 | last_tzset = tt; | ||
58 | tzset(); | ||
59 | } | ||
60 | tm = localtime(&tt); | ||
61 | if (tm) | ||
62 | { | ||
63 | Embryo_Cell *cptr; | ||
64 | double t; | ||
65 | float f; | ||
66 | |||
67 | cptr = embryo_data_address_get(ep, params[1]); | ||
68 | if (cptr) *cptr = tm->tm_year + 1900; | ||
69 | cptr = embryo_data_address_get(ep, params[2]); | ||
70 | if (cptr) *cptr = tm->tm_mon + 1; | ||
71 | cptr = embryo_data_address_get(ep, params[3]); | ||
72 | if (cptr) *cptr = tm->tm_mday; | ||
73 | cptr = embryo_data_address_get(ep, params[4]); | ||
74 | if (cptr) *cptr = tm->tm_yday; | ||
75 | cptr = embryo_data_address_get(ep, params[5]); | ||
76 | if (cptr) *cptr = (tm->tm_wday + 6) % 7; | ||
77 | cptr = embryo_data_address_get(ep, params[6]); | ||
78 | if (cptr) *cptr = tm->tm_hour; | ||
79 | cptr = embryo_data_address_get(ep, params[7]); | ||
80 | if (cptr) *cptr = tm->tm_min; | ||
81 | cptr = embryo_data_address_get(ep, params[8]); | ||
82 | t = (double)tm->tm_sec + (((double)timev.tv_usec) / 1000000); | ||
83 | f = (float)t; | ||
84 | if (cptr) *cptr = EMBRYO_FLOAT_TO_CELL(f); | ||
85 | |||
86 | } | ||
87 | return 0; | ||
88 | } | ||
89 | |||
90 | /* functions used by the rest of embryo */ | ||
91 | |||
92 | void | ||
93 | _embryo_time_init(Embryo_Program *ep) | ||
94 | { | ||
95 | embryo_program_native_call_add(ep, "seconds", _embryo_time_seconds); | ||
96 | embryo_program_native_call_add(ep, "date", _embryo_time_date); | ||
97 | } | ||