Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) 1998-1998 Microsoft Corporation
//
// File: sjpers.h
//
//--------------------------------------------------------------------------
// SJPers.h #defines and structs from SuperJam! Used for loading personalities.
#define CM_DEFAULT 2 // Prsonality.dwflags & CM_DEFAULT
#define SP_A 1 // Use SP flags for templates
#define SP_B 2
#define SP_C 4
#define SP_D 8
#define SP_E 0x10
#define SP_F 0x20
#define SP_LETTER (SP_A | SP_B | SP_C | SP_D | SP_E | SP_F)
#define SP_1 0x100
#define SP_2 0x200
#define SP_3 0x400
#define SP_4 0x800
#define SP_5 0x1000
#define SP_6 0x2000
#define SP_7 0x4000
#define SP_ROOT (SP_1 | SP_2 | SP_3 | SP_4 | SP_5 | SP_6 | SP_7)
#define SP_CADENCE 0x8000
#define SPOST_CADENCE1 2 // Use the first cadence chord.
#define SPOST_CADENCE2 4 // Use the second cadence chord.
#define PF_FILL 0x0001 // Fill pattern
#define PF_START 0x0002 // May be starting pattern
#define PF_INTRO 0x0002
#define PF_WHOLE 0x0004 // Handles chords on measures
#define PF_HALF 0x0008 // Chords every two beats
#define PF_QUARTER 0x0010 // Chords on beats
#define PF_BREAK 0x0020
#define PF_END 0x0040
#define PF_A 0x0080
#define PF_B 0x0100
#define PF_C 0x0200
#define PF_D 0x0400
#define PF_E 0x0800
#define PF_F 0x1000
#define PF_G 0x2000
#define PF_H 0x10000
#define PF_STOPNOW 0x4000
#define PF_INRIFF 0x8000
#define PF_MOTIF 0x20000 // this pattern is a motif, not a regular pattern
#define PF_BEATS ( PF_WHOLE | PF_HALF | PF_QUARTER )
#define PF_RIFF ( PF_INTRO | PF_BREAK | PF_FILL | PF_END )
#define PF_GROOVE ( PF_A | PF_B | PF_C | PF_D | PF_E | PF_F | PF_G | PF_H )
/* SCTchord bBits flags ===============================================*/
#define CHORD_INVERT 0x10 /* This chord may be inverted */
#define CHORD_FOUR 0x20 /* This should be a 4 note chord */
#define CHORD_UPPER 0x40 /* Shift upper octave down */
#define CHORD_SIMPLE 0x80 /* This is a simple chord */
#define CHORD_COUNT 0x0F /* Number of notes in chord (up to 15) */
#pragma pack(1)
typedef struct ChordExt FAR *LPCHORDEXT; struct ChordExt // Based on ChordSelection
{ LPCHORDEXT pNext; long time; long pattern; // Pattern that defines chord
char name[12]; // Text for display
char keydown; // Currently held down
char root; // Root note of chord
char inscale; // Member of scale
char flat; // Display with flat
short varflags; // Used to select appropriate variation
short measure; // What measure
char beat; // What beat this falls on
unsigned char bits; // Invert and item count
long scalepattern; // Scale Pattern for the chord
long melodypattern;// Melody Pattern for the chord
};
typedef struct SinePost FAR *LPSINEPOST ; struct SinePost { LPSINEPOST pNext ; // The next personality in the list.
ChordExt chord; // Chord for sign post.
ChordExt cadence[2]; // Chords for cadence.
DWORD chords; // Which kinds of signpost supported.
DWORD flags; DWORD tempflags; };
typedef struct ChrdEntry FAR *LPCHRDENTRY ;
typedef struct NextChrd FAR *LPNEXTCHRD ; struct NextChrd { LPNEXTCHRD pNext; // List of chords to go to next.
LPCHRDENTRY nextchord; unsigned long dwflags; short nweight; // Importance of destination chord.
short nminbeats; // Min beats to wait till chord.
short nmaxbeats; // Max beats to wait till chord.
short nid; // ID of destination chord.
};
#define NEXTCHORD_SIZE (sizeof(NextChrd)-sizeof(LPNEXTCHRD)-sizeof(LPCHRDENTRY))
#define CHORDENTRY_SIZE (sizeof(ChordExt)-sizeof(LPCHORDEXT)+sizeof(unsigned long)+sizeof(short))
#define CE_SELECTED 1 // This is the active chord.
#define CE_START 2
#define CE_END 4
#define CE_MEASURE 8
#define CE_PATH 16
#define CE_TREE 32
struct ChrdEntry { LPCHRDENTRY pNext ; // The next personality in the list.
LPNEXTCHRD nextchordlist; // List of chords to go to next.
ChordExt chord; // Chord definition.
unsigned long dwflags; // Various flags.
short nid; // ID for pointer maintenance.
};
typedef struct SCTchord FAR *LPSCTCHORD ; struct SCTchord { LPSCTCHORD pNext; /* The next chord in the list. */ long lDLL1; /* Reserved for use by score.dll */ long lPattern; /* Pattern that defines chord. */ char achName[12]; /* Chord name. */ char chDLL2; /* Reserved for use by score.dll */ char chRoot; /* Root note of chord. */ char chDLL3; /* Reserved for use by score.dll */ char chFlat; /* Indicates root is flat. */ short nDLL4; /* Reserved for use by score.dll */ short nMeasure; /* Measure this chord occurs. */ char chBeat; /* Beat this chord falls on. */ BYTE bBits; /* Flags used when playing chord */ long lScalePattern; /* Scale Pattern for the chord. */ long lMelodyPattern; /* Melody Pattern for the chord. */ };
typedef struct SCTpersonality FAR *LPSCTPERSONALITY ; struct SCTpersonality { LPSCTPERSONALITY pNext ; /* Next SCTpersonality in the list. */ char achName[20] ; /* Name of composition personality. */ char achDescription[80];/* Description of personality. */ char achUserName[20];/* Description of personality. */ LPVOID lpDLL1 ; /* Reserved for use by score.dll */ long lScalePattern ; /* Scale pattern used by personality*/ SCTchord chord[24] ; /* 24 note chord palette. */ char chDefault ; /* 0=Not default. 1=Default. */ char chDLL1 ; /* Reserved for use by score.dll */ };
typedef struct Prsonality FAR *LPPERSONALITY ; struct Prsonality { LPPERSONALITY pNext ; // The next personality in the list.
LPCHRDENTRY chordlist; // All chords in the map.
LPSINEPOST signpostlist; // All available sign posts.
DWORD dwAA; // only valid for separately loaded personalities
long scalepattern; // Scale for map.
char name[20]; char description[80]; char username[20]; SCTchord chord[24]; unsigned long dwflags; long playlist; // Collection of NextChords for playback.
LPCHRDENTRY firstchord; struct SCTpersonality* lpSCTpersonality; };
typedef struct CommandExt FAR *LPCOMMAND; typedef struct CommandExt { LPCOMMAND pNext; long time; // Time, in clocks
short measure; // Which measure
DWORD command; // Command type
DWORD chord; // Used by composition engine
} CommandExt;
typedef struct SCTcommand FAR *LPSCTCOMMAND ; typedef struct SCTcommand { LPSCTCOMMAND pNext ; // The next command in the list.
long lDLL1 ; // Reserved for use by score.dll.
short nMeasure ; // Measure this command occurs.
DWORD dwCommand ; // Command type.
DWORD dwChord ; // Signpost chord.
} SCTcommand ;
typedef struct SCTtemplate FAR *LPSCTTEMPLATE ; typedef struct SCTtemplate { LPSCTTEMPLATE pNext ; // The next template in the list.
char achName[20] ; // Template name.
char achType[20] ; // Template type.
short nMeasures ; LPSCTCOMMAND lpSCTcommandList ; // Template commands.
} SCTtemplate ;
#pragma pack()
|