SDK improvements (#352)
TactilityC additions for: - C randomization functions - Tactility app paths - Tactility locks
This commit is contained in:
committed by
GitHub
parent
6dc4f698c9
commit
c7621b5e4c
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
#include "tt_app_manifest.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -7,7 +9,6 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
typedef void* AppHandle;
|
||||
typedef void* AppPathsHandle;
|
||||
|
||||
/** @return the bundle that belongs to this application, or null if it wasn't started with parameters. */
|
||||
BundleHandle _Nullable tt_app_get_parameters(AppHandle handle);
|
||||
@@ -24,12 +25,39 @@ void tt_app_set_result(AppHandle handle, AppResult result, BundleHandle _Nullabl
|
||||
/** @return true if a result was set for this app context */
|
||||
bool tt_app_has_result(AppHandle handle);
|
||||
|
||||
/** Get the path to the data directory of this app.
|
||||
/** Get the path to the user data directory for this app.
|
||||
* The app can store user-specific (mutable) data in there such as app settings.
|
||||
* @param[in] handle the app handle
|
||||
* @param[out] buffer the output buffer (recommended size is 256 bytes)
|
||||
* @param[inout] size used as input for maximum buffer size (including null terminator) and is set with the path string length by this function
|
||||
*/
|
||||
void tt_app_get_data_directory(AppPathsHandle handle, char* buffer, size_t* size);
|
||||
void tt_app_get_user_data_path(AppHandle handle, char* buffer, size_t* size);
|
||||
|
||||
/** Resolve a child path in the user directory of this app.
|
||||
* The app can store user-specific (mutable) data in there such as app settings.
|
||||
* @param[in] handle the app handle
|
||||
* @param[in] childPath the child path to resolve
|
||||
* @param[out] buffer the output buffer (recommended size is 256 bytes)
|
||||
* @param[inout] size used as input for maximum buffer size (including null terminator) and is set with the path string length by this function
|
||||
*/
|
||||
void tt_app_get_user_data_child_path(AppHandle handle, const char* childPath, char* buffer, size_t* size);
|
||||
|
||||
/** Get the path to the assets directory of this app.
|
||||
* The content in this path should be treated as read-only.
|
||||
* @param[in] handle the app handle
|
||||
* @param[out] buffer the output buffer (recommended size is 256 bytes)
|
||||
* @param[inout] size used as input for maximum buffer size (including null terminator) and is set with the path string length by this function
|
||||
*/
|
||||
void tt_app_get_assets_path(AppHandle handle, char* buffer, size_t* size);
|
||||
|
||||
/** Resolve a child path in the assets directory of this app.
|
||||
* The content in this path should be treated as read-only.
|
||||
* @param[in] handle the app handle
|
||||
* @param[in] childPath the child path to resolve
|
||||
* @param[out] buffer the output buffer (recommended size is 256 bytes)
|
||||
* @param[inout] size used as input for maximum buffer size (including null terminator) and is set with the path string length by this function
|
||||
*/
|
||||
void tt_app_get_assets_child_path(AppHandle handle, const char* childPath, char* buffer, size_t* size);
|
||||
|
||||
/**
|
||||
* Start an app by id.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "tt_lock.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
LockHandle tt_lock_alloc_for_file(const char* path);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "tt_kernel.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** A handle that represents a lock instance. A lock could be a Mutex or similar construct */
|
||||
typedef void* LockHandle;
|
||||
|
||||
/**
|
||||
* Attempt to lock the lock.
|
||||
* @param[in] handle the handle that represents the mutex instance
|
||||
* @param[in] timeout the maximum amount of ticks to wait when trying to lock
|
||||
* @return true when the lock was acquired
|
||||
*/
|
||||
bool tt_lock_acquire(LockHandle handle, TickType timeout);
|
||||
|
||||
/**
|
||||
* Attempt to unlock the lock.
|
||||
* @param[in] handle the handle that represents the mutex instance
|
||||
* @return true when the lock was unlocked
|
||||
*/
|
||||
bool tt_lock_release(LockHandle handle);
|
||||
|
||||
/** Free the memory for this lock
|
||||
* @param[in] handle the handle that represents the mutex instance
|
||||
*/
|
||||
void tt_lock_free(LockHandle handle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include "tt_kernel.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -33,7 +33,7 @@ void tt_mutex_free(MutexHandle handle);
|
||||
* @param[in] timeout the maximum amount of ticks to wait when trying to lock
|
||||
* @return true when the lock was acquired
|
||||
*/
|
||||
bool tt_mutex_lock(MutexHandle handle, TickType_t timeout);
|
||||
bool tt_mutex_lock(MutexHandle handle, TickType timeout);
|
||||
|
||||
/**
|
||||
* Attempt to unlock a mutex.
|
||||
|
||||
Reference in New Issue
Block a user