AlsaBridge.cpp
author František Kučera <franta-hg@frantovo.cz>
Fri, 18 Dec 2020 23:58:03 +0100
branchv_0
changeset 4 4d777d6c8024
parent 3 e238528eb19c
child 5 ef8f4023e32e
permissions -rw-r--r--
address sanitizer
     1 /**
     2  * DJM-Fix
     3  * Copyright © 2020 František Kučera (Frantovo.cz, GlobalCode.info)
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 3 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    16  */
    17 #include <iostream>
    18 
    19 #include <alsa/asoundlib.h>
    20 
    21 #include "AlsaBridge.h"
    22 
    23 namespace djmfix {
    24 namespace alsa {
    25 
    26 class AlsaBridgeImpl : public AlsaBridge, private djmfix::MidiSender {
    27 private:
    28 	djmfix::DJMFix* djmFix;
    29 public:
    30 
    31 	AlsaBridgeImpl(djmfix::DJMFix* djmFix) : djmFix(djmFix) {
    32 		djmFix->setMidiSender(this);
    33 	}
    34 
    35 	virtual ~AlsaBridgeImpl() {
    36 		std::cerr << "~AlsaBridgeImpl()" << std::endl; // TODO: do not mess STDIO
    37 	}
    38 
    39 	virtual void start() override {
    40 		djmFix->start();
    41 	}
    42 
    43 	virtual void stop() override {
    44 		djmFix->stop();
    45 	}
    46 
    47 	virtual void send(MidiMessage midiMessage) override {
    48 		std::cerr << "AlsaBridgeImpl::send()" << std::endl; // TODO: do not mess STDIO
    49 	}
    50 
    51 };
    52 
    53 AlsaBridge* create(djmfix::DJMFix* djmFix) {
    54 	return new AlsaBridgeImpl(djmFix);
    55 }
    56 
    57 }
    58 }