1 /*---------------------------------------------------------------------------- 2 * 3 * File: 4 * eas_smfdata.h 5 * 6 * Contents and purpose: 7 * SMF File Parser 8 * 9 * This file contains data definitions for the SMF parser. 10 * 11 * Copyright Sonic Network Inc. 2005 12 13 * Licensed under the Apache License, Version 2.0 (the "License"); 14 * you may not use this file except in compliance with the License. 15 * You may obtain a copy of the License at 16 * 17 * http://www.apache.org/licenses/LICENSE-2.0 18 * 19 * Unless required by applicable law or agreed to in writing, software 20 * distributed under the License is distributed on an "AS IS" BASIS, 21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 * See the License for the specific language governing permissions and 23 * limitations under the License. 24 * 25 *---------------------------------------------------------------------------- 26 * Revision Control: 27 * $Revision: 686 $ 28 * $Date: 2007-05-03 14:10:54 -0700 (Thu, 03 May 2007) $ 29 *---------------------------------------------------------------------------- 30 */ 31 32 #ifndef _EAS_SMF_DATA_H 33 #define _EAS_SMF_DATA_H 34 35 #ifndef MAX_SMF_STREAMS 36 #define MAX_SMF_STREAMS 17 37 #endif 38 39 /* offsets in to the SMF file */ 40 #define SMF_OFS_HEADER_SIZE 4 41 #define SMF_OFS_FILE_TYPE 8 42 #define SMF_OFS_NUM_TRACKS 10 43 44 /* size of chunk info (chunk ID + chunk size) */ 45 #define SMF_CHUNK_INFO_SIZE 8 46 47 /* 'MTrk' track chunk ID */ 48 #define SMF_CHUNK_TYPE_TRACK 0x4d54726bL 49 50 /* some useful meta-events */ 51 #define SMF_META_TEXT 0x01 52 #define SMF_META_COPYRIGHT 0x02 53 #define SMF_META_SEQTRK_NAME 0x03 54 #define SMF_META_LYRIC 0x05 55 #define SMF_META_END_OF_TRACK 0x2f 56 #define SMF_META_TEMPO 0x51 57 #define SMF_META_TIME_SIGNATURE 0x58 58 59 /* default timebase (120BPM) */ 60 #define SMF_DEFAULT_TIMEBASE 500000L 61 62 /* value for pSMFStream->ticks to signify end of track */ 63 #define SMF_END_OF_TRACK 0xffffffff 64 65 #endif 66 67