diff options
Diffstat (limited to 'renderscript/include/rs_time.rsh')
-rw-r--r-- | renderscript/include/rs_time.rsh | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/renderscript/include/rs_time.rsh b/renderscript/include/rs_time.rsh new file mode 100644 index 0000000..abcb88b --- /dev/null +++ b/renderscript/include/rs_time.rsh @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** @file rs_time.rsh + * \brief RenderScript time routines + * + * This file contains RenderScript functions relating to time and date + * manipulation. + */ + +#ifndef __RS_TIME_RSH__ +#define __RS_TIME_RSH__ + +/** + * Calendar time interpreted as seconds elapsed since the Epoch (00:00:00 on + * January 1, 1970, Coordinated Universal Time (UTC)). + */ +#ifndef __LP64__ +typedef int rs_time_t; +#else +typedef long rs_time_t; +#endif + +/** + * Data structure for broken-down time components. + * + * tm_sec - Seconds after the minute. This ranges from 0 to 59, but possibly + * up to 60 for leap seconds. + * tm_min - Minutes after the hour. This ranges from 0 to 59. + * tm_hour - Hours past midnight. This ranges from 0 to 23. + * tm_mday - Day of the month. This ranges from 1 to 31. + * tm_mon - Months since January. This ranges from 0 to 11. + * tm_year - Years since 1900. + * tm_wday - Days since Sunday. This ranges from 0 to 6. + * tm_yday - Days since January 1. This ranges from 0 to 365. + * tm_isdst - Flag to indicate whether daylight saving time is in effect. The + * value is positive if it is in effect, zero if it is not, and + * negative if the information is not available. + */ +typedef struct { + int tm_sec; ///< seconds + int tm_min; ///< minutes + int tm_hour; ///< hours + int tm_mday; ///< day of the month + int tm_mon; ///< month + int tm_year; ///< year + int tm_wday; ///< day of the week + int tm_yday; ///< day of the year + int tm_isdst; ///< daylight savings time +} rs_tm; + +/** + * Returns the number of seconds since the Epoch (00:00:00 UTC, January 1, + * 1970). If @p timer is non-NULL, the result is also stored in the memory + * pointed to by this variable. If an error occurs, a value of -1 is returned. + * + * @param timer Location to also store the returned calendar time. + * + * @return Seconds since the Epoch. + */ +extern rs_time_t __attribute__((overloadable)) + rsTime(rs_time_t *timer); + +/** + * Converts the time specified by @p timer into broken-down time and stores it + * in @p local. This function also returns a pointer to @p local. If @p local + * is NULL, this function does nothing and returns NULL. + * + * @param local Broken-down time. + * @param timer Input time as calendar time. + * + * @return Pointer to broken-down time (same as input @p local). + */ +extern rs_tm * __attribute__((overloadable)) + rsLocaltime(rs_tm *local, const rs_time_t *timer); + +/** + * Returns the current system clock (uptime) in milliseconds. + * + * @return Uptime in milliseconds. + */ +extern int64_t __attribute__((overloadable)) + rsUptimeMillis(void); + +/** + * Returns the current system clock (uptime) in nanoseconds. + * + * @return Uptime in nanoseconds. + */ +extern int64_t __attribute__((overloadable)) + rsUptimeNanos(void); + +/** + * Returns the time in seconds since this function was last called in this + * script. + * + * @return Time in seconds. + */ +extern float __attribute__((overloadable)) + rsGetDt(void); + +#endif |