djm-fix.cpp
branchv_0
changeset 2 f34476ab597f
parent 1 98274757fcf6
child 5 ef8f4023e32e
equal deleted inserted replaced
1:98274757fcf6 2:f34476ab597f
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    16  */
    16  */
    17 
    17 
    18 #include <memory>
    18 #include <memory>
    19 #include <iostream>
    19 #include <iostream>
       
    20 #include <chrono>
       
    21 #include <thread>
       
    22 #include <csignal>
    20 
    23 
    21 #include "DJMFix.h"
    24 #include "DJMFix.h"
       
    25 #include "AlsaBridge.h"
       
    26 
       
    27 volatile static bool run = true;
       
    28 
       
    29 void interrupt(int signal) {
       
    30 	run = false;
       
    31 	std::cerr << "interrupt()" << std::endl; // TODO: do not mess STDIO
       
    32 }
    22 
    33 
    23 int main(int argc, char**argv) {
    34 int main(int argc, char**argv) {
       
    35 	signal(SIGINT, interrupt);
       
    36 	std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create());
       
    37 	std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get()));
    24 
    38 
    25 	std::shared_ptr<djmfix::DJMFix> djmFix(djmfix::create([](djmfix::MidiMessage midiMessage) {
    39 	alsaBridge->start();
    26 		std::cerr << "main: will send midiMessage" << std::endl; // TODO: do not mess STDIO
    40 	while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100));
    27 	}));
    41 	alsaBridge->stop();
    28 
       
    29 	djmFix->start();
       
    30 	djmFix->receive({0xf0, 0xf7});
       
    31 	djmFix->stop();
       
    32 
       
    33 
    42 
    34 	return 0;
    43 	return 0;
    35 }
    44 }