Platform SDK: DirectX |
This tutorial pertains only to applications written in C++. See DirectMusic Visual Basic Tutorials.
The following defines and global variables are declared at the beginning of Donuts.cpp. They are given here for you to refer to as you work through the tutorial.
BOOL bMusicEnabled = TRUE; // Various constants const GUID guidZero = {0}; #define MOTIF_BOUNCE 0 #define MOTIF_DEATH 1 #define MOTIF_SHIELD 2 #define MOTIF_BLOWUP 4 #define MOTIF_BLOWUPLITE 3 #define NUM_MOTIFS 5 #define NUM_STYLES 2 #define SEGMENT_1 0 #define SEGMENT_2 1 #define SEGMENT_TRANS_1 2 #define SEGMENT_TRANS_2 3 #define NUM_SEGMENTS 4 #define NUM_CHORDMAP 4 #define BLOWUPS_PER_BEAT 2 #define MEASURE_LENGTH DMUS_PPQ * 4 // parts/quarter * quarters/measure (assumes 4/4) // Global interfaces IDirectMusicStyle* gapStyle[NUM_STYLES]; IDirectMusicChordMap* gapChordMap[NUM_STYLES] [NUM_CHORDMAP]; IDirectMusicSegment* gapMotif[NUM_STYLES] [NUM_MOTIFS]; IDirectMusicSegment* gapSegment[NUM_SEGMENTS] = {NULL, NULL, NULL, NULL}; IDirectMusicComposer * gpComposer = NULL; IDirectMusicPerformance* gpPerformance = NULL; IDirectMusic* gpDirectMusic = NULL; IDirectMusicLoader* gpLoader = NULL; IDirectMusicSegment* gpIntroTemplate = NULL; IDirectMusicSegment* gpGameTemplate = NULL; IDirectMusicSegment* gapShieldSegment[NUM_STYLES] = {NULL, NULL}; IDirectMusicSegment* gapDefaultSegment[NUM_STYLES] = {NULL, NULL}; IDirectMusicBand* gapShieldBand[NUM_STYLES] = {NULL, NULL}; IDirectMusicBand* gapDefaultBand[NUM_STYLES] = {NULL, NULL}; // Global variables BOOL bAnyHits = FALSE; int gnCurrentStyle = 0; int gnCurrentChordMap = 0; int gnLastStyle = 0; int gnLastChordMap = 0; BOOL gbShieldsOn = FALSE; static int snLastTempo; static int snSubLevel; static int snMaxBlowUps = BLOWUPS_PER_BEAT;