diff options
Diffstat (limited to 'lib/picoextapi.h')
-rw-r--r-- | lib/picoextapi.h | 163 |
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_ */ |