cmMidiFile.h/c _cmMidiFileClose() is now called by cmMidiFileOpen() on the incoming handle.
This commit is contained in:
parent
fdf1a7c15a
commit
d32c47be4c
27
cmMidiFile.c
27
cmMidiFile.c
@ -365,8 +365,8 @@ cmMfRC_t _cmMidiFileReadTrack( _cmMidiFile_t* mfp, unsigned short trkIdx )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// handle channel msg
|
// handle channel msg
|
||||||
rc = _cmMidiFileReadChannelMsg(mfp,&runstatus,status,tmp);
|
rc = _cmMidiFileReadChannelMsg(mfp,&runstatus,status,tmp);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,11 +454,15 @@ cmMfRC_t _cmMidiFileClose( _cmMidiFile_t* mfp )
|
|||||||
|
|
||||||
cmMfRC_t cmMidiFileOpen( const char* fn, cmMidiFileH_t* hPtr, cmCtx_t* ctx )
|
cmMfRC_t cmMidiFileOpen( const char* fn, cmMidiFileH_t* hPtr, cmCtx_t* ctx )
|
||||||
{
|
{
|
||||||
cmMfRC_t rc = kOkMfRC;
|
cmMfRC_t rc = kOkMfRC;
|
||||||
_cmMidiFile_t* mfp = NULL;
|
_cmMidiFile_t* mfp = NULL;
|
||||||
unsigned short trkIdx = 0;
|
unsigned short trkIdx = 0;
|
||||||
cmErr_t err;
|
cmErr_t err;
|
||||||
|
|
||||||
|
if( cmMidiFileIsValid(*hPtr) )
|
||||||
|
if((rc = _cmMidiFileClose(_cmMidiFileHandleToPtr(*hPtr))) != kOkMfRC )
|
||||||
|
return rc;
|
||||||
|
|
||||||
cmErrSetup(&err,&ctx->rpt,"MIDI File");
|
cmErrSetup(&err,&ctx->rpt,"MIDI File");
|
||||||
|
|
||||||
// allocate the midi file object
|
// allocate the midi file object
|
||||||
@ -575,13 +579,13 @@ cmMfRC_t cmMidiFileOpen( const char* fn, cmMidiFileH_t* hPtr, cmCtx_t* ctx )
|
|||||||
|
|
||||||
errLabel:
|
errLabel:
|
||||||
|
|
||||||
if( cmFileClose(&mfp->fh) != kOkFileRC )
|
if( cmFileClose(&mfp->fh) != kOkFileRC )
|
||||||
rc = _cmMidiFileError(&mfp->err,kCloseFailFileRC);
|
rc = _cmMidiFileError(&mfp->err,kCloseFailFileRC);
|
||||||
|
|
||||||
if( rc != kOkMfRC )
|
if( rc != kOkMfRC )
|
||||||
_cmMidiFileClose(mfp);
|
_cmMidiFileClose(mfp);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -600,6 +604,9 @@ cmMfRC_t cmMidiFileClose( cmMidiFileH_t* h )
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cmMidiFileIsValid( cmMidiFileH_t h )
|
||||||
|
{ return !cmMidiFileIsNull(h); }
|
||||||
|
|
||||||
unsigned cmMidiFileTrackCount( cmMidiFileH_t h )
|
unsigned cmMidiFileTrackCount( cmMidiFileH_t h )
|
||||||
{
|
{
|
||||||
_cmMidiFile_t* mfp;
|
_cmMidiFile_t* mfp;
|
||||||
@ -648,7 +655,7 @@ cmMidiByte_t cmMidiFileTicksPerSmpteFrame( cmMidiFileH_t h )
|
|||||||
if( mfp->ticksPerQN != 0 )
|
if( mfp->ticksPerQN != 0 )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return mfp->smpteTicksPerFrame;
|
return mfp->smpteTicksPerFrame;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmMidiByte_t cmMidiFileSmpteFormatId( cmMidiFileH_t h )
|
cmMidiByte_t cmMidiFileSmpteFormatId( cmMidiFileH_t h )
|
||||||
@ -661,7 +668,7 @@ cmMidiByte_t cmMidiFileSmpteFormatId( cmMidiFileH_t h )
|
|||||||
if( mfp->ticksPerQN != 0 )
|
if( mfp->ticksPerQN != 0 )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return mfp->smpteFmtId;
|
return mfp->smpteFmtId;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned cmMidiFileTrackMsgCount( cmMidiFileH_t h, unsigned trackIdx )
|
unsigned cmMidiFileTrackMsgCount( cmMidiFileH_t h, unsigned trackIdx )
|
||||||
|
@ -107,6 +107,8 @@ extern "C" {
|
|||||||
cmMfRC_t cmMidiFileOpen( const char* fn, cmMidiFileH_t* hPtr, cmCtx_t* ctx );
|
cmMfRC_t cmMidiFileOpen( const char* fn, cmMidiFileH_t* hPtr, cmCtx_t* ctx );
|
||||||
cmMfRC_t cmMidiFileClose( cmMidiFileH_t* hp );
|
cmMfRC_t cmMidiFileClose( cmMidiFileH_t* hp );
|
||||||
|
|
||||||
|
bool cmMidiFileIsValid( cmMidiFileH_t h );
|
||||||
|
|
||||||
// Returns track count or kInvalidCnt if 'h' is invalid.
|
// Returns track count or kInvalidCnt if 'h' is invalid.
|
||||||
unsigned cmMidiFileTrackCount( cmMidiFileH_t h );
|
unsigned cmMidiFileTrackCount( cmMidiFileH_t h );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user