libcm/app/cmScoreMatchGraphic.h

43 regels
1.3 KiB
C

#ifndef cmScoreMatchGraphic_h
#define cmScoreMatchGraphic_h
#ifdef __cplusplus
extern "C" {
#endif
enum
{
kOkSmgRC = cmOkRC,
kFileSmgRC,
kScoreFailSmgRC,
kMidiFileFailSmgRC,
kOpFailSmgRC,
kMatchFailSmgRC
};
typedef cmRC_t cmSmgRC_t;
typedef cmHandle_t cmSmgH_t;
extern cmSmgH_t cmSmgNullHandle;
cmSmgRC_t cmScoreMatchGraphicAlloc( cmCtx_t* ctx, cmSmgH_t* hp, const cmChar_t* scoreFn, const cmChar_t* midiFn );
cmSmgRC_t cmScoreMatchGraphicFree( cmSmgH_t* hp );
bool cmScoreMatchGraphicIsValid( cmSmgH_t h );
cmSmgRC_t cmScoreMatchGraphicInsertMidi( cmSmgH_t h, unsigned midiUid, unsigned midiPitch, unsigned midiVel, unsigned csvScoreEventId );
cmSmgRC_t cmScoreMatchGraphicWrite( cmSmgH_t h, const cmChar_t* fn );
// Generate a set of markers for use in a cmTimeLine file which forms a marked area
// beginning at each bar line and ends at the end of the file.
cmSmgRC_t cmScoreMatchGraphicGenTimeLineBars( cmSmgH_t h, const cmChar_t* fn, unsigned srate );
// Update the MIDI file velocity values and insert pedal events
// from from score into MIDI file and then write the updated MIDI
// file to 'newMidiFn'.
cmSmgRC_t cmScoreMatchGraphicUpdateMidiFromScore( cmCtx_t* ctx, cmSmgH_t h, const cmChar_t* newMidiFn );
#ifdef __cplusplus
}
#endif
#endif