projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1fd56c5
)
force creation of MIDI (SMF) files on disk whenever an SMF object is created, to...
author
Paul Davis
<paul@linuxaudiosystems.com>
Wed, 21 Jul 2010 13:02:58 +0000
(13:02 +0000)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Wed, 21 Jul 2010 13:02:58 +0000
(13:02 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@7459
d708f5d6
-7413-0410-9779-
e7cbd77b26cf
libs/evoral/src/SMF.cpp
patch
|
blob
|
history
diff --git
a/libs/evoral/src/SMF.cpp
b/libs/evoral/src/SMF.cpp
index ae3c8781a53976c49173f463e4806fb406c57d43..210692f114ff9abca249764a15316fca5a0273d1 100644
(file)
--- a/
libs/evoral/src/SMF.cpp
+++ b/
libs/evoral/src/SMF.cpp
@@
-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;