force creation of MIDI (SMF) files on disk whenever an SMF object is created, to avoid "source exists but no file don disk exists" issue
git-svn-id: svn://localhost/ardour2/branches/3.0@7459 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
1fd56c5476
commit
6ef49a0b86
|
@ -128,11 +128,12 @@ SMF::create(const std::string& path, int track, uint16_t ppqn) THROW_FILE_ERROR
|
|||
_file_path = path;
|
||||
|
||||
_smf = smf_new();
|
||||
if (smf_set_ppqn(_smf, ppqn) != 0) {
|
||||
throw FileError();
|
||||
}
|
||||
|
||||
if (_smf == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (smf_set_ppqn(_smf, ppqn) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -147,6 +148,21 @@ SMF::create(const std::string& path, int track, uint16_t ppqn) THROW_FILE_ERROR
|
|||
return -2;
|
||||
|
||||
_smf_track->next_event_number = 0;
|
||||
|
||||
{
|
||||
/* put a stub file on disk */
|
||||
|
||||
PBD::StdioFileDescriptor d (_file_path, "w+");
|
||||
FILE* f = d.allocate ();
|
||||
if (f == 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (smf_save (_smf, f)) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
_empty = true;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user