summaryrefslogtreecommitdiffstats
path: root/lib/picoextapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/picoextapi.h')
-rw-r--r--lib/picoextapi.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/lib/picoextapi.h b/lib/picoextapi.h
new file mode 100644
index 0000000..1768394
--- /dev/null
+++ b/lib/picoextapi.h
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
+ *
+ * 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 picoextapi.h
+ *
+ * API extensions for development use
+ *
+ * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
+ * All rights reserved.
+ *
+ * History:
+ * - 2009-04-20 -- initial version
+ *
+ */
+
+#ifndef PICOEXTAPI_H_
+#define PICOEXTAPI_H_
+
+#include "picodefs.h"
+#include "picodbg.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#if 0
+}
+#endif
+
+
+/* ****************************************************************************/
+/* Things that might be added to picoapi later but should not appear there */
+/* for the time being */
+/* ****************************************************************************/
+
+/* String type for Unicode text input *****************************************/
+
+/* Unicode encodings supported by PICO. */
+
+#define PICO_STRENC_UTF8 0
+#define PICO_STRENC_UTF16 1
+
+/* An UTF-8 string must point to a byte array, terminated by a null character
+ ('\0'). An UTF-16 string must point to a contiguous array of 16-bit units
+ (in native byte ordering), terminated by a 0. */
+
+typedef char *PICO_STRING_UTF8;
+typedef pico_Uint16 *PICO_STRING_UTF16;
+
+/* Generic pointer to a Unicode string, encoded either as UTF-8 or UTF-16.
+ The application must make sure that for each 'PICO_STRING_PTR' it provides
+ an argument of type 'PICO_STRING_UTF8' or 'PICO_STRING_UTF16' (or of a type
+ compatible to one of these types). */
+
+typedef void *PICO_STRING_PTR;
+
+
+/* ****************************************************************************/
+/* System-level API functions */
+/* ****************************************************************************/
+
+/* System initialization and termination functions ****************************/
+
+/* Same as pico_initialize, but allows to enable memory protection
+ functionality for testing purposes (enableMemProt != 0). */
+
+PICO_FUNC picoext_initialize(
+ void *memory,
+ const pico_Uint32 size,
+ pico_Int16 enableMemProt,
+ pico_System *outSystem
+ );
+
+
+/* System and lingware inspection functions ***********************************/
+
+/* Returns version information of the current Pico engine. */
+
+PICO_FUNC picoext_getVersionInfo(
+ pico_Retstring outInfo,
+ const pico_Int16 outInfoMaxLen
+ );
+
+/* Returns unique resource name */
+
+/*
+PICO_FUNC picoext_getResourceName(
+ pico_Resource resource,
+ pico_Retstring outInfo
+ );
+*/
+
+/* Debugging/testing support functions *****************************************/
+
+/* Sets tracing level. Increasing amounts of information is displayed
+ at each level. */
+
+PICO_FUNC picoext_setTraceLevel(
+ pico_System system,
+ pico_Int32 level
+ );
+
+/* Sets trace filtering. Limits tracing output to tracing information
+ resulting from the source file name being filtered. */
+
+PICO_FUNC picoext_setTraceFilterFN(
+ pico_System system,
+ const pico_Char *name
+ );
+
+/* Enables logging of debug output to log file 'name'. If 'name' is NULL
+ or an empty string, logging is disabled. */
+
+PICO_FUNC picoext_setLogFile(
+ pico_System system,
+ const pico_Char *name
+ );
+
+
+/* Memory usage ***************************************************************/
+
+PICO_FUNC picoext_getSystemMemUsage(
+ pico_System system,
+ pico_Int16 resetIncremental,
+ pico_Int32 *outUsedBytes,
+ pico_Int32 *outIncrUsedBytes,
+ pico_Int32 *outMaxUsedBytes
+ );
+
+PICO_FUNC picoext_getEngineMemUsage(
+ pico_Engine engine,
+ pico_Int16 resetIncremental,
+ pico_Int32 *outUsedBytes,
+ pico_Int32 *outIncrUsedBytes,
+ pico_Int32 *outMaxUsedBytes
+ );
+
+PICO_FUNC picoext_getLastScheduledPU(
+ pico_Engine engine
+ );
+
+PICO_FUNC picoext_getLastProducedItemType(
+ pico_Engine engine
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* PICOEXTAPI_H_ */