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