Add a tool to test-load SMF
This commit is contained in:
parent
398101ad92
commit
4b1a41ff53
|
@ -0,0 +1,21 @@
|
|||
AD = ../..
|
||||
CXXFLAGS = -Wall
|
||||
CPPFLAGS = -I $(AD)/libs/evoral -I $(AD)/libs/pbd -I $(AD)/build/libs/pbd
|
||||
CPPFLAGS += `pkg-config --cflags libxml-2.0 glibmm-2.4`
|
||||
|
||||
LDFLAGS = -L $(AD)/build/libs/pbd -lpbd -Xlinker -rpath=$(AD)/build/libs/pbd
|
||||
LDFLAGS += -L $(AD)/build/libs/temporal -ltemporal -Xlinker -rpath=$(AD)/build/libs/temporal
|
||||
LDFLAGS += -L $(AD)/build/libs/evoral -levoral -Xlinker -rpath=$(AD)/build/libs/evoral
|
||||
|
||||
LDLIBS = `pkg-config --libs libxml-2.0 glibmm-2.4`
|
||||
|
||||
smfload: smfload.cc libevoral
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ smfload.cc $(LDLIBS)
|
||||
|
||||
libevoral:
|
||||
cd $(AD); ./waf build --targets=libevoral
|
||||
|
||||
clean:
|
||||
rm -f smfload
|
||||
|
||||
.PHONY: libevoral clean
|
|
@ -0,0 +1,46 @@
|
|||
#include <cstdio>
|
||||
#include <iostream>
|
||||
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
#include "evoral/SMF.h"
|
||||
#include "libsmf/smf.h"
|
||||
|
||||
int
|
||||
main (int argc, char** argv)
|
||||
{
|
||||
const char* fn = "";
|
||||
|
||||
if (argc > 1) {
|
||||
fn = argv[1];
|
||||
} else {
|
||||
std::cerr << "Usage: " << argv[0] << " <midi file>.\n";
|
||||
::exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
#if 0
|
||||
Evoral::SMF smf;
|
||||
smf.open (fn);
|
||||
printf ("SMF '%s' tracks=%d, ppqn=%d\n", fn, smf.num_tracks (), smf.ppqn());
|
||||
#else
|
||||
FILE* f = g_fopen(fn, "r");
|
||||
if (!f) {
|
||||
printf ("SMF failed to open file '%s'\n", fn);
|
||||
::exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
printf ("SMF loading file '%s'\n", fn);
|
||||
smf_t* smf = smf_load (f);
|
||||
fclose(f);
|
||||
|
||||
if (!smf) {
|
||||
printf ("SMF failed to load '%s'\n", fn);
|
||||
::exit (EXIT_FAILURE);
|
||||
}
|
||||
printf ("SMF '%s' tracks=%d, ppqn=%d\n", fn, smf->number_of_tracks, smf->ppqn);
|
||||
|
||||
smf_delete (smf);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue