| /*---------------------------------------------------------------------------- |
| * |
| * File: |
| * jet.h |
| * |
| * Contents and purpose: |
| * Public interface for JET sound engine |
| * |
| * Copyright (c) 2006 Sonic Network Inc. |
| |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| *---------------------------------------------------------------------------- |
| * Revision Control: |
| * $Revision: 554 $ |
| * $Date: 2007-02-02 11:06:10 -0800 (Fri, 02 Feb 2007) $ |
| *---------------------------------------------------------------------------- |
| */ |
| |
| #ifndef _JET_H |
| #define _JET_H |
| |
| #include "eas_types.h" |
| #include "eas.h" |
| |
| /* for C++ linkage */ |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* opaque handle types for JET interface */ |
| typedef struct s_jet_data_tag *JET_DATA_HANDLE; |
| |
| typedef struct s_jet_config_tag |
| { |
| EAS_U8 appEventRangeLow; |
| EAS_U8 appEventRangeHigh; |
| } S_JET_CONFIG; |
| |
| typedef struct s_jet_status_tag |
| { |
| EAS_INT currentUserID; |
| EAS_INT segmentRepeatCount; |
| EAS_INT numQueuedSegments; |
| EAS_BOOL paused; |
| EAS_I32 location; |
| EAS_U8 currentPlayingSegment; |
| EAS_U8 currentQueuedSegment; |
| } S_JET_STATUS; |
| |
| typedef struct s_jet_event_tag |
| { |
| EAS_U8 segment; |
| EAS_U8 channel; |
| EAS_U8 track; |
| EAS_U8 controller; |
| EAS_U8 value; |
| } S_JET_EVENT; |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Init() |
| *---------------------------------------------------------------------------- |
| * Initializes the JET library, allocates memory, etc. Call |
| * JET_Shutdown to de-allocate memory. Pass NULL for pConfig |
| * to use defaults. If passing config data, configSize should be |
| * sizeof(S_JET_CONFIG). This allows for future expansion of the |
| * config structure while maintaining compatibility. |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Init (EAS_DATA_HANDLE easHandle, const S_JET_CONFIG *pConfig, EAS_INT configSize); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Shutdown() |
| *---------------------------------------------------------------------------- |
| * Frees any memory used by the JET library |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Shutdown (EAS_DATA_HANDLE easHandle); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_OpenFile() |
| *---------------------------------------------------------------------------- |
| * Opens a JET content file for playback |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_OpenFile (EAS_DATA_HANDLE easHandle, EAS_FILE_LOCATOR locator); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_GetAppData() |
| *---------------------------------------------------------------------------- |
| * Returns location and size of application data in the JET file |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_RESULT JET_GetAppData (EAS_DATA_HANDLE easHandle, EAS_I32 *pAppDataOffset, EAS_I32 *pAppDataSize); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_CloseFile() |
| *---------------------------------------------------------------------------- |
| * Closes a JET content file and releases associated resources |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_CloseFile (EAS_DATA_HANDLE easHandle); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Status() |
| *---------------------------------------------------------------------------- |
| * Returns current status |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Status (EAS_DATA_HANDLE easHandle, S_JET_STATUS *pStatus); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_GetEvent() |
| *---------------------------------------------------------------------------- |
| * Checks for application events |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_BOOL JET_GetEvent (EAS_DATA_HANDLE easHandle, EAS_U32 *pEventRaw, S_JET_EVENT *pEvent); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_ParseEvent() |
| *---------------------------------------------------------------------------- |
| * Returns current status |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC void JET_ParseEvent (EAS_U32 event, S_JET_EVENT *pEvent); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_QueueSegment() |
| *---------------------------------------------------------------------------- |
| * Queue a segment for playback |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_QueueSegment (EAS_DATA_HANDLE easHandle, EAS_INT segmentNum, EAS_INT libNum, EAS_INT repeatCount, EAS_INT transpose, EAS_U32 muteFlags, EAS_U8 userID); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Play() |
| *---------------------------------------------------------------------------- |
| * Starts playback of the file |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Play (EAS_DATA_HANDLE easHandle); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Pause() |
| *---------------------------------------------------------------------------- |
| * Pauses playback of the file |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Pause (EAS_DATA_HANDLE easHandle); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_SetMuteFlags() |
| *---------------------------------------------------------------------------- |
| * Change the state of the mute flags |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_SetMuteFlags (EAS_DATA_HANDLE easHandle, EAS_U32 muteFlags, EAS_BOOL sync); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_SetMuteFlag() |
| *---------------------------------------------------------------------------- |
| * Change the state of a single mute flag |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_SetMuteFlag (EAS_DATA_HANDLE easHandle, EAS_INT trackNum, EAS_BOOL muteFlag, EAS_BOOL sync); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_TriggerClip() |
| *---------------------------------------------------------------------------- |
| * Unmute a track and then mute it when it is complete |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_TriggerClip (EAS_DATA_HANDLE easHandle, EAS_INT clipID); |
| |
| /*---------------------------------------------------------------------------- |
| * JET_Clear_Queue() |
| *---------------------------------------------------------------------------- |
| * Clears all segments in the queue |
| *---------------------------------------------------------------------------- |
| */ |
| EAS_PUBLIC EAS_RESULT JET_Clear_Queue (EAS_DATA_HANDLE easHandle); |
| |
| #ifdef __cplusplus |
| } /* end extern "C" */ |
| #endif |
| |
| |
| #endif |
| |