mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-05 05:05:43 +01:00
Fixed problem where importing invalid midi files caused crash.
This commit is contained in:
parent
6b750f5e46
commit
f77d76ba9d
5 changed files with 39 additions and 4 deletions
|
|
@ -71,6 +71,28 @@ SMF::seek_to_track(int track)
|
|||
}
|
||||
}
|
||||
|
||||
/** Attempt to open the SMF file just to see if it is valid.
|
||||
*
|
||||
* \return true on success
|
||||
* false on failure
|
||||
*/
|
||||
bool
|
||||
SMF::test(const std::string& path)
|
||||
{
|
||||
PBD::StdioFileDescriptor d (path, "r");
|
||||
FILE* f = d.allocate ();
|
||||
if (f == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
smf_t* test_smf;
|
||||
if ((test_smf = smf_load (f)) == NULL) {
|
||||
return false;
|
||||
}
|
||||
smf_delete (test_smf);
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Attempt to open the SMF file for reading and/or writing.
|
||||
*
|
||||
* \return 0 on success
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue