14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * SRecTest.c * 44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Copyright 2007, 2008 Nuance Communciations, Inc. * 64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the 'License'); * 84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * you may not use this file except in compliance with the License. * 94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * You may obtain a copy of the License at * 114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 * 124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Unless required by applicable law or agreed to in writing, software * 144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * distributed under the License is distributed on an 'AS IS' BASIS, * 154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * See the License for the specific language governing permissions and * 174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * limitations under the License. * 184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/ 204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#else 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project #include <sys/select.h> 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project #include "signal.h" 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project #include "direct.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "passert.h" 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_CommandLine.h" 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_Session.h" 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "LCHAR.h" 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "PFile.h" 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "PFileSystem.h" 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "PANSIFileSystem.h" 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project//#include "PMemoryFileSystem.h" 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "plog.h" 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "pmemory.h" 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h" 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "string.h" 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "stdio.h" 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "stdlib.h" 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptimer.h" 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Grammar.h" 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Recognizer.h" 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_RecognizerResult.h" 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Session.h" 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Vocabulary.h" 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticState.h" 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Nametag.h" 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "PStackSize.h" 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// #define ACCURACY_TESTING 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef ACCURACY_TESTING 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_GrammarImpl.h" 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_SemanticProcessorImpl.h" 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "srec_test_config.h" 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project//Define this in makefile 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project//#define _DEBUGHEAP 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <crtdbg.h> 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define LOG_BUFFER_SIZE 512 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_AUDIO_BUFFER_SIZE 10240 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_AUDIO_BUFFER_SIZE 256 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_LINE_LENGTH 1024 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define TRANSCRIPTION_SIZE 512 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_SCORE_LENGTH 5 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_NUM_REC_CONTEXTS 4 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef PFILE_VIRTUAL_SUPPORT 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project extern const FileRecord pFileRecTable[]; 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project extern const unsigned char pFileStart0[]; 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* #ifdef PFILE_VIRTUAL_SUPPORT */ 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_BEGIN, 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_BEGIN_BRACKET_BEGIN, 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_BEGIN_BRACKET_END, 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_MIDDLE, 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_MIDDLE_BRACKET_BEGIN, 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_MIDDLE_BRACKET_END, 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_MIDDLE_WITH_SPACE 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } SENTENCE_CLEANING_STATES; 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ForcedRecModeNotSet = -1, 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ForcedRecModeOff=0, 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ForcedRecModeOneTime, 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ForcedRecModeOn 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } ForcedRecMode; 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ERROR_LEVEL_CRITICAL = 0, 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ERROR_LEVEL_HIGH, 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ERROR_LEVEL_MODERATE, 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ERROR_LEVEL_LOW 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } SREC_TEST_ERROR_LEVELS; 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR grammar_path [P_PATH_MAX]; /* File path of the grammar. */ 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR grammarID [P_PATH_MAX]; /* ID of the grammar. */ 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR ruleName [P_PATH_MAX]; /* rule name of the grammar. */ 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Grammar* grammar; /* grammar. */ 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL is_ve_grammar; /* Is voice-enrollment grammar or not */ 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } APPL_GRAMMAR_DATA; 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct ApplicationData_t 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int argc; /* The number of command-line arguments. */ 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR **argv; /* The command-line argument values. */ 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_Locale locale; /* Current application locale. */ 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Recognizer *recognizer; /* The current recognizer. */ 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerResult *result; /* The last recognition result. */ 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Vocabulary *vocabulary; /* The current vocabulary. */ 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Nametag *nametag; /* The nametag generated by the last recognition. */ 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Nametags *nametags; /* The active nametag collection. */ 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project APPL_GRAMMAR_DATA grammars [MAX_NUM_REC_CONTEXTS]; /* Grammar data */ 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int grammarCount; /* The number of grammars. */ 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int active_grammar_num; /* The index number of the active grammar. */ 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const asr_int16_t *raw_waveform; /*Points to raw waveform returned from voice enrollment */ 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t raw_waveform_size; /* Size of above wave_form */ 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project asr_int16_t audio_buffer [MAX_AUDIO_BUFFER_SIZE]; 145b3adea6f471d03c5bd728725adc7ca1cea89edfdMarcus Oakland size_t audio_buffer_requested_size; 146b3adea6f471d03c5bd728725adc7ca1cea89edfdMarcus Oakland size_t num_samples_read; 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR raw_waveform_filename [P_PATH_MAX]; /* Name of file of saved waveform data. */ 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PFile *raw_waveform_file; /* Pointer to file of saved waveform data. */ 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR transcription [MAX_LINE_LENGTH]; 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ForcedRecMode forced_rec_mode; 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } ApplicationData; 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_get_run_params ( unsigned int *num_shutdown_loops, unsigned int *num_continuous_run_loops ); 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_application_data ( ApplicationData *applicationData, int arg_count, LCHAR *arg_vals [] ); 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_file_system ( int arg_count, LCHAR *arg_vals [] ); 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_logging_system ( int arg_count, LCHAR *arg_vals [], PLogger *logger ); 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_memory_system ( unsigned int srec_test_heap_size ); 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_system ( unsigned int srec_test_heap_size, PLogger* logger, int arg_count, LCHAR *arg_vals [] ); 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_execute ( ApplicationData *applicationData ); 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_init ( ApplicationData *applicationData ); 1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test ( ApplicationData *applicationData ); 1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_file_system ( void ); 1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_logging_system ( PLogger *logger ); 1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_memory_system ( void ); 1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_recognize_nist_file ( SR_Grammar *active_grammar, ApplicationData *data, FILE *results_file, 1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *command_text, size_t *recognition_count ); 1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_recognize_pcm_file ( SR_Grammar *active_grammar, ApplicationData *data, FILE *results_file, 1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *command_text, size_t *recognition_count ); 1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void srec_test_log_recognition_failure ( ApplicationData *data ); 1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic ESR_BOOL interrupted = ESR_FALSE; 1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* static ESR_BOOL no_enroll = ESR_FALSE; //BJP */ 1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint signal_handler_SIGINT(int v) 1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project interrupted = ESR_TRUE; 1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return 0; 1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode myDSMCallback(LCHAR* functionName, LCHAR** argv, size_t argc, void* value, LCHAR* result, size_t* resultSize) 1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR* meaning; 1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLOG_DBG_TRACE((L("myDSMCallback(%s) invoked\n"), functionName)); 1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ((LSTRCMP(functionName, "myDSMCallback")!=0) || (argc > 1)) 1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Unsupported semantic function */ 1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ESR_INVALID_STATE; 1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (argc > 0) 1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project meaning = argv[0]; 1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project meaning = L(""); 2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lstrtrim(meaning); 2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRLWR(meaning); 2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (LISDIGIT(*meaning)) 2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Penalize meaning starting with "<digit>" */ 2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (*resultSize < LSTRLEN(L("1000"))+1) 2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *resultSize = LSTRLEN(L("1000"))+1; 2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ESR_BUFFER_OVERFLOW; 2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY(result, "1000"); 2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *resultSize = LSTRLEN(L("1000"))+1; 2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ESR_SUCCESS; 2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (*resultSize < LSTRLEN(L("0"))+1) 2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *resultSize = LSTRLEN(L("0"))+1; 2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ESR_BUFFER_OVERFLOW; 2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY(result, "0"); 2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *resultSize = LSTRLEN(L("0"))+1; 2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ESR_SUCCESS; 2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid srec_test_log_error ( unsigned int error_id, SREC_TEST_ERROR_LEVELS error_level, LCHAR *error_text ) 2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( error_level ) 2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ERROR_LEVEL_CRITICAL: 2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( "Critical Level Error %s\n", error_text ); 2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ERROR_LEVEL_HIGH: 2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( "High Level Error %s\n", error_text ); 2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ERROR_LEVEL_MODERATE: 2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( "Moderate Level Error %s\n", error_text ); 2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ERROR_LEVEL_LOW: 2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( "Low Level Error %s\n", error_text ); 2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( "Unknown Level Error %d : %s\n", error_level, error_text ); 2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid srec_test_delete_grammar ( ApplicationData *data, int grammar_num ) 2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR log_buffer[LOG_BUFFER_SIZE]; 2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_num < data->grammarCount ) 2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( data->grammarCount - grammar_num ) > 1 ) 2644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project memmove ( &data->grammars [grammar_num], &data->grammars [data->grammarCount - 1], 2664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ( data->grammarCount - grammar_num - 1 ) * sizeof ( APPL_GRAMMAR_DATA ) ); 2674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_num > data->active_grammar_num ) 2684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->active_grammar_num--; 2694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammarCount--; 2714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 2734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSPRINTF ( log_buffer, L("Internal Error Grammar TableCorrupt : Grammar %d Does Not Exist"), grammar_num ); 2754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_CRITICAL, log_buffer ); 2764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void srec_test_get_active_grammar ( ApplicationData *data, SR_Grammar **active_grammar ) 2824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->active_grammar_num >= 0 ) 2854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *active_grammar = data->grammars [data->active_grammar_num].grammar; 2864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 2874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *active_grammar = NULL; 2884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 2894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void srec_test_get_active_grammar_data ( ApplicationData *data, APPL_GRAMMAR_DATA **active_grammar_data ) 2934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 2944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->active_grammar_num >= 0 ) 2964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *active_grammar_data = &data->grammars [data->active_grammar_num]; 2974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 2984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *active_grammar_data = NULL; 2994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic ESR_BOOL srec_test_get_grammar_from_id ( ApplicationData *data, char *grammar_id, 3044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int *grammar_index, ESR_BOOL *is_active, ESR_BOOL *is_ve_grammar ) 3054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL found_grammar; 3074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int grammar_counter; 3084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project found_grammar = ESR_FALSE; 3104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project grammar_counter = 0; 3114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( found_grammar == ESR_FALSE ) && ( grammar_counter < data->grammarCount ) ) 3134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( strcmp ( grammar_id, data->grammars [grammar_counter].grammarID ) == 0 ) 3154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *grammar_index = grammar_counter; 3174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *is_ve_grammar = data->grammars [grammar_counter].is_ve_grammar; 3184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_counter == data->active_grammar_num ) 3204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *is_active = ESR_TRUE; 3214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 3224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *is_active = ESR_FALSE; 3234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project found_grammar = ESR_TRUE; 3244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 3264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project grammar_counter++; 3284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( found_grammar ); 3314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_get_empty_grammar_index ( ApplicationData *data, unsigned int *grammar_index ) 3364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 3384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->grammarCount < MAX_NUM_REC_CONTEXTS ) 3404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = 0; 3424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *grammar_index = data->grammarCount; 3434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 3454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 3474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 3494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode ShutdownSession ( void ) 3544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode shutdown_status; 3564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = SR_SessionDestroy ( ); 3584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 3604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode InitSession ( int argc, LCHAR *argv [] ) 3654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode init_status; 3674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR path[P_PATH_MAX]; 3684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 3694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 3714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = ESR_CommandLineGetValue ( argc, (const char **)argv, L("parfile"), path, &len ); 3724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status == ESR_SUCCESS ) 3744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = SR_SessionCreate ( path ); 3764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status == ESR_SUCCESS ) 3784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Command-line options always override PAR file options */ 3804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = ESR_SessionImportCommandLine ( argc, argv ); 3814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status != ESR_SUCCESS ) 3834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_SessionDestroy ( ); 3854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 3864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 3894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 3914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 3944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 3954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_CRITICAL, L("Parfile Nmae Not Specified on Command Line") ); 3964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 3984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 3994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode ShutdownGrammarUnload ( ApplicationData *data, unsigned int grammar_num ) 4034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode shutdown_status; 4054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = SR_GrammarDestroy ( data->grammars [grammar_num].grammar ); 4074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 4094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode SetupGrammarLoad ( ApplicationData *data, unsigned int grammar_num ) 4144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode setup_status; 4164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project setup_status = SR_GrammarLoad (data->grammars [grammar_num].grammar_path, &data->grammars [grammar_num].grammar ); 4184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( setup_status == ESR_SUCCESS ) 4204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project setup_status = SR_GrammarSetupVocabulary ( data->grammars [grammar_num].grammar, data->vocabulary ); 4224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( setup_status == ESR_SUCCESS ) 4244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project setup_status = SR_GrammarSetupRecognizer( data->grammars [grammar_num].grammar, data->recognizer ); 4264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( setup_status == ESR_SUCCESS ) 4284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project setup_status = SR_GrammarSetDispatchFunction ( data->grammars [grammar_num].grammar, L("myDSMCallback"), NULL, myDSMCallback ); 4304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( setup_status != ESR_SUCCESS ) 4324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarDestroy ( data->grammars [grammar_num].grammar ); 4334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 4354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarDestroy ( data->grammars [grammar_num].grammar ); 4374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 4404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarDestroy ( data->grammars [grammar_num].grammar ); 4424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( setup_status ); 4454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode SetupGrammarActivate ( ApplicationData *data, unsigned int grammar_num ) 4504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode setup_status; 4524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project setup_status = SR_RecognizerActivateRule ( data->recognizer, data->grammars [grammar_num].grammar, data->grammars [grammar_num].ruleName, 1 ); 4534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( setup_status ); 4544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef ACCURACY_TESTING 4594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode srec_test_parse (SR_Grammar *grammar, const LCHAR* trans, LCHAR* meaning, size_t *len); 4604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 4614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Parses source string and copies the first whitespace-delimited token into destination. 4644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param source Source string to parse 4664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param target Target string to copy into 4674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param charsRead [in] Size of target buffer. 4684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * [out] Number of characters read up to end of token. 4694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the return code is ESR_BUFFER_OVERFLOW, the required length is 4704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * returned in this variable. 4714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint getFirstToken(LCHAR* source, LCHAR* target, size_t* charsRead) 4734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 4744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR* beginning = source; 4754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR* ending; 4764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Skip whitespace */ 4784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (; *beginning!=L('\0') && LISSPACE(*beginning); ++beginning); 4794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (*beginning==L('\0')) 4804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( -1 ); /* invalid command syntax */ 4814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(*beginning == '\"') { 4834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project beginning++; 4844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (ending=beginning; *ending!=L('\0') && *ending!='\"'; ++ending); 4854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *ending = L(' '); 4864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } else { 4874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Find next whitespace */ 4884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (ending=beginning; *ending!=L('\0') && !LISSPACE(*ending); ++ending); 4894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ((size_t) (ending-beginning) > *charsRead) 4914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 4924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *charsRead = ending-beginning; 4934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( -1 ); 4944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 4954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *charsRead = ending-source; 4964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRNCPY(target, beginning, ending-beginning); 4974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project target[ending-beginning] = L('\0'); 4984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( 0 ); 4994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 5004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_five_command_items ( LCHAR *command_start, size_t first_max_command_size, LCHAR *first_command, 5044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t second_max_command_size, LCHAR *second_command, 5054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t third_max_command_size, LCHAR *third_command, 5064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t fourth_max_command_size, LCHAR *fourth_command, 5074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t fifth_max_command_size, LCHAR *fifth_command, 5084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t *actual_commands, LCHAR **command_end ) 5094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 5114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start, first_command, &first_max_command_size ); 5134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size, second_command, &second_max_command_size ); 5174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size, 5214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project third_command, &third_max_command_size ); 5224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size + third_max_command_size, 5254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project fourth_command, &fourth_max_command_size ); 5264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size + third_max_command_size + fourth_max_command_size, 5294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project fifth_command, &fifth_max_command_size ); 5304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size + fourth_max_command_size + fifth_max_command_size; 5344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 5; 5364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 5384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size + fourth_max_command_size; 5414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 4; 5434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 5464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size; 5494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 3; 5514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 5544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size; 5574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 2; 5594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 5624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size; 5654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 1; 5674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 5704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 5724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start; 5734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 5744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 0; 5754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 5774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 5784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_four_command_items ( LCHAR *command_start, size_t first_max_command_size, LCHAR *first_command, 5824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t second_max_command_size, LCHAR *second_command, 5834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t third_max_command_size, LCHAR *third_command, 5844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t fourth_max_command_size, LCHAR *fourth_command, 5854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t *actual_commands, LCHAR **command_end ) 5864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 5884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start, first_command, &first_max_command_size ); 5904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size, second_command, &second_max_command_size ); 5944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 5964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 5974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size, 5984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project third_command, &third_max_command_size ); 5994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 6004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size + third_max_command_size, 6024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project fourth_command, &fourth_max_command_size ); 6034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 6044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size + fourth_max_command_size; 6074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 4; 6094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size; 6144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 3; 6164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size; 6224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 2; 6244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size; 6304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 1; 6324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start; 6384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 0; 6404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 6424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_three_command_items ( LCHAR *command_start, size_t first_max_command_size, LCHAR *first_command, 6474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t second_max_command_size, LCHAR *second_command, 6484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t third_max_command_size, LCHAR *third_command, 6494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t *actual_commands, LCHAR **command_end ) 6504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 6524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start, first_command, &first_max_command_size ); 6544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 6564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size, second_command, &second_max_command_size ); 6584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 6604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size + second_max_command_size, 6624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project third_command, &third_max_command_size ); 6634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 6644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size + third_max_command_size; 6674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 3; 6694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size; 6744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 2; 6764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size; 6824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 1; 6844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 6874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 6884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 6894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start; 6904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 6914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 0; 6924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 6944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 6954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_two_command_items ( LCHAR *command_start, size_t first_max_command_size, LCHAR *first_command, 6994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t second_max_command_size, LCHAR *second_command, 7004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t *actual_commands, LCHAR **command_end ) 7014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 7034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start, first_command, &first_max_command_size ); 7054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 7074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start + first_max_command_size, second_command, &second_max_command_size ); 7094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 7114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 7134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size + second_max_command_size; 7144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 7154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 2; 7164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 7184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 7204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + first_max_command_size; 7214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 7224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 1; 7234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 7264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 7284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start; 7294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( actual_commands != NULL ) 7304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *actual_commands = 0; 7314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 7334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_one_command_item ( LCHAR *command_start, size_t max_command_size, LCHAR *command, LCHAR **command_end ) 7384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 7404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = getFirstToken ( command_start, command, &max_command_size ); 7424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == ESR_SUCCESS ) 7444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( command_end != NULL ) 7464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_end = command_start + max_command_size; 7474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 7494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 7544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Execute TCP-file commands. 7554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 7564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param text String containing command 7574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer The recognizer 7584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 7594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project//static int words_added = 0; 7604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 7624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic PTimer *addWordTimer = NULL; 7634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic PTimer *compileTimer = NULL; 7644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 7654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_reset_slots ( SR_Grammar *active_grammar ) 7694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int reset_status; 7714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 7724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 7744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project reset_status = 0; 7764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarResetAllSlots ( active_grammar ); 7774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 7794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project reset_status = -1; 7814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 7824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 7854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project reset_status = -1; 7874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 7884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( reset_status ); 7904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 7914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 7944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_add_word ( SR_Grammar *active_grammar, LCHAR *command_text ) 7954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 7964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int add_status; 7974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 7984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR slot [MAX_LINE_LENGTH]; 7994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR word [MAX_LINE_LENGTH]; 8004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR pron [MAX_LINE_LENGTH]; 8014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR weight [MAX_UINT_DIGITS+1]; 8024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR semanticTag [MAX_LINE_LENGTH]; 8034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int weightNumber; 8044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 8054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 8074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = srec_test_get_five_command_items ( command_text, MAX_LINE_LENGTH, slot, 8094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_LINE_LENGTH, word, MAX_LINE_LENGTH, pron, 8104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_UINT_DIGITS + 1, weight, MAX_LINE_LENGTH, 8114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project semanticTag, NULL, NULL ); 8124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( add_status == 0 ) 8134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi (weight, &weightNumber, 10 ); 8154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 8174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 8194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PTimerStart ( addWordTimer ); 8204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 8214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pron[ strlen(pron)+1] = 0; // make sure we have double-null! 8224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarAddWordToSlot ( active_grammar, slot, word, pron, weightNumber, semanticTag ); 8234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 8244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PTimerStop(addWordTimer); 8254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 8264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 8274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 8294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 8304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 8334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 8354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 8364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 8394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 8414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 8424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 8454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 8474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, "No Grammar Activated" ); 8484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( add_status ); 8504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_compile_active_context ( SR_Grammar *active_grammar ) 8554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int compile_status; 8574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 8584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 8604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project compile_status = 0; 8624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 8634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PTimerStart ( compileTimer ); 8644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 8654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarCompile( active_grammar ); 8664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(APP_ENABLE_TIMER) 8674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PTimerStop ( compileTimer ); 8684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 8694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 8704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project compile_status = -1; 8724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 8734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 8764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project compile_status = -1; 8784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, L("No Active Grammar To Compile") ); 8794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( compile_status ); 8814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 8824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_load_grammar_data_from_command ( ApplicationData *data, unsigned int grammar_num, LCHAR *command_text ) 8864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 8884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 8894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR path [P_PATH_MAX]; 8904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR id [P_PATH_MAX]; 8914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR rule [P_PATH_MAX]; 8924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR ve_marker [P_PATH_MAX]; 8934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t path_length; 8944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 8954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = srec_test_get_four_command_items ( command_text, P_PATH_MAX, path, P_PATH_MAX, id, 8964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project P_PATH_MAX, rule, P_PATH_MAX, ve_marker, NULL, NULL ); 8974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == 0 ) 8984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 8994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project path_length = P_PATH_MAX; 9004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionPrefixWithBaseDirectory ( path, &path_length ); 9014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 9034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY ( data->grammars [grammar_num].grammar_path, path ); 9054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY ( data->grammars [grammar_num].grammarID, id ); 9064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY ( data->grammars [grammar_num].ruleName, rule ); 9074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( LSTRCMP ( ve_marker, L("ve") ) ==0 ) 9094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammars [grammar_num].is_ve_grammar = ESR_TRUE; 9104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( ve_marker, L("not_ve") ) ==0 ) 9114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammars [grammar_num].is_ve_grammar = ESR_FALSE; 9124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 9154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 9164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 9214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 9224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 9274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 9294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_load_context ( ApplicationData *data, LCHAR *command_text ) 9344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int load_status; 9364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 9374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int open_grammar; 9384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = srec_test_get_empty_grammar_index ( data, &open_grammar ); 9404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( load_status == 0 ) 9424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = srec_test_load_grammar_data_from_command ( data, open_grammar, command_text ); 9444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( load_status == 0 ) 9464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SetupGrammarLoad ( data, open_grammar ); 9484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 9504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("Grammar Loaded\n")); 9524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammarCount++; 9534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = -1; 9574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 9584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 9634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 9664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Maximum Number Of Grammars Already Loaded") ); 9684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( load_status ); 9704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 9714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_free_context ( SR_Grammar *active_grammar, ApplicationData *data, LCHAR *command_text ) 9754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int free_status; 9774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 9784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int grammar_num; 9794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL found_grammar; 9804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_active; 9814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_ve; 9824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR grammar_id [P_PATH_MAX]; 9834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project free_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, grammar_id, NULL ); 9854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( free_status == 0 ) 9874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project found_grammar = srec_test_get_grammar_from_id ( data, grammar_id, &grammar_num, &grammar_is_active, &grammar_is_ve ); 9894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( found_grammar == ESR_TRUE ) 9914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_is_active == ESR_TRUE ) 9934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_is_ve == ESR_TRUE ) 9954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 9964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionSetBool("enableGetWaveform", ESR_FALSE); 9974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project //esr_status = SR_RecognizerSetBoolParameter ( data->recognizer, L("enableGetWaveform"), ESR_FALSE ); 9984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 9994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 10004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project free_status = -1; 10024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SUCCESS; 10084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 10104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerDeactivateRule ( data->recognizer, data->grammars [data->active_grammar_num].grammar, 10124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammars [data->active_grammar_num].ruleName ); 10134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 10144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->active_grammar_num = -1; 10164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project free_status = -1; 10204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project free_status = -1; 10274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project free_status = -1; 10334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( free_status ); 10414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_unload_context ( ApplicationData *data, LCHAR *command_text ) 10464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int unload_status; 10484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 10494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int grammar_num; 10504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL found_grammar; 10514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_active; 10524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_ve; 10534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR grammar_id [P_PATH_MAX]; 10544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unload_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, grammar_id, NULL ); 10564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( unload_status == 0 ) 10584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project found_grammar = srec_test_get_grammar_from_id ( data, grammar_id, &grammar_num, &grammar_is_active, &grammar_is_ve ); 10604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( found_grammar == ESR_TRUE ) 10624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_is_active == ESR_FALSE ) 10644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarDestroy ( data->grammars [grammar_num].grammar ); 10664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 10684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unload_status = -1; 10704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_delete_grammar ( data, grammar_num ); 10734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unload_status = -1; 10774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unload_status = -1; 10834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 10874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 10894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( unload_status ); 10914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 10924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 10954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_use_context ( SR_Grammar *active_grammar, ApplicationData *data, LCHAR *command_text ) 10964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 10974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int use_status; 10984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 10994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int grammar_num; 11004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL found_grammar; 11014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_active; 11024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL grammar_is_ve; 11034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR grammar_id [P_PATH_MAX]; 11044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar == NULL ) 11064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, grammar_id, NULL ); 11084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( use_status == 0 ) 11104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project found_grammar = srec_test_get_grammar_from_id ( data, grammar_id, &grammar_num, &grammar_is_active, &grammar_is_ve ); 11124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( found_grammar == ESR_TRUE ) 11144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerActivateRule ( data->recognizer, data->grammars [grammar_num].grammar, 11164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammars [grammar_num].ruleName, 1 ); 11174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 11184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->grammars [grammar_num].is_ve_grammar == ESR_TRUE ) 11204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionSetBool("enableGetWaveform", ESR_TRUE); 11224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project //esr_status = SR_RecognizerSetBoolParameter ( data->recognizer, L("enableGetWaveform"), ESR_TRUE ); 11234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 11254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->active_grammar_num = (int)grammar_num; 11274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = -1; 11314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerDeactivateRule ( data->recognizer, data->grammars [grammar_num].grammar, 11334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->grammars [grammar_num].ruleName ); 11344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->active_grammar_num = (int)grammar_num; 11394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = -1; 11444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = -1; 11504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = -1; 11564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project use_status = -1; 11624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLogError("ERROR: context_use ignored, use context_free first!"); 11634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( use_status ); 11664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_save_context ( SR_Grammar *active_grammar, LCHAR *command_text ) 11714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int save_status; 11734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 11744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_name [P_PATH_MAX]; 11754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 11774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, file_name, NULL ); 11794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( save_status == 0 ) 11814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarSave ( active_grammar, file_name ); 11834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 11844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 11854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = -1; 11874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 11934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 11954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 11964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 11974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = -1; 11984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, "No Grammar Activated" ); 11994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( save_status ); 12014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_size_t_parameter ( ApplicationData *data, LCHAR *command_text ) 12064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 12084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 12094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR key [P_PATH_MAX]; 12104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t value; 12114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, key, NULL ); 12134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == 0 ) 12154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerGetSize_tParameter ( data->recognizer, key, &value ); 12174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 12194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 1220b3adea6f471d03c5bd728725adc7ca1cea89edfdMarcus Oakland printf ( "Get Parameter : %s : %zu\n", key, value ); 12214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 12234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 12254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 12264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 12294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_set_size_t_parameter ( ApplicationData *data, LCHAR *command_text ) 12344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int set_status; 12364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 12374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR key [P_PATH_MAX]; 12384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR value [MAX_UINT_DIGITS+1]; 12394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int value_as_number; 12404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 12414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = srec_test_get_two_command_items ( command_text, P_PATH_MAX, key, 12434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_UINT_DIGITS + 1, value, NULL, NULL ); 12444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( set_status == 0 ) 12454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi ( value, &value_as_number, 10 ); 12474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 12494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( value_as_number > 0 ) 12514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerSetSize_tParameter ( data->recognizer, key, (size_t)value_as_number ); 12534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 12554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 12574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 12584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 12614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 12634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 12644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 12674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 12694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 12704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( set_status ); 12734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 12744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_voice_enroll ( SR_Grammar *active_grammar, ApplicationData *data, LCHAR *command_text ) 12784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int enroll_status; 12804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 12814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR slot [P_PATH_MAX]; 12824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR nametagID [P_PATH_MAX]; 12834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR weight [MAX_UINT_DIGITS+1]; 12844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int weightNumber; 12854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 12864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 12884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->nametag != NULL ) 12904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = srec_test_get_three_command_items ( command_text, P_PATH_MAX, slot, P_PATH_MAX, nametagID, 12924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_UINT_DIGITS + 1, weight, NULL, NULL ); 12934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( enroll_status == 0 ) 12944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi ( weight, &weightNumber, 10 ); 12964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 12974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 12984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 12994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagSetID ( data->nametag, nametagID ); 13004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 13024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR value[MAX_LINE_LENGTH]; 13044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSPRINTF( value,"V='%s';",nametagID); 13054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarAddNametagToSlot ( active_grammar, slot, data->nametag, weightNumber, value ); 13064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 13074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 13094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 13154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 13214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 13324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 13384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, "No Grammar Activated" ); 13394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( enroll_status ); 13414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_load_nametags ( ApplicationData *data, LCHAR *command_text ) 13464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int load_status; 13484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 13494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_name [P_PATH_MAX]; 13504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, file_name, NULL ); 13524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( load_status == 0 ) 13544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsLoad ( data->nametags, file_name ); 13564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 13584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = -1; 13604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project load_status = -1; 13664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( load_status ); 13694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_save_nametags ( ApplicationData *data, LCHAR *command_text ) 13744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int save_status; 13764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 13774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_name [P_PATH_MAX]; 13784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, file_name, NULL ); 13804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( save_status == 0 ) 13824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsSave ( data->nametags, file_name ); 13844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 13864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = -1; 13884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 13924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 13934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project save_status = -1; 13944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 13954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( save_status ); 13974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 13984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 13994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_clear_nametags ( ApplicationData *data ) 14024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int clear_status; 14044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 14054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clear_status = 0; 14074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsDestroy ( data->nametags ); 14084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 14104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametags = NULL; 14124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsCreate ( &data->nametags ); 14134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 14154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clear_status = -1; 14174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 14214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clear_status = -1; 14234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( clear_status ); 14264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_add_to_nametags ( ApplicationData *data, LCHAR *command_text ) 14314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int add_status; 14334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 14344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR nametagID [P_PATH_MAX]; 14354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->nametag != NULL ) 14374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, nametagID, NULL ); 14394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( add_status == 0 ) 14414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagSetID ( data->nametag, nametagID ); 14434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 14454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsAdd ( data->nametags, data->nametag ); 14474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 14494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametag = NULL; 14514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 14534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 14554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 14594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 14614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 14654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 14674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 14714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project add_status = -1; 14734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 14744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( add_status ); 14764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 14774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_voice_enroll_nametags ( SR_Grammar *active_grammar, ApplicationData *data, LCHAR *command_text ) 14804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int enroll_status; 14824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 14834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR slot [P_PATH_MAX]; 14844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Nametag *nametag; 14854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t nametags_size; 14864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t current_nametag; 14874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 14894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, slot, NULL ); 14914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( enroll_status == 0 ) 14934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsGetSize (data->nametags, &nametags_size ); 14954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 14964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 14974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 14984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_nametag = 0; 14994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( current_nametag < nametags_size ) && ( esr_status == ESR_SUCCESS ) ) 15014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsGetAtIndex ( data->nametags, current_nametag, &nametag ); 15034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 15054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarAddNametagToSlot ( active_grammar, slot, nametag, 0, NULL ); 15074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 15094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_nametag++; 15114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 15154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 15214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 15284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project enroll_status = -1; 15394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, "No Grammar Activated" ); 15404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( enroll_status ); 15424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_set_audio_size ( ApplicationData *data, LCHAR *command_text ) 15474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int set_status; 15494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR new_size [P_PATH_MAX]; 15504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int size_as_number; 15514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 15524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, new_size, NULL ); 15544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( set_status == 0 ) 15564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi ( new_size, &size_as_number, 10 ); 15584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 15604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( size_as_number > 0 ) && ( size_as_number <= MAX_AUDIO_BUFFER_SIZE ) ) 15624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->audio_buffer_requested_size = size_as_number; 15644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Audio Size Set To %d\n"), size_as_number ); 15654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 15694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 15734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 15754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 15764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( set_status ); 15794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 15834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_sleep ( LCHAR *command_text ) 15844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( - 1 ); 15874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 15884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#else 15894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_sleep ( LCHAR *command_text ) 15904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 15914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int sleep_status; 15924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project struct timeval sleep_time_struct; 15934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR sleep_time [P_PATH_MAX]; 15944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int time_as_number; 15954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 15964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sleep_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, sleep_time, NULL ); 15984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 15994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( sleep_status == 0 ) 16004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi ( sleep_time, &time_as_number, 10 ); 16024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 16044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sleep_time_struct.tv_sec = time_as_number; 16064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sleep_time_struct.tv_usec = 0; 16074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project select ( 0, NULL, NULL, NULL, &sleep_time_struct ); 16084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 16104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sleep_status = -1; 16124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 16134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( sleep_status ); 16164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 16184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_change_sample_rate ( ApplicationData *data, LCHAR *command_text ) 16214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int change_status; 16234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 16244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR new_rate [P_PATH_MAX]; 16254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int rate_as_number; 16264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int convert_string_to_num; 16274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project change_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, new_rate, NULL ); 16294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( change_status == 0 ) 16314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project convert_string_to_num = lstrtoi ( new_rate, &rate_as_number, 10 ); 16334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( convert_string_to_num == 0 ) 16354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_Recognizer_Change_Sample_Rate ( data->recognizer, rate_as_number ); 16374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 16394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project change_status = -1; 16414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 16424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 16454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project change_status = -1; 16474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 16484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( change_status == 0 ) 16514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project printf ( "\nSuccessfully Set Sample Rate To : %s\n", new_rate ); 16524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 16534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project printf ( "\nFailed To Set Sample Rate To : %s\n", new_rate ); 16544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( change_status ); 16554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_set_acousticstate ( ApplicationData *data, LCHAR *command_text ) 16604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int set_status; 16624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 16634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR state_string [P_PATH_MAX]; 16644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, state_string, NULL ); 16664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( set_status == 0 ) 16684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_AcousticStateSet ( data->recognizer, state_string ); 16704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 16724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 16744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 16754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 16784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 16804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( set_status ); 16824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 16834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_acousticstate ( ApplicationData *data ) 16874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 16894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 16904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR state_string[1000]; 16914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 16924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = 0; 16944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = sizeof(state_string); 16954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_AcousticStateGet ( data->recognizer, state_string, &len ); 16964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 16974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 16984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 16994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project printf ( "Acoustic State :\n%s\n", state_string ); 17004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 17024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 17044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 17054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 17074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_reset_acousticstate ( ApplicationData *data ) 17124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int reset_status; 17144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 17154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project reset_status = 0; 17174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_AcousticStateReset ( data->recognizer ); 17184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 17204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project reset_status = -1; 17224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 17234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( reset_status ); 17254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_set_forced_rec_mode ( ApplicationData *data, LCHAR *command_text ) 17304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int set_status; 17324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR mode[P_PATH_MAX]; 17334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = srec_test_get_one_command_item ( command_text, P_PATH_MAX, mode, NULL ); 17354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( set_status == 0 ) 17374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( LSTRCMP ( mode, L("one_time") ) == 0 ) 17394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->forced_rec_mode = ForcedRecModeOneTime; 17414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( mode, L("off") ) == 0 ) 17434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->forced_rec_mode = ForcedRecModeOff; 17454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( mode, L("on") ) == 0 ) 17474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->forced_rec_mode = ForcedRecModeOn; 17494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 17514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project set_status = -1; 17534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 17544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( set_status ); 17574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_execute_command ( ApplicationData *data, LCHAR *text, FILE *results_file, size_t *recognition_count ) 17624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int execute_status; 17644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *current_command_start; 17654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *current_end_command; 17664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR command [MAX_LINE_LENGTH]; 17674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Grammar *active_grammar; 17684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR log_buffer [LOG_BUFFER_SIZE]; 17694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_get_active_grammar ( data, &active_grammar ); 17714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_command_start = text; 17724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_get_one_command_item ( current_command_start, MAX_LINE_LENGTH, command, ¤t_end_command ); 17734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( execute_status == 0 ) 17754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 17764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if( data->nametag 17774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project && ((LSTRCMP(command, "recognize_nist")==0) || (LSTRCMP(command, "recognize_pcm")==0)) ) { 17784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* if there is a nametag held in memory, and we don't make use of it, then 17794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project let's destroy it here */ 17804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_NametagDestroy( data->nametag); 17814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametag = NULL; 17824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 17834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 17844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( LSTRCMP ( command, L("recognize_nist") ) == 0 ) 17854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_recognize_nist_file ( active_grammar, data, results_file, 17864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_end_command, recognition_count ); 17874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("recognize_pcm") ) == 0 ) 17884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_recognize_pcm_file ( active_grammar, data, results_file, 17894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_end_command, recognition_count ); 17904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_load") ) == 0 ) 17914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_load_context ( data, current_end_command ); 17924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_use") ) == 0 ) 17934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_use_context ( active_grammar, data, current_end_command ); 17944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_free") ) == 0 ) 17954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_free_context ( active_grammar, data, current_end_command ); 17964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_unload") ) == 0 ) 17974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_unload_context ( data, current_end_command ); 17984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("addwords_from_nametags") ) == 0 ) 17994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_voice_enroll_nametags ( active_grammar, data, current_end_command ); 18004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("resetslots") ) == 0 ) 18014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_reset_slots ( active_grammar ); 18024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("addword") ) == 0 ) 18034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_add_word ( active_grammar, current_end_command ); 18044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_compile") ) == 0 ) 18054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_compile_active_context ( active_grammar ); 18064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("context_save") ) == 0 ) 18074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_save_context ( active_grammar, current_end_command ); 18084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("addword_from_last_nametag") ) == 0 ) 18094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_voice_enroll ( active_grammar, data, current_end_command ); 18104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("load_nametags") ) == 0 ) 18114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_load_nametags ( data, current_end_command ); 18124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("save_nametags") ) == 0 ) 18134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_save_nametags ( data, current_end_command ); 18144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("clear_nametags") ) ==0 ) 18154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_clear_nametags ( data ); 18164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("add_to_nametags") ) == 0 ) 18174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_add_to_nametags ( data, current_end_command ); 18184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("acousticstate_set") ) == 0 ) 18194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_set_acousticstate ( data, current_end_command ); 18204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("acousticstate_get") ) == 0 ) 18214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_get_acousticstate ( data ); 18224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("acousticstate_reset") ) == 0 ) 18234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_reset_acousticstate ( data ); 18244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("forced_rec") ) == 0 ) 18254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_set_forced_rec_mode ( data, current_end_command ); 18264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("change_sample_rate") ) == 0 ) 18274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_change_sample_rate ( data, current_end_command ); 18284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("set_size_t_parameter") ) == 0 ) 18294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_set_size_t_parameter ( data, current_end_command ); 18304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("get_size_t_parameter") ) == 0 ) 18314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_get_size_t_parameter ( data, current_end_command ); 18324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("set_audio_size") ) == 0 ) 18334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_set_audio_size ( data, current_end_command ); 18344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( LSTRCMP ( command, L("sleep") ) == 0 ) 18354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = srec_test_sleep ( current_end_command ); 18364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else if ( *( command ) == L('#') ) 18374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = 0; /* Comment in file just skip */ 18384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 18394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_status = -1; 18414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSPRINTF ( log_buffer, L("Unknown Command %s"), command ); 18424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_MODERATE, log_buffer ); 18434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 18464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 18484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( execute_status ); 18504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_open_command_file ( PFile **command_file ) 18554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int open_status; 18574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 18584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_name [P_PATH_MAX]; 18594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 18604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = 0; 18624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 18634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetLCHAR ( L("cmdline.tcp"), file_name, &len ); 18644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 18664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 18684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionPrefixWithBaseDirectory ( file_name, &len ); 18694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 18714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *command_file = pfopen ( file_name, L("r") ); 18734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( *command_file == NULL ) 18754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 18774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("\nError opening command file %s\n"), file_name); 18784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 18814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 18834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("\nError finding command file\n")); 18844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 18874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 18894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 18904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( open_status ); 18924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 18934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid srec_test_close_command_file ( PFile *command_file ) 18974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 18984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 18994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pfclose ( command_file ); 19004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid srec_test_close_audio_file ( PFile *audio_file ) 19054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pfclose ( audio_file ); 19084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_open_results_file ( FILE **results_file ) 19134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int open_status; 19154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 19164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_name [P_PATH_MAX]; 19174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 19184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = 0; 19204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 19214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetLCHAR ( L("cmdline.results"), file_name, &len ); 19224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 19244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *results_file = fopen ( file_name, L("w") ); 19264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( *results_file ) == NULL ) 19284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 19304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 19314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 19344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 19364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 19374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( open_status ); 19394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid srec_test_close_results_file ( FILE *results_file ) 19444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project fclose ( results_file ); 19474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_commands ( ApplicationData *data ) 19524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 19544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PFile *command_file; 19554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project FILE *results_file; 19564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *got_line_ok; 19574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR linebuffer [MAX_LINE_LENGTH]; 19584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t recognition_count; 19594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognition_count = 0; 19614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_open_command_file ( &command_file ); 19624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( process_status == 0 ) 19644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_open_results_file ( &results_file ); 19664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( process_status == 0 ) 19684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do 19704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project got_line_ok = pfgets ( linebuffer, MAX_LINE_LENGTH, command_file ); 19724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( got_line_ok != NULL ) 19744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_execute_command ( data, linebuffer, results_file, &recognition_count ); 19754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( got_line_ok != NULL ) && ( process_status == 0 ) ); 19774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if( data->nametag ) { 19784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_NametagDestroy( data->nametag); 19794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametag = NULL; 19804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_close_results_file ( results_file ); 19844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_close_command_file ( command_file ); 19864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 19884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 19894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 19924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_open_pcm_file ( LCHAR *file_name, PFile **pcm_file ) 19934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 19944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int open_status; 19954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 19964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int lstr_result; 19974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_path [P_PATH_MAX]; 19984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 19994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = 0; 20014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetLCHAR ( L("cmdline.datapath"), file_path, &len ); 20034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionPrefixWithBaseDirectory ( file_path, &len ); 20084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = pf_convert_backslashes_to_forwardslashes ( file_path ); 20124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lstr_result = lstrinsert ( file_path, file_name, 0, &len ); 20174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( lstr_result == 0 ) 20194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *pcm_file = pfopen ( file_name, L("rb") ); 20214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( *pcm_file ) == NULL ) 20234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 20284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 20314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 20344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 20374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 20404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 20434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 20464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 20494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(open_status) PLogError( ("Error: while opening %s\n"), file_name); 20514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( open_status ); 20524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_open_nist_file ( LCHAR *file_name, PFile **nist_file ) 20574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int open_status; 20594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 20604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int lstr_result; 20614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR file_path [P_PATH_MAX]; 20624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 20634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = 0; 20654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetLCHAR ( L("cmdline.datapath"), file_path, &len ); 20674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionPrefixWithBaseDirectory ( file_path, &len ); 20724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = pf_convert_backslashes_to_forwardslashes ( file_path ); 20764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(file_path[ LSTRLEN(file_path)-1] != L('/')) 20784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCAT(file_path,L("/")); 20794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 20814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 20834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lstr_result = lstrinsert ( file_path, file_name, 0, &len ); 20844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( lstr_result == 0 ) 20864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *nist_file = pfopen ( file_name, L("rb") ); 20884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( *nist_file ) != NULL ) 20904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = pfseek ( *nist_file, 1024, SEEK_SET ); 20924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 20934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 20944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 20954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 20964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 20984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 20994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 21014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 21064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 21124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 21184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project open_status = -1; 21244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(open_status) PLogError( ("Error: while opening %s\n"), file_name); 21274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( open_status ); 21284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_get_audio_from_file ( PFile *audio_file, ApplicationData *data, ESR_BOOL *hit_eof ) 21334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 21354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int eof_status; 21364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = 0; 21384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->num_samples_read = pfread ( data->audio_buffer, sizeof ( asr_int16_t ), data->audio_buffer_requested_size, audio_file ); 21394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->num_samples_read > 0 ) 21414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *hit_eof = ESR_FALSE; 21434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project eof_status = pfeof ( audio_file ); 21474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( eof_status == 0 ) 21494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = -1; 21514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *hit_eof = ESR_TRUE; 21564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 21594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_feed_recognizer ( ApplicationData *data, ESR_BOOL hit_eof, SR_RecognizerStatus *esr_recog_status, SR_RecognizerResultType *result_type ) 21644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int feed_status; 21664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 21674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project feed_status = 0; 21694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerPutAudio ( data->recognizer, data->audio_buffer, &data->num_samples_read, hit_eof ); 21704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 21724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do 21744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerAdvance ( data->recognizer, esr_recog_status, result_type, &data->result ); 21764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 21784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project feed_status = -1; 21804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *esr_recog_status = SR_RECOGNIZER_EVENT_STOPPED; 21814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *result_type = SR_RECOGNIZER_RESULT_TYPE_COMPLETE; 21824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( *esr_recog_status ) == SR_RECOGNIZER_EVENT_INCOMPLETE ); 21864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 21884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project feed_status = -1; 21904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 21914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( feed_status ); 21934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 21944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 21974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_flush_audio ( ApplicationData *data, SR_RecognizerStatus *esr_recog_status, SR_RecognizerResultType *result_type ) 21984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 21994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int flush_status; 22004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 22014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project flush_status = 0; 22034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( *result_type ) != SR_RECOGNIZER_RESULT_TYPE_COMPLETE ) 22054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerAdvance ( data->recognizer, esr_recog_status, result_type, &data->result ); 22074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 22094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project flush_status = -1; 22114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *esr_recog_status = SR_RECOGNIZER_EVENT_STOPPED; 22124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *result_type = SR_RECOGNIZER_RESULT_TYPE_COMPLETE; 22134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 22144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( flush_status ); 22174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_start_timeout ( ApplicationData *data, FILE *results_file ) 22224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 22244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 22254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t utterance_timeout; 22264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 22284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetSize_t ( L("SREC.Recognizer.utterance_timeout"), &utterance_timeout ); 22294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 22314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("E: utterance_timeout %lu\n"), (unsigned long)utterance_timeout ); 22334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("R: <FAILED>\n") ); 22344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("\n-------------------------------------\n") ); 22354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("E: utterance_timeout %lu\n"), (unsigned long)utterance_timeout ); 22364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("R: <FAILED>\n") ); 22374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("-------------------------------------\n\n") ); 22384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 22404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 22424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 22434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_recognition_failure ( data ); 22454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 22474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_write_and_log_wave_form_file ( ApplicationData *data, size_t recognition_count ) 22514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int write_status; 22534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 22544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *wave_filename; 22554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project write_status = 0; 22574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSPRINTF ( data->raw_waveform_filename, L("a%lu__%s.raw"), (unsigned long)recognition_count, data->transcription ); 22584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project wave_filename = data->raw_waveform_filename; 22594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( *wave_filename ) 22614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( *wave_filename == ' ') 22634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *wave_filename = '_'; 22644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project wave_filename++; 22654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* just write to file for now... for testing purposes */ 22674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Dumping audio waveform to file %s\n"), data->raw_waveform_filename ); 22684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->raw_waveform_file = pfopen ( data->raw_waveform_filename, L("wb") ); 22694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->raw_waveform_file != NULL ) 22714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pfwrite ( (void*)data->raw_waveform, 1, data->raw_waveform_size, data->raw_waveform_file ); 22734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pfclose ( data->raw_waveform_file ); 22744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* log the filename in the ESR log */ 22754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerLogToken ( data->recognizer, "WVFMFILENAME", data->raw_waveform_filename ); 22764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 22784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project write_status = -1; 22804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 22814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 22844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 22854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project write_status = -1; 22864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 22874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( write_status ); 22894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 22904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 22934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_nbest_list ( ApplicationData *data, FILE *results_file ) 22944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 22954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 22964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 22974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t nbestSize; 22984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t nbest_num; 22994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR linebuffer [MAX_LINE_LENGTH]; 23004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t line_length; 23014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 23034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* At least one semantic result exists */ 23044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("\n\n----------------------------------------------\n") ); 23054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("TRANSCRIPTION : '%s'\n"), data->transcription ); 23074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetSize (data->result, &nbestSize ); 23084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 23104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for ( nbest_num = 0; nbest_num < nbestSize; nbest_num++ ) 23124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 23144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue ( data->result, nbest_num, L("literal"), linebuffer, &line_length ); 23154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 23174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("LITERAL[%2lu] : '%s'\n"), (unsigned long)nbest_num, linebuffer ); 23194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 23204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue ( data->result, nbest_num, L("meaning"), linebuffer, &line_length ); 23214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 23234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project linebuffer [0] = L('\0') ; 23254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("MEANING[%2lu] : '%s'\n"), (unsigned long)nbest_num, linebuffer ); 23274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 23294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue (data->result, nbest_num , L("conf"), linebuffer, &line_length ); 23304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 23314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("CONFIDENCE VALUE : '%s'\n"), linebuffer ); 23334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 23354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 23374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 23384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 23414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue (data->result, nbest_num, L("raws"), linebuffer, &line_length ); 23424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 23444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("RAW SCORE[%2lu] : '%s'\n"), (unsigned long)nbest_num, linebuffer); 23464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 23484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 23504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 23514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef SREC_ENGINE_VERBOSE_LOGGING 23534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(1) { 23544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* get ALL key value pairs */ 23554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *keys[32], keysdata[128*32]; 23564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t k,key_count = sizeof(keys)/sizeof(keys[0]); 23574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for(k=0;k<key_count;k++) keys[k] = &keysdata[128*k]; 23584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project // esr_status = SR_RecognizerResultGetKeyCount(data->result, nbest_num, &key_count); 23594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetKeyList(data->result, nbest_num, (LCHAR**)keys, &key_count); 23604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(esr_status == ESR_SUCCESS) { 23614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (k=0; k<key_count; k++) { 23624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR value[128]; 23634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t valuelen = sizeof(value)/sizeof(value[0]); 23644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue( data->result, nbest_num, keys[k], value, &valuelen); 23654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(esr_status==ESR_SUCCESS) 23664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF( L("%s[%2lu] : '%s'\n"), keys[k], (unsigned long)nbest_num, value); 23674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 23714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("\n")); 23724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 23744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 23764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 23774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 23814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 23824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 23834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 23844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 23854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("----------------------------------------------\n\n") ); 23874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 23884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 23894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 23924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_recognition ( ApplicationData *data, FILE *results_file, size_t recognition_count ) 23934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 23944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 23954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 23964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project APPL_GRAMMAR_DATA *grammar_data; 23974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR linebuffer [MAX_LINE_LENGTH]; 23984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t line_length; 23994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 24014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_get_active_grammar_data ( data, &grammar_data ); 24024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do { 24044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 24054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue ( data->result, 0, L("literal"), linebuffer, &line_length ); 24064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) break; 24084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("R: %s\n"), linebuffer ); 24094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project line_length = MAX_LINE_LENGTH; 24104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetValue ( data->result, 0, L("conf"), linebuffer, &line_length ); 24114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) break; 24134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("S: %s\n"), linebuffer); 24154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("S: %s\n"), linebuffer); 24164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_process_nbest_list ( data, results_file ); 24174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* 24184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * SR_RecognizerResultGetWaveform will return pointer to buffer holding 24194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * audio data in it. This buffer is NOT under the application's control 24204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * and MUST only be read from. 24214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 24224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_data->is_ve_grammar == ESR_TRUE ) 24234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagCreate ( data->result, L("dummyID"), &data->nametag ); 24254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(esr_status != ESR_SUCCESS) { 24264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("VoiceEnrollment=>FAILURE\n") ); 24274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 24284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("VoiceEnrollment=>SUCCESS\n") ); 24304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(1) { 24314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const char* value = NULL; 24324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len, len2; 24334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project char* value2; 24344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* this is to mimic what might happen in a real application */ 24354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagGetValue( data->nametag, &value, &len); 24364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project value2 = (char*)CALLOC(len, sizeof(char), "srectest.nametag"); 24374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len2 = len; 24384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project memcpy( value2, value, len); 24394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagDestroy(data->nametag); 24404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametag = NULL; 24414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(esr_status != ESR_SUCCESS) break; 24424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* in a real application we would save the nametag value someplace 24434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project along with the data->raw_waveform, then retrieve it and create a 24444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project nametag from that value */ 24454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagCreateFromValue( L("dummyID"), value2, len2, &data->nametag); 24464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project FREE( value2); 24474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project value2 = NULL; 24484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) break; 24504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerResultGetWaveform ( data->result, &data->raw_waveform, &data->raw_waveform_size ); 24524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if( esr_status != ESR_SUCCESS ) break; 24534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->raw_waveform ) 24554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_write_and_log_wave_form_file ( data, recognition_count ); 24574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( process_status == 0 ) 24594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerLogEvent ( data->recognizer, "ESRve" ); 24614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else { 24634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_INVALID_STATE; 24644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 24684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } while(0); 24694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if( esr_status != ESR_SUCCESS) { 24704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 24714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 24724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 24744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 24754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_recognition_fail ( ApplicationData *data ) 24794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 24814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 24824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project APPL_GRAMMAR_DATA *grammar_data; 24834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL reason_status; 24844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 24864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_get_active_grammar_data ( data, &grammar_data ); 24874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("*** no match in recognition***\n")); 24884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( grammar_data->is_ve_grammar == ESR_TRUE ) 24904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->nametag = NULL; 24924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("VoiceEnrollement = FAILED : \n") ); 24934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 24944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalClipping ( data->recognizer, &reason_status ); 24954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 24964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 24974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 24984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 24994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal is clipping\n") ); 25004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalDCOffset ( data->recognizer, &reason_status ); 25074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 25094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 25114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal is DC-offset\n") ); 25124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalNoisy ( data->recognizer, &reason_status ); 25194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 25214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 25234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal is noisy\n") ); 25244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalTooFewSamples ( data->recognizer, &reason_status ); 25314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 25334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 25354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal has too few samples\n") ); 25364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalTooManySamples ( data->recognizer, &reason_status ); 25434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 25454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 25474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal has too many samples\n") ); 25484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerIsSignalTooQuiet ( data->recognizer, &reason_status ); 25554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 25574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( reason_status == ESR_TRUE ) 25594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("- Signal is too quiet\n") ); 25604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 25624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = -1; 25644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 25654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_recognition_failure ( data ); 25674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 25684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_recognition_unsupported_case ( ApplicationData *data, FILE *results_file ) 25734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 25754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = 0; 25774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("E: No results available\n") ); 25784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LFPRINTF ( results_file, L("R: <FAILED>\n") ); 25794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_recognition_failure ( data ); 25804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 25824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void srec_test_log_recognition_failure ( ApplicationData *data ) 25874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 25884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("----------------------------------------------\n")); 25904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("TRANSCRIPTION : '%s'\n"), data->transcription); 25914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("<NO-RESULTS>\n")); 25924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("----------------------------------------------\n\n")); 25934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 25944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 25974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_process_results ( ApplicationData *data, SR_RecognizerStatus esr_recog_status, 25984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project FILE *results_file, size_t recognition_count ) 25994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int process_status; 26014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( esr_recog_status ) 26034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SR_RECOGNIZER_EVENT_START_OF_UTTERANCE_TIMEOUT: 26054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_process_start_timeout ( data, results_file ); 26064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 26074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SR_RECOGNIZER_EVENT_RECOGNITION_RESULT: 26094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_process_recognition ( data, results_file, recognition_count ); 26104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 26114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SR_RECOGNIZER_EVENT_NO_MATCH: 26134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_process_recognition_fail ( data ); 26144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 26154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 26174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project process_status = srec_test_process_recognition_unsupported_case ( data, results_file ); 26184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 26194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( process_status ); 26214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint srec_test_log_reco_from_file_data ( SR_Grammar *active_grammar, ApplicationData *data, LCHAR *waveform, LCHAR *bos, LCHAR *eos, LCHAR *transcription ) 26264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int log_status; 26284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 26294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t result_count; 26304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL got_results; 26314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t transcription_length; 26324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project log_status = 0; 26344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSPRINTF ( data->transcription, "%s", transcription ); 26354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project transcription_length = LSTRLEN ( data->transcription ); 26364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( *( data->transcription + transcription_length - 1 ) == '\n' ) || 26384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ( *( data->transcription + transcription_length - 1 ) == '\r' ) ) 26394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *( data->transcription + transcription_length - 1 ) = '\0'; 26414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project transcription_length--; 26424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("D: %s\nC: %s\n"), waveform, data->transcription ); 26444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_GrammarCheckParse ( active_grammar, data->transcription, 0, &result_count ); 26464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 26484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( result_count > 0 ) 26504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef ACCURACY_TESTING 26524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR meaning[MAX_LINE_LENGTH] = { 0 }; 26534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len = MAX_LINE_LENGTH; 26544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project got_results = ESR_TRUE; 26554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Sem (%lu): invocab=1\n"), (unsigned long)result_count ); 26564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_parse ( active_grammar, transcription, meaning, &len); 26574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(LSTRLEN(meaning)>0) 26584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF( L("CSem: %s\n"), meaning); 26594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#else 26604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project got_results = ESR_TRUE; 26614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Sem (%lu): invocab=1\n"), (unsigned long)result_count ); 26624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 26634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 26654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project got_results = ESR_FALSE; 26674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Sem: <NO INTERPRETATION FOUND>\n") ); 26684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("CSem: <NO INTERPRETATION FOUND>\n") ); 26694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerLogWaveformData ( data->recognizer, waveform, data->transcription, atof ( bos ), atof ( eos ), got_results ); 26714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 26734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project log_status = -1; 26754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 26764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 26794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project log_status = -1; 26814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 26824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( log_status ); 26854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 26864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 26894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_recognize_pcm_file ( SR_Grammar *active_grammar, ApplicationData *data, FILE *results_file, 26904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *command_text, size_t *recognition_count ) 26914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 26924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int recognize_status; 26934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 26944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerStatus esr_recog_status; 26954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerResultType result_type; 26964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *transcription; 26974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR waveform [MAX_LINE_LENGTH]; 26984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR bos [MAX_LINE_LENGTH]; 26994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR eos [MAX_LINE_LENGTH]; 27004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PFile *waveform_file; 27014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL hit_eof; 27024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 27044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_get_three_command_items ( command_text, MAX_LINE_LENGTH, waveform, 27064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_LINE_LENGTH, bos, MAX_LINE_LENGTH, 27074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project eos, NULL, &transcription ); 27084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while( *transcription == ' ' ) transcription++; 27094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_log_reco_from_file_data ( active_grammar, data, waveform, bos, eos, transcription ); 27124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(LSTRCMP(bos,"0") || LSTRCMP(eos,"0")) { 27164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLogError( ("Error: non-zero BOS and non-zero EOS are not supported\n")); 27174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return -1; 27184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_open_pcm_file ( waveform, &waveform_file ); 27204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( data->forced_rec_mode == ForcedRecModeOn ) || ( data->forced_rec_mode == ForcedRecModeOneTime ) ) 27244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarAllowOnly ( active_grammar, data->transcription ); 27254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerStart ( data->recognizer ); 27264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 27284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ( *recognition_count )++; 27304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project hit_eof = ESR_FALSE; 27314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do 27334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_get_audio_from_file ( waveform_file, data, &hit_eof ); 27354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_feed_recognizer ( data, hit_eof, &esr_recog_status, &result_type ); 27384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( hit_eof == ESR_FALSE ) && ( result_type != SR_RECOGNIZER_RESULT_TYPE_COMPLETE ) && ( recognize_status == 0 ) ); 27404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_flush_audio ( data, &esr_recog_status, &result_type ); 27444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 27464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_process_results ( data, esr_recog_status, 27484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project results_file, *recognition_count ); 27494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerStop ( data->recognizer ); 27524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (esr_status == ESR_SUCCESS ) 27544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Recognizer has been stopped\n") ); 27564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 27584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = -1; 27604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Recognizer has failed to stop\n") ); 27614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->forced_rec_mode == ForcedRecModeOneTime ) 27644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->forced_rec_mode = ForcedRecModeOff; 27664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarAllowAll ( active_grammar ); 27674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_close_audio_file ( waveform_file ); 27694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 27744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = -1; 27764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 27774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( recognize_status ); 27794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 27804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_recognize_nist_file ( SR_Grammar *active_grammar, ApplicationData *data, FILE *results_file, 27844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *command_text, size_t *recognition_count ) 27854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int recognize_status; 27874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 27884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerStatus esr_recog_status; 27894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerResultType result_type; 27904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR *transcription; 27914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR waveform [MAX_LINE_LENGTH]; 27924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR bos [MAX_LINE_LENGTH]; 27934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR eos [MAX_LINE_LENGTH]; 27944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PFile *waveform_file; 27954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_BOOL hit_eof; 27964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 27974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( active_grammar != NULL ) 27984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 27994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_get_three_command_items ( command_text, MAX_LINE_LENGTH, waveform, 28004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project MAX_LINE_LENGTH, bos, MAX_LINE_LENGTH, 28014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project eos, NULL, &transcription ); 28024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while( *transcription == ' ' ) transcription++; 28034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_log_reco_from_file_data ( active_grammar, data, waveform, bos, eos, transcription ); 28064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if(LSTRCMP(bos,"0") || LSTRCMP(eos,"0")) { 28104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLogError( ("Error: non-zero BOS and non-zero EOS are not supported\n")); 28114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return -1; 28124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_open_nist_file ( waveform, &waveform_file ); 28144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( ( data->forced_rec_mode == ForcedRecModeOn ) || ( data->forced_rec_mode == ForcedRecModeOneTime ) ) 28184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarAllowOnly ( active_grammar, data->transcription ); 28194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerStart ( data->recognizer ); 28204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 28224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ( *recognition_count )++; 28244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project hit_eof = ESR_FALSE; 28254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do 28274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_get_audio_from_file ( waveform_file, data, &hit_eof ); 28294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_feed_recognizer ( data, hit_eof, &esr_recog_status, &result_type ); 28324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( hit_eof == ESR_FALSE ) && ( result_type != SR_RECOGNIZER_RESULT_TYPE_COMPLETE ) && ( recognize_status == 0 ) ); 28344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_flush_audio ( data, &esr_recog_status, &result_type ); 28384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( recognize_status == 0 ) 28404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = srec_test_process_results ( data, esr_recog_status, 28424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project results_file, *recognition_count ); 28434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerStop ( data->recognizer ); 28474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (esr_status == ESR_SUCCESS ) 28494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Recognizer has been stopped\n") ); 28514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 28534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = -1; 28554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF ( L("Recognizer has failed to stop\n") ); 28564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( data->forced_rec_mode == ForcedRecModeOneTime ) 28584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project data->forced_rec_mode = ForcedRecModeOff; 28604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarAllowAll ( active_grammar ); 28614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_close_audio_file ( waveform_file ); 28634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 28684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recognize_status = -1; 28704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 28714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( recognize_status ); 28734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define STACK_SIZE (1024 * 200) 28784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 28804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* disable optimization for the next functions as the compiler optimizes away the assignment to mySTACK[i] */ 28814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#pragma optimize("", off) 28824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void initStack() 28844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 28854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int mySTACK[STACK_SIZE]; 28864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* This extra block is to ensure that local variables of the function occur after buffer mySTACK. */ 28884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int i; 28894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (i = 0; i < STACK_SIZE; ++i) 28914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 28924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project mySTACK[i] = 0xDEADBEEF; 28934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 28954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 28964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 28974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int analyzeStack() 28984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 28994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int mySTACK[STACK_SIZE]; 29004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* This extra block is to ensure that local variables of the function occur after buffer mySTACK. */ 29034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int i, j; 29044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (i = STACK_SIZE - 1; i >= 0; --i) 29064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (mySTACK[i] == 0xDEADBEEF) 29084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* This might be a candidate for the end of stack marker, or it could be 29104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project some value that is equal to our marker. To ensure reliability of 29114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project this candidate, we will make sure that all remaining entries int the 29124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project stack are also equal to DEADBEEF. 29134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 29144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (j = i - 1; j >= 0; --j) 29154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (mySTACK[j] != 0xDEADBEEF) 29174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project i = j; 29194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (j < 0) break; 29234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (i < 0) 29274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return -1; 29284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 29294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return (STACK_SIZE - 1 - i) * sizeof(int); 29304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 29324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* restore optmization settings to what they used to be. */ 29344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#pragma optimize("", on) 29354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 29364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef ACCURACY_TESTING 29394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic void srec_test_clean_up_sentence ( char* sentence ) 29404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int clean_up_status; 29424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int sentence_finished; 29434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SENTENCE_CLEANING_STATES current_state; 29444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project char *current_input; 29454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project char *current_output; 29464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = 0; 29484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sentence_finished = 0; 29494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_BEGIN; 29504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_input = sentence; 29514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output = sentence; 29524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project strtok( sentence, "\n\r"); 29534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project do 29554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( *current_input ) 29574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case '\0': 29594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( current_state ) 29604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 29614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN: 29624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_BEGIN: /* Is this error condition */ 29654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 29664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 29674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_END: 29704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 29714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE: 29744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 29754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_BEGIN: /* Is this error condition */ 29784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *( current_output - 1 ) = '\0'; 29794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 29804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_END: 29834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *( current_output - 1 ) = '\0'; 29844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_WITH_SPACE: 29874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *( current_output - 1 ) = '\0'; 29884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 29914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 29924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 29934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 29954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project sentence_finished = 1; 29964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 29974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 29984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ' ': 29994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( current_state ) 30004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 30014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN: 30024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_BEGIN: 30054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_END: 30084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE: 30114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = ' '; 30124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 30134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE_WITH_SPACE; 30144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_BEGIN: /* Is this error condition */ 30174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_END: 30204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_WITH_SPACE: 30234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 30264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 30314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_input++; 30324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case '[': 30354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( current_state ) 30364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 30374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN: 30384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_BEGIN_BRACKET_BEGIN; 30394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_BEGIN: 30424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_END: 30484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_BEGIN_BRACKET_BEGIN; 30494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE: 30524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = ' '; 30534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 30544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE_BRACKET_BEGIN; 30554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_BEGIN: /* Is this error condition */ 30584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_END: 30644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE_BRACKET_BEGIN; 30654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_WITH_SPACE: 30684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE_BRACKET_BEGIN; 30694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 30724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 30774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_input++; 30784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case ']': 30814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( current_state ) 30824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 30834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN: 30844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_BEGIN: 30904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_BEGIN_BRACKET_END; 30914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_END: 30944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 30954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 30964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 30974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 30984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 30994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE: 31004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 31014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 31024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 31034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_BEGIN: /* Is this error condition */ 31064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE_BRACKET_END; 31074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_END: 31104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 31114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 31124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 31134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_WITH_SPACE: 31164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 31174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 31184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 31194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 31224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 31234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 31244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 31254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 31274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_input++; 31284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 31314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project switch ( current_state ) 31324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 31334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN: 31344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = *current_input; 31354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 31364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE; 31374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_BEGIN: 31404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_BEGIN_BRACKET_END: 31434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = *current_input; 31444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 31454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE; 31464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE: 31494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = *current_input; 31504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 31514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE; 31524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_BEGIN: 31554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_BRACKET_END: 31584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = *current_input; 31594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 31604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE; 31614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project case SENTENCE_MIDDLE_WITH_SPACE: 31644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = *current_input; 31654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_output++; 31664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_state = SENTENCE_MIDDLE; 31674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project default: 31704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *current_output = '\0'; 31714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project clean_up_status = -1; 31724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log error */ 31734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 31754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_input++; 31764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project break; 31774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 31784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 31794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( sentence_finished == 0 ) && ( clean_up_status == 0 ) ); 31804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 31814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode srec_test_parse ( SR_Grammar* grammar, const LCHAR* trans, LCHAR* meaning, size_t *len ) 31854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 31864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode parse_status; 31874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project char cleaned_trans[TRANSCRIPTION_SIZE]; 31884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_SemanticResult *semanticResults; 31894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t result_count; 31904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project result_count = 0; 31924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project strcpy( cleaned_trans, trans ); 31934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_clean_up_sentence ( cleaned_trans ); 31944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* create the result holders, initially not greater than MAX */ 31964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = SR_SemanticResultCreate ( &semanticResults ); 31974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 31984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( parse_status == ESR_SUCCESS ) 31994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project result_count = 1; 32014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = SR_SemanticProcessor_Flush( ( (SR_GrammarImpl*)grammar )->semproc ); 32024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( parse_status == ESR_SUCCESS ) 32044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = SR_SemanticProcessor_SetParam( ((SR_GrammarImpl*)grammar)->semproc, L("literal"), cleaned_trans ); 32064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( parse_status == ESR_SUCCESS ) 32084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = SR_GrammarCheckParse( grammar, cleaned_trans, &semanticResults, (size_t*)&result_count ); 32104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( parse_status == ESR_SUCCESS ) 32124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( result_count < 1 ) 32144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LSTRCPY ( meaning, L("") ); 32164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_SemanticResultDestroy( semanticResults); 32174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = ESR_NO_MATCH_ERROR; 32184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 32204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project parse_status = SR_SemanticResultGetValue ( semanticResults, "meaning", meaning, len); 32224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_SemanticResultDestroy( semanticResults); 32234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( parse_status ); 32294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 32314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_get_run_params ( unsigned int *num_shutdown_loops, unsigned int *num_continuous_run_loops ) 32344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int get_status; 32364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = get_num_srec_test_shutdown_times ( num_shutdown_loops ); 32384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( get_status == 0 ) 32404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project get_status = get_num_srec_test_continuous_loops ( num_continuous_run_loops ); 32414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( get_status ); 32434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_application_data ( ApplicationData *applicationData ) 32484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 32504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int i; 32514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = 0; 32534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->argc = 0; 32554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->argv = NULL; 32564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->locale = -1; 32574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (applicationData->recognizer != NULL) 32594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Failed To Cleanup Recognizer") ); 32614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* SR_RecognizerLogSessionEnd ( applicationData->recognizer ); 32624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerDestroy ( applicationData->recognizer );*/ 32634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->recognizer = NULL; 32644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->result = NULL; // this was deallocated by SR_RecognizerDestroy() 32654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (applicationData->vocabulary != NULL) 32684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Failed To Cleanup Vocabulary") ); 32704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* SR_VocabularyDestroy(applicationData->vocabulary); 32714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->vocabulary = NULL;*/ 32724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (applicationData->nametag != NULL) 32754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Failed To Cleanup NameTag") ); 32774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* SR_NametagDestroy(applicationData->nametag); 32784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametag = NULL;*/ 32794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if (applicationData->nametags != NULL) 32824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Failed To Cleanup NameTagSet") ); 32844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* SR_NametagsDestroy(applicationData->nametags); 32854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametags = NULL;*/ 32864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (i = 0; i < applicationData->grammarCount; ++i) 32894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_log_error ( 0, ERROR_LEVEL_HIGH, L("Failed To Cleanup Grammar") ); 32904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* 32914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( applicationData->grammars [i] != NULL ) 32924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 32934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project printf ( "!!!!!!!! %d Grammars Not Destroyed !!!!!!!!!!!!\n", i ); 32944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_GrammarDestroy(applicationData->grammars[i]); 32954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->grammars[i] = NULL; 32964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 32984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 32994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->activeGrammar = -1; 33004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->activeRule = NULL; 33014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->voiceEnrollment = NULL; 33024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project*/ 33034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform = NULL; 33044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform_filename [0] = L( '\0' ); 33054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform_file = NULL; 33064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->transcription[0] = L( '\0' ); 33074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->forced_rec_mode = ForcedRecModeNotSet; 33084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 33104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_application_data ( ApplicationData *applicationData, int arg_count, LCHAR *arg_vals [] ) 33154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 33174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = 0; 33194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->argc = arg_count; 33204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->argv = arg_vals; 33214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->locale = -1; 33224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->recognizer = NULL; 33234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->result = NULL; 33244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->vocabulary = NULL; 33254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametag = NULL; 33264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametags = NULL; 33274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->grammarCount = 0; /* No need to initialize arrays, index is 0 */ 33284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->active_grammar_num = -1; 33294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* applicationData->activeRule = NULL; 33304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData-> = applicationData->voiceEnrollment = NULL;*/ 33314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->audio_buffer_requested_size = DEFAULT_AUDIO_BUFFER_SIZE; 33324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform = NULL; 33334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform_filename [0] = L( '\0' ); 33344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->raw_waveform_file = NULL; 33354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->transcription[0] = L( '\0' ); 33364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->forced_rec_mode = ForcedRecModeNotSet; 33374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 33384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_shutdown_session ( ApplicationData *applicationData ) 33424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 33444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = 0; 33464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerUnsetup ( applicationData->recognizer); // releases acoustic models 33484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerDestroy ( applicationData->recognizer ); 33494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->recognizer = NULL; 33504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ShutdownSession ( ); 33514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 33534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_init_session ( ApplicationData *applicationData ) 33584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 33594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int run_status; 33604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 33614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = 0; 33634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("\nCreate Recognizer:\n")); 33644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" InitSession()\n")); 33654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = InitSession ( applicationData->argc, applicationData->argv ); 33664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 33684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" SR_RecognizerCreate()\n")); 33704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerCreate ( &applicationData->recognizer ); 33714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 33734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ShutdownSession ( ); 33754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 33764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 33774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } else { 33784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" SR_RecognizerSetup()\n")); 33794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerSetup ( applicationData->recognizer); 33804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 33814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ShutdownSession ( ); 33834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 33844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 33854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 33884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( run_status ); 33894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 33904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_shutdown_vocab_grammar ( ApplicationData *applicationData ) 33934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 33944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 33954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 33964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = 0; 33974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_RecognizerLogSessionEnd ( applicationData->recognizer ); 33984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* SR_GrammarDestroy ( applicationData->grammars [0].grammar ); 33994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->grammars [0].grammar = NULL;*/ 34004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_VocabularyDestroy ( applicationData->vocabulary ); 34014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->vocabulary = NULL; 34024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 34044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_init_vocab_grammar ( ApplicationData *applicationData ) 34094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int run_status; 34114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 34124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR filename[P_PATH_MAX]; 34134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t len; 34144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = 0; 34164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Create vocabulary object and associate with grammar */ 34174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("Create vocabulary object and associate with grammar:\n")); 34184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project len = P_PATH_MAX; 34194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = ESR_SessionGetLCHAR ( L("cmdline.vocabulary"), filename, &len ); 34204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 34224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" SR_VocabularyLoad()\n")); 34244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_VocabularyLoad ( filename, &applicationData->vocabulary ); 34254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 34274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" SR_VocabularyGetLanguage()\n")); 34294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_VocabularyGetLanguage ( applicationData->vocabulary, &applicationData->locale ); 34304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 34324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* start a new log session */ 34344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF( L("Start a new log session:\n") ); 34354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF( L(" SR_RecognizerLogSessionStart()\n") ); 34364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_RecognizerLogSessionStart ( applicationData->recognizer, L("SRecTest.session1") ); 34374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 34394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_VocabularyDestroy ( applicationData->vocabulary ); 34414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->vocabulary = NULL; 34424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 34434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log here */ 34444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 34474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_VocabularyDestroy ( applicationData->vocabulary ); 34494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->vocabulary = NULL; 34504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 34514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 34524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 34554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 34574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 34584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 34614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 34634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 34644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( run_status ); 34664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_shutdown ( ApplicationData *applicationData ) 34714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 34734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = srec_test_run_test_shutdown_vocab_grammar ( applicationData ); 34754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( shutdown_status == 0 ) 34774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = srec_test_run_test_shutdown_session ( applicationData ); 34784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 34794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_init ( ApplicationData *applicationData ) 34834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 34844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int run_status; 34854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = srec_test_run_test_init_session ( applicationData ); 34874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( run_status == 0 ) 34894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = srec_test_run_test_init_vocab_grammar ( applicationData ); 34914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 34924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( run_status != 0 ) 34934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_run_test_shutdown_session ( applicationData ); 34954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 34974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 34984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 34994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_run_test_shutdown_session ( applicationData ); 35004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( run_status ); 35024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 35034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test_execute ( ApplicationData *applicationData ) 35074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int run_status; 35094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 35104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = 0; 35124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametag = NULL; 35134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L("Recognize:\n")); 35154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LPRINTF(L(" SR_NametagsCreate()\n")); 35164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = SR_NametagsCreate ( &applicationData->nametags ); 35174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 35194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = srec_test_process_commands ( applicationData ); 35214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_NametagsDestroy ( applicationData->nametags ); 35224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project applicationData->nametags = NULL; 35234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( run_status != 0 ) 35254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 35274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 35304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = -1; 35324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 35334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( run_status ); 35354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_run_test ( ApplicationData *applicationData ) 35404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int run_status; 35424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = srec_test_run_test_init ( applicationData ); 35444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( run_status == 0 ) 35464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project run_status = srec_test_run_test_execute ( applicationData ); 35484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_run_test_shutdown ( applicationData ); 35494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( run_status ); 35514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_memory_system ( void ) 35564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 35584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = 0; 35604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PMemShutdown ( ); 35614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 35634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_memory_system ( unsigned int srec_test_heap_size ) 35684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 35704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 35714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = 0; 35734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = PMemInit ( ); 35744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 35764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PSTACK_SIZE_INIT ( ); /* I don't know what this is, it should probably have a status */ 35784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 35804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = -1; 35824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 35834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 35854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_file_system ( void ) 35904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 35914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 35924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = 0; 35944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 35964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 35974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 35994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_file_system ( int arg_count, LCHAR *arg_vals [] ) 36014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 36034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = 0; 36054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 36064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_logging_system ( PLogger *logger ) 36114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 36134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = 0; 36154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLogShutdown ( ); 36164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 36184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_logging_system ( int arg_count, LCHAR *arg_vals [], PLogger *logger ) 36234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 36254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode esr_status; 36264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = 0; 36284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = PLogCreateFileLogger ( PSTDOUT, &logger ); 36294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status == ESR_SUCCESS ) 36314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project esr_status = PLogInit ( logger, 0 ); 36334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( esr_status != ESR_SUCCESS ) 36354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* pfclose ( (struct PFile_t *)logger ); I'm not sure this is correct, check with Gili */ 36374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = -1; 36384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 36394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 36424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = -1; 36444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* Log Here */ 36454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 36474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_shutdown_system ( PLogger *logger ) 36524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int shutdown_status; 36544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = srec_test_shutdown_logging_system ( logger ); 36564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( shutdown_status == 0 ) 36584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = srec_test_shutdown_file_system ( ); 36604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( shutdown_status == 0 ) 36624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project shutdown_status = srec_test_shutdown_memory_system ( ); 36634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( shutdown_status ); 36654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic int srec_test_init_system ( unsigned int srec_test_heap_size, PLogger* logger, int arg_count, LCHAR *arg_vals [] ) 36714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int init_status; 36734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* register signal handler so cleanup works on CTRL-C (Win32) */ 36754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 36764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project signal(SIGINT, signal_handler_SIGINT); 36774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 36784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = srec_test_init_memory_system ( srec_test_heap_size ); 36794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status == 0 ) 36814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = srec_test_init_file_system ( arg_count, arg_vals ); 36834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status == 0 ) 36854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project init_status = srec_test_init_logging_system ( arg_count, arg_vals, logger ); 36874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 36884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( init_status != 0 ) 36894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_shutdown_file_system ( ); 36914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_shutdown_memory_system ( ); 36924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project else 36954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 36964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_shutdown_memory_system ( ); 36974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 36994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( init_status ); 37004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 37014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 37054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project_CrtMemState s0,s1,s2; 37064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid OutputDivider( void ) 37104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _RPT1(_CRT_WARN, "%s", "********************************************************************\n"); 37134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 37144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid OutputNewline( void ) 37184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _RPT1(_CRT_WARN, "%s", "\n"); 37214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 37224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 37234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 37274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid initialize_heap_logging ( void ) 37284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); 37314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT); 37324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE); 37334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDOUT); 37344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE); 37354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT); 37364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtMemCheckpoint(&s0); 37374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 37384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 37394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 37434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectvoid execute_heap_logging ( void ) 37444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputNewline(); 37464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputDivider(); 37474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _RPT1(_CRT_WARN, "%s", "After cleanup, before exiting main()\n"); 37484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputDivider(); 37494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtMemCheckpoint(&s1); 37504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtMemDifference(&s2, &s0, &s1); 37514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtMemDumpStatistics(&s2); 37524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputNewline(); 37534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputDivider(); 37544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _RPT1(_CRT_WARN, "%s", "Checking for memory leaks...\n"); 37554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project OutputDivider(); 37564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project _CrtDumpMemoryLeaks(); 37574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 37584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 37594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectint main(int argc, LCHAR* argv [] ) 37634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int test_status; 37654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int num_shutdown_loops; 37664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int current_shutdown_loop; 37674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int num_continuous_run_loops; 37684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int current_continuous_run_loop; 37694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int srec_test_heap_size; 37704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef _WIN32 37724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project initStack(); 37734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 37744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /* This extra block is there to get a more precise estimate of the stack 37764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project depth. This way we also make sure that the local variables of main are 37774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project taken into acount when estimating the stack size. 37784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 37794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ApplicationData applicationData; 37804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project PLogger* logger; 37814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_heap_size = ( 4 * 1024 * 1024 ); 37834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project logger = NULL; 37844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project test_status = srec_test_get_run_params ( &num_shutdown_loops, &num_continuous_run_loops ); 37854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( test_status == 0 ) 37874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_shutdown_loop = 0; 37894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( current_shutdown_loop < num_shutdown_loops )/* && ( test_status == 0 )*/ ) 37914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 37934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project initialize_heap_logging ( ); 37944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 37954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project test_status = srec_test_init_system ( srec_test_heap_size, logger, argc, argv ); 37964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 37974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( test_status == 0 ) 37984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 37994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_continuous_run_loop = 0; 38004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 38014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project while ( ( current_continuous_run_loop < num_continuous_run_loops ) && ( test_status == 0 ) ) 38024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 38034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project test_status = srec_test_init_application_data ( &applicationData, argc, argv ); 38044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 38054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project if ( test_status == 0 ) 38064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project { 38074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project test_status = srec_test_run_test ( &applicationData ); 38084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project srec_test_shutdown_application_data ( &applicationData ); 38094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_continuous_run_loop++; 38114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project test_status = srec_test_shutdown_system ( logger ); 38134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project current_shutdown_loop++; 38154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined(_DEBUGHEAP) && defined(_DEBUG) && defined(WIN32) 38164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project execute_heap_logging ( ); 38174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 38184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 38224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project return ( test_status ); 38234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 38244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 38254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3826