1/*
2 * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16/**
17 * @file picodefs.h
18 *
19 * SVOX Pico definitions
20 * (SVOX Pico version 1.0 and later)
21 *
22 * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
23 * All rights reserved.
24 *
25 * History:
26 * - 2009-04-20 -- initial version
27 */
28
29
30#ifndef PICODEFS_H_
31#define PICODEFS_H_
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37
38/* ********************************************************************/
39/* SVOX Pico limits                                                   */
40/* ********************************************************************/
41/* maximum size of a voice name, including the terminating null
42   character */
43#define PICO_MAX_VOICE_NAME_SIZE        32
44
45/* maximum size of a resource name, incl. the terminating null
46   character */
47#define PICO_MAX_RESOURCE_NAME_SIZE     32
48
49/* maximum size of a data path name, incl. the terminating null
50   character */
51#define PICO_MAX_DATAPATH_NAME_SIZE    128
52
53/* maximum size of a file name, incl. the terminating null
54   character */
55#define PICO_MAX_FILE_NAME_SIZE         64
56
57/* maximum number of resources */
58#define PICO_MAX_NUM_RESOURCES          64
59
60/* maximum number of voice definitions */
61#define PICO_MAX_NUM_VOICE_DEFINITIONS  64
62
63/* maximum number of resources per voice */
64#define PICO_MAX_NUM_RSRC_PER_VOICE     16
65
66/* maximum length of foreign header prepended to PICO resource files
67   (header length must be a multiple of 4 bytes) */
68#define PICO_MAX_FOREIGN_HEADER_LEN     64
69
70
71
72/* ********************************************************************/
73/* SVOX PICO status codes                                             */
74/* ********************************************************************/
75
76typedef signed int pico_Status;
77
78
79/* Okay ***************************************************************/
80/* functions return PICO_OK if all is okay */
81
82#define PICO_OK                         (pico_Status)     0
83
84
85/* Exceptions and error codes *****************************************/
86
87/* in case of exceptional events and errors (e.g. unexpected user
88   input) that disrupt the normal flow of operation, PICO_EXC_* or
89   PICO_ERR_* are returned. */
90
91#define PICO_EXC_NUMBER_FORMAT          (pico_Status)   -10
92#define PICO_EXC_MAX_NUM_EXCEED         (pico_Status)   -11
93#define PICO_EXC_NAME_CONFLICT          (pico_Status)   -12
94#define PICO_EXC_NAME_UNDEFINED         (pico_Status)   -13
95#define PICO_EXC_NAME_ILLEGAL           (pico_Status)   -14
96
97/* buffer interaction */
98#define PICO_EXC_BUF_OVERFLOW           (pico_Status)   -20
99#define PICO_EXC_BUF_UNDERFLOW          (pico_Status)   -21
100#define PICO_EXC_BUF_IGNORE             (pico_Status)   -22
101
102/* internal memory handling */
103#define PICO_EXC_OUT_OF_MEM             (pico_Status)   -30
104
105/* files */
106#define PICO_EXC_CANT_OPEN_FILE         (pico_Status)   -40
107#define PICO_EXC_UNEXPECTED_FILE_TYPE   (pico_Status)   -41
108#define PICO_EXC_FILE_CORRUPT           (pico_Status)   -42
109#define PICO_EXC_FILE_NOT_FOUND         (pico_Status)   -43
110
111/* resources */
112#define PICO_EXC_RESOURCE_BUSY          (pico_Status)   -50
113#define PICO_EXC_RESOURCE_MISSING       (pico_Status)   -51
114
115/* knowledge bases */
116#define PICO_EXC_KB_MISSING             (pico_Status)   -60
117
118/* runtime exceptions */
119#define PICO_ERR_NULLPTR_ACCESS         (pico_Status)  -100
120#define PICO_ERR_INVALID_HANDLE         (pico_Status)  -101
121#define PICO_ERR_INVALID_ARGUMENT       (pico_Status)  -102
122#define PICO_ERR_INDEX_OUT_OF_RANGE     (pico_Status)  -103
123
124/* other errors ("external" errors, e.g. hardware failure). */
125#define PICO_ERR_OTHER                  (pico_Status)  -999
126
127
128/* Warnings ***********************************************************/
129
130/* general */
131#define PICO_WARN_INCOMPLETE            (pico_Status)    10
132#define PICO_WARN_FALLBACK              (pico_Status)    11
133#define PICO_WARN_OTHER                 (pico_Status)    19
134
135/* resources */
136#define PICO_WARN_KB_OVERWRITE          (pico_Status)    50
137#define PICO_WARN_RESOURCE_DOUBLE_LOAD  (pico_Status)    51
138
139/* classifiers */
140#define PICO_WARN_INVECTOR              (pico_Status)    60
141#define PICO_WARN_CLASSIFICATION        (pico_Status)    61
142#define PICO_WARN_OUTVECTOR             (pico_Status)    62
143
144/* processing units */
145#define PICO_WARN_PU_IRREG_ITEM         (pico_Status)    70
146#define PICO_WARN_PU_DISCARD_BUF        (pico_Status)    71
147
148
149
150/* ********************************************************************/
151/* Engine getData return values                                       */
152/* ********************************************************************/
153
154#define PICO_STEP_IDLE                  (pico_Status)   200
155#define PICO_STEP_BUSY                  (pico_Status)   201
156
157#define PICO_STEP_ERROR                 (pico_Status)  -200
158
159/* ********************************************************************/
160/* resetEngine reset modes                                            */
161/* ********************************************************************/
162
163#define PICO_RESET_FULL                                 0
164#define PICO_RESET_SOFT                                 0x10
165
166
167/* ********************************************************************/
168/* Engine getData outDataType values                                  */
169/* ********************************************************************/
170
171/* 16 bit PCM samples, native endianness of platform */
172#define PICO_DATA_PCM_16BIT             (pico_Int16)  1
173
174#ifdef __cplusplus
175}
176#endif
177
178
179#endif /*PICODEFS_H_*/
180