sdl3-bindgen-sys
Safe HaskellNone
LanguageGHC2021

SDL3.Sys.Time

Description

SDL realtime clock and date/time routines.

There are two data types that are used in this category: SDL_Time, which represents the nanoseconds since a specific moment (an "epoch"), and SDL_DateTime, which breaks time down into human-understandable components: years, months, days, hours, etc.

Much of the functionality is involved in converting those two types to other useful forms. A structure holding a calendar date and time broken down into its components.

FFI conventions

Unsuffixed aliases are unsafe foreign imports; aliases suffixed Safe are safe. Functions whose callbacks fire during the call export only the Safe alias (the genuine unsafe import stays reachable under SDL3.Sys.Bindgen.Time.Unsafe); functions curated unsafe-only export only the unsuffixed one. Each alias's documentation records its flavor and rationale.

Full conventions: SDL3.Sys.

Since: 3.2.0

Synopsis

Documentation

Function aliases

getDateTimeLocalePreferences Source #

Arguments

:: Ptr SDL_DateFormat
dateFormat
a pointer to the SDL_DateFormat to hold the returned date format, may be NULL.
-> Ptr SDL_TimeFormat
timeFormat
a pointer to the SDL_TimeFormat to hold the returned time format, may be NULL.
-> IO Bool 

Gets the current preferred date and time format for the system locale.

This might be a "slow" call that has to query the operating system. It's best to ask for this once and save the results. However, the preferred formats can change, usually because the user has changed a system preference outside of your program.

Returns
true on success or false on failure; call getError for more information.
Thread safety
This function is not thread safe.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_GetDateTimeLocalePreferences. The safe flavor is getDateTimeLocalePreferencesSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDateTimeLocalePreferences, defined at SDL3/SDL_time.h 113:34

Since: 3.2.0

getDateTimeLocalePreferencesSafe Source #

Arguments

:: Ptr SDL_DateFormat
dateFormat
a pointer to the SDL_DateFormat to hold the returned date format, may be NULL.
-> Ptr SDL_TimeFormat
timeFormat
a pointer to the SDL_TimeFormat to hold the returned time format, may be NULL.
-> IO Bool 

Gets the current preferred date and time format for the system locale.

This might be a "slow" call that has to query the operating system. It's best to ask for this once and save the results. However, the preferred formats can change, usually because the user has changed a system preference outside of your program.

Returns
true on success or false on failure; call getError for more information.
Thread safety
This function is not thread safe.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_GetDateTimeLocalePreferences. The unsafe flavor is getDateTimeLocalePreferences .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDateTimeLocalePreferences, defined at SDL3/SDL_time.h 113:34

Since: 3.2.0

getCurrentTime Source #

Arguments

:: Ptr SDL_Time
ticks
the SDL_Time to hold the returned tick count.
-> IO Bool 

Gets the current value of the system realtime clock in nanoseconds since Jan 1, 1970 in Universal Coordinated Time (UTC).

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_GetCurrentTime. The safe flavor is getCurrentTimeSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetCurrentTime, defined at SDL3/SDL_time.h 127:34

Since: 3.2.0

getCurrentTimeSafe Source #

Arguments

:: Ptr SDL_Time
ticks
the SDL_Time to hold the returned tick count.
-> IO Bool 

Gets the current value of the system realtime clock in nanoseconds since Jan 1, 1970 in Universal Coordinated Time (UTC).

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_GetCurrentTime. The unsafe flavor is getCurrentTime .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetCurrentTime, defined at SDL3/SDL_time.h 127:34

Since: 3.2.0

timeToDateTime Source #

Arguments

:: SDL_Time
ticks
the SDL_Time to be converted.
-> Ptr SDL_DateTime
dt
the resulting SDL_DateTime.
-> Bool
localTime
the resulting SDL_DateTime will be expressed in local time if true, otherwise it will be in Universal Coordinated Time (UTC).
-> IO Bool 

Converts an SDL_Time in nanoseconds since the epoch to a calendar time in the SDL_DateTime format.

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_TimeToDateTime. The safe flavor is timeToDateTimeSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_TimeToDateTime, defined at SDL3/SDL_time.h 145:34

Since: 3.2.0

timeToDateTimeSafe Source #

Arguments

:: SDL_Time
ticks
the SDL_Time to be converted.
-> Ptr SDL_DateTime
dt
the resulting SDL_DateTime.
-> Bool
localTime
the resulting SDL_DateTime will be expressed in local time if true, otherwise it will be in Universal Coordinated Time (UTC).
-> IO Bool 

Converts an SDL_Time in nanoseconds since the epoch to a calendar time in the SDL_DateTime format.

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_TimeToDateTime. The unsafe flavor is timeToDateTime .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_TimeToDateTime, defined at SDL3/SDL_time.h 145:34

Since: 3.2.0

dateTimeToTime Source #

Arguments

:: PtrConst SDL_DateTime
dt
the source SDL_DateTime.
-> Ptr SDL_Time
ticks
the resulting SDL_Time.
-> IO Bool 

Converts a calendar time to an SDL_Time in nanoseconds since the epoch.

This function ignores the day_of_week member of the SDL_DateTime struct, so it may remain unset.

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_DateTimeToTime. The safe flavor is dateTimeToTimeSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_DateTimeToTime, defined at SDL3/SDL_time.h 162:34

Since: 3.2.0

dateTimeToTimeSafe Source #

Arguments

:: PtrConst SDL_DateTime
dt
the source SDL_DateTime.
-> Ptr SDL_Time
ticks
the resulting SDL_Time.
-> IO Bool 

Converts a calendar time to an SDL_Time in nanoseconds since the epoch.

This function ignores the day_of_week member of the SDL_DateTime struct, so it may remain unset.

Returns
true on success or false on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_DateTimeToTime. The unsafe flavor is dateTimeToTime .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_DateTimeToTime, defined at SDL3/SDL_time.h 162:34

Since: 3.2.0

timeToWindows Source #

Arguments

:: SDL_Time
ticks
the time to convert.
-> Ptr Uint32
dwLowDateTime
a pointer filled in with the low portion of the Windows FILETIME value.
-> Ptr Uint32
dwHighDateTime
a pointer filled in with the high portion of the Windows FILETIME value.
-> IO () 

Converts an SDL time into a Windows FILETIME (100-nanosecond intervals since January 1, 1601).

This function fills in the two 32-bit values of the FILETIME structure.

Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_TimeToWindows. The safe flavor is timeToWindowsSafe .
C declaration
SDL_TimeToWindows, defined at SDL3/SDL_time.h 180:34

Since: 3.2.0

timeToWindowsSafe Source #

Arguments

:: SDL_Time
ticks
the time to convert.
-> Ptr Uint32
dwLowDateTime
a pointer filled in with the low portion of the Windows FILETIME value.
-> Ptr Uint32
dwHighDateTime
a pointer filled in with the high portion of the Windows FILETIME value.
-> IO () 

Converts an SDL time into a Windows FILETIME (100-nanosecond intervals since January 1, 1601).

This function fills in the two 32-bit values of the FILETIME structure.

Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_TimeToWindows. The unsafe flavor is timeToWindows .
C declaration
SDL_TimeToWindows, defined at SDL3/SDL_time.h 180:34

Since: 3.2.0

timeFromWindows Source #

Arguments

:: Word32
dwLowDateTime
the low portion of the Windows FILETIME value.
-> Word32
dwHighDateTime
the high portion of the Windows FILETIME value.
-> IO SDL_Time 

Converts a Windows FILETIME (100-nanosecond intervals since January 1, 1601) to an SDL time.

This function takes the two 32-bit values of the FILETIME structure as parameters.

Returns
the converted SDL time.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_TimeFromWindows. The safe flavor is timeFromWindowsSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_TimeFromWindows, defined at SDL3/SDL_time.h 197:38

Since: 3.2.0

timeFromWindowsSafe Source #

Arguments

:: Word32
dwLowDateTime
the low portion of the Windows FILETIME value.
-> Word32
dwHighDateTime
the high portion of the Windows FILETIME value.
-> IO SDL_Time 

Converts a Windows FILETIME (100-nanosecond intervals since January 1, 1601) to an SDL time.

This function takes the two 32-bit values of the FILETIME structure as parameters.

Returns
the converted SDL time.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_TimeFromWindows. The unsafe flavor is timeFromWindows .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_TimeFromWindows, defined at SDL3/SDL_time.h 197:38

Since: 3.2.0

getDaysInMonth Source #

Arguments

:: Int32
year
the year.
-> Int32
month
the month [1-12].
-> IO Int32 

Get the number of days in a month for a given year.

Returns
the number of days in the requested month or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_GetDaysInMonth. The safe flavor is getDaysInMonthSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDaysInMonth, defined at SDL3/SDL_time.h 211:33

Since: 3.2.0

getDaysInMonthSafe Source #

Arguments

:: Int32
year
the year.
-> Int32
month
the month [1-12].
-> IO Int32 

Get the number of days in a month for a given year.

Returns
the number of days in the requested month or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_GetDaysInMonth. The unsafe flavor is getDaysInMonth .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDaysInMonth, defined at SDL3/SDL_time.h 211:33

Since: 3.2.0

getDayOfYear Source #

Arguments

:: Int32
year
the year component of the date.
-> Int32
month
the month component of the date.
-> Int32
day
the day component of the date.
-> IO Int32 

Get the day of year for a calendar date.

Returns
the day of year [0-365] if the date is valid or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_GetDayOfYear. The safe flavor is getDayOfYearSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDayOfYear, defined at SDL3/SDL_time.h 226:33

Since: 3.2.0

getDayOfYearSafe Source #

Arguments

:: Int32
year
the year component of the date.
-> Int32
month
the month component of the date.
-> Int32
day
the day component of the date.
-> IO Int32 

Get the day of year for a calendar date.

Returns
the day of year [0-365] if the date is valid or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_GetDayOfYear. The unsafe flavor is getDayOfYear .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDayOfYear, defined at SDL3/SDL_time.h 226:33

Since: 3.2.0

getDayOfWeek Source #

Arguments

:: Int32
year
the year component of the date.
-> Int32
month
the month component of the date.
-> Int32
day
the day component of the date.
-> IO Int32 

Get the day of week for a calendar date.

Returns
a value between 0 and 6 (0 being Sunday) if the date is valid or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Unsafe foreign import of SDL_GetDayOfWeek. The safe flavor is getDayOfWeekSafe .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDayOfWeek, defined at SDL3/SDL_time.h 241:33

Since: 3.2.0

getDayOfWeekSafe Source #

Arguments

:: Int32
year
the year component of the date.
-> Int32
month
the month component of the date.
-> Int32
day
the day component of the date.
-> IO Int32 

Get the day of week for a calendar date.

Returns
a value between 0 and 6 (0 being Sunday) if the date is valid or -1 on failure; call getError for more information.
Thread safety
It is safe to call this function from any thread.

sdl3-bindgen-sys notes

Expand
FFI safety
Safe foreign import of SDL_GetDayOfWeek. The unsafe flavor is getDayOfWeek .
Scalars
The binding generation has mapped C scalars to native Haskell scalars for this function. Pointers and structs are untouched by this best-effort mapping. Higher-level bindings are expected to map structs and pointers as appropriate.
C declaration
SDL_GetDayOfWeek, defined at SDL3/SDL_time.h 241:33

Since: 3.2.0