javacall_native_ams.c
来自「This is a resource based on j2me embedde」· C语言 代码 · 共 666 行 · 第 1/2 页
C
666 行
javacall_resultjavanotify_ams_midlet_get_app_suite_id(javacall_app_id appId, javacall_suite_id* pSuiteId) { MIDPError status; SuiteIdType midpSuiteId; if (pSuiteId == NULL) { return JAVACALL_FAIL; } status = midp_midlet_get_suite_id((jint)appId, &midpSuiteId); if (status != ALL_OK) { return JAVACALL_FAIL; } *pSuiteId = (javacall_suite_id)midpSuiteId; return JAVACALL_OK;}/** * Platform invokes this function to get runtime information * about the specified MIDlet. * * This call is asynchronous, the result will be reported later through * passing a MIDLET_INFO_READY_EVENT event to SYSTEM_EVENT_LISTENER. * * @param appId The ID used to identify the application * * @return error code: <tt>JAVACALL_OK<tt> if successful (operation started), * <tt>JAVACALL_FAIL</tt> otherwise */javacall_resultjavanotify_ams_midlet_request_runtime_info(javacall_app_id appId) { MIDPError res = midp_midlet_request_runtime_info((jint)appId); return (res == ALL_OK) ? JAVACALL_OK : JAVACALL_FAIL;}/** * Platform inform the VM to create the images cache. * @param suiteId unique ID of the MIDlet suite * * @return <tt>JAVACALL_OK</tt> on success, * <tt>JAVACALL_FAIL</tt> */javacall_resultjavanotify_ams_create_resource_cache(javacall_suite_id suiteId) { (void) suiteId; return JAVACALL_FAIL;}/** * MIDP proxy for the javacall_ams_system_state_changed() listener. * * @param pEventData full data about the event and about the application * caused this event */void midp_listener_ams_system_status(const NamsEventData* pEventData) { void* pResult = NULL; if (pEventData == NULL) { return; } if (pEventData->event == MIDP_NAMS_EVENT_STATE_CHANGED) { javacall_system_state state; switch (pEventData->state) { case MIDP_SYSTEM_STATE_ACTIVE: state = JAVACALL_SYSTEM_STATE_ACTIVE; break; case MIDP_SYSTEM_STATE_SUSPENDED: state = JAVACALL_SYSTEM_STATE_SUSPENDED; break; case MIDP_SYSTEM_STATE_STOPPED: state = JAVACALL_SYSTEM_STATE_STOPPED; break; default: state = JAVACALL_SYSTEM_STATE_ERROR; break; } javacall_ams_system_state_changed(state); }}/** * MIDP proxy for the javacall_ams_operation_completed() listener. * * @param pEventData full data about the event and about the application * caused this event */void midp_listener_ams_operation_completed(const NamsEventData* pEventData) { void* pResult = NULL; if (pEventData == NULL) { return; } if (pEventData->event == MIDP_NAMS_EVENT_OPERATION_COMPLETED) { if (pEventData->state == ALL_OK) { if (pEventData->reason == NATIVE_MIDLET_GETINFO_REQUEST) { pResult = pEventData->pRuntimeInfo; } } javacall_ams_operation_completed( midp_operation2javacall(pEventData->reason), (javacall_app_id)pEventData->appId, pResult); }}/** * MIDP proxy for the javacall_ams_midlet_state_changed() listener. * * @param pEventData full data about the event and about the application * caused this event */void midp_listener_ams_midlet_state_changed(const NamsEventData* pEventData) { if (pEventData == NULL) { return; } javacall_ams_midlet_state_changed( midp_midlet_state2javacall(pEventData->state), (javacall_app_id)pEventData->appId, midp_midlet_event_reason2javacall(pEventData->reason));}/** * MIDP proxy for the javacall_ams_midlet_ui_state_changed() listener. * * @param pEventData full data about the event and about the application * caused this event */void midp_listener_ams_midlet_ui_state_changed( const NamsEventData* pEventData) { if (pEventData == NULL) { return; } javacall_ams_midlet_ui_state_changed( midp_midlet_ui_state2javacall(pEventData->state), (javacall_app_id)pEventData->appId, midp_midlet_event_reason2javacall(pEventData->reason));}/* * File-private utility functions. *//** * Converts the given MIDP event reason constant to the Javacall * event reason constant. * * @param midpMidletState MIDP event reason constant * * @return Javacall event reason constant corresponding to the given MIDP one */static javacall_change_reasonmidp_midlet_event_reason2javacall(jint midpEventReason) { javacall_change_reason jcEventReason; /* * IMPL_NOTE: handle reason depending on the event. * MIDP_REASON_TERMINATED * MIDP_REASON_EXIT * MIDP_REASON_OTHER * * JAVACALL_MIDP_REASON_TERMINATED * JAVACALL_MIDP_REASON_EXIT */ /* * We can't assume that the MIDP and Javacall constants are identical, * so this switch is used. */ switch (midpEventReason) { case MIDLET_CONSTRUCTOR_FAILED: { jcEventReason = JAVACALL_MIDLET_CONSTRUCTOR_FAILED; break; } case MIDLET_SUITE_NOT_FOUND: { jcEventReason = JAVACALL_MIDLET_SUITE_NOT_FOUND; break; } case MIDLET_CLASS_NOT_FOUND: { jcEventReason = JAVACALL_MIDLET_CLASS_NOT_FOUND; break; } case MIDLET_INSTANTIATION_EXCEPTION: { jcEventReason = JAVACALL_MIDLET_INSTANTIATION_EXCEPTION; break; } case MIDLET_ILLEGAL_ACCESS_EXCEPTION: { jcEventReason = JAVACALL_MIDLET_ILLEGAL_ACCESS_EXCEPTION; break; } case MIDLET_OUT_OF_MEM_ERROR: { jcEventReason = JAVACALL_MIDLET_OUT_OF_MEM_ERROR; break; } case MIDLET_RESOURCE_LIMIT: { jcEventReason = JAVACALL_MIDLET_RESOURCE_LIMIT; break; } case MIDLET_ISOLATE_RESOURCE_LIMIT: { jcEventReason = JAVACALL_MIDLET_ISOLATE_RESOURCE_LIMIT; break; } case MIDLET_ISOLATE_CONSTRUCTOR_FAILED: { jcEventReason = JAVACALL_MIDLET_ISOLATE_CONSTRUCTOR_FAILED; break; } default: { jcEventReason = JAVACALL_MIDP_REASON_OTHER; } } return jcEventReason;}/** * Converts the given MIDP operation code to the Javacall operation code. * * @param midpOpcode MIDP code of the operation * * @return Javacall opeartion corresponding to the given MIDP one */static javacall_opcode midp_operation2javacall(jint midpOpcode) { javacall_opcode jcOperation; /* * We can't assume that the MIDP and Javacall constants are identical, * so this switch is used. */ switch (midpOpcode) { case NATIVE_MIDLET_GETINFO_REQUEST: { jcOperation = JAVACALL_OPCODE_REQUEST_RUNTIME_INFO; break; } default: { jcOperation = JAVACALL_OPCODE_INVALID; } } return jcOperation;}/** * Converts the given MIDP midlet state constant * to the Javacall midlet state constant. * * @param midpMidletState MIDP midlet state constant * * @return Javacall midlet state constant corresponding to the given MIDP one */static javacall_lifecycle_statemidp_midlet_state2javacall(jint midpMidletState) { javacall_lifecycle_state jcMidletState; /* * We can't assume that the MIDP and Javacall constants are identical, * so this switch is used. */ switch (midpMidletState) { case MIDP_MIDLET_STATE_ACTIVE: { jcMidletState = JAVACALL_LIFECYCLE_MIDLET_STARTED; break; } case MIDP_MIDLET_STATE_PAUSED: { jcMidletState = JAVACALL_LIFECYCLE_MIDLET_PAUSED; break; } case MIDP_MIDLET_STATE_DESTROYED: { jcMidletState = JAVACALL_LIFECYCLE_MIDLET_SHUTDOWN; break; } case MIDP_MIDLET_STATE_ERROR: { jcMidletState = JAVACALL_LIFECYCLE_MIDLET_ERROR; break; } default: { jcMidletState = JAVACALL_LIFECYCLE_MIDLET_ERROR; } } return jcMidletState;}/** * Converts the given MIDP midlet state constant * to the Javacall midlet state constant. * * @param midpMidletState MIDP midlet state constant * * @return Javacall midlet state constant corresponding to the given MIDP one */static javacall_midlet_ui_statemidp_midlet_ui_state2javacall(jint midpMidletUiState) { javacall_midlet_ui_state jcMidletUiState; /* * We can't assume that the MIDP and Javacall constants are identical, * so this switch is used. */ switch (midpMidletUiState) { case MIDP_DISPLAY_STATE_FOREGROUND: { jcMidletUiState = JAVACALL_MIDLET_UI_STATE_FOREGROUND; break; } case MIDP_DISPLAY_STATE_BACKGROUND: { jcMidletUiState = JAVACALL_MIDLET_UI_STATE_BACKGROUND; break; } case MIDP_DISPLAY_STATE_FOREGROUND_REQUEST: { jcMidletUiState = JAVACALL_MIDLET_UI_STATE_FOREGROUND_REQUEST; break; } case MIDP_DISPLAY_STATE_BACKGROUND_REQUEST: { jcMidletUiState = JAVACALL_MIDLET_UI_STATE_BACKGROUND_REQUEST; break; } default: { /** Invalid state! Add to log? */ jcMidletUiState = (javacall_midlet_ui_state) midpMidletUiState; } } return jcMidletUiState;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?