| /* |
| * 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_ */ |