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