You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
7.8 KiB
200 lines
7.8 KiB
/*----------------------------------------------------------------------------
|
|
*
|
|
* 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
|
|
|