112 lines
3.5 KiB
Plaintext
Executable File
112 lines
3.5 KiB
Plaintext
Executable File
/*
|
|
* 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)).
|
|
*/
|
|
typedef int rs_time_t;
|
|
|
|
/**
|
|
* 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
|