sintonia/library/ecasound-2.7.2/libecasound/midiio-raw.h

48 lines
1.3 KiB
C++

#ifndef INCLUDED_MIDIIO_RAW_H
#define INCLUDED_MIDIIO_RAW_H
#include <string>
#include "midiio.h"
/**
* Input and output of raw MIDI streams using standard
* UNIX file operations.
*
* @author Kai Vehmanen
*/
class MIDI_IO_RAW : public MIDI_IO {
public:
MIDI_IO_RAW (const std::string& name = "");
virtual ~MIDI_IO_RAW(void);
virtual MIDI_IO_RAW* clone(void) const { return(new MIDI_IO_RAW(*this)); }
virtual MIDI_IO_RAW* new_expr(void) const { return new MIDI_IO_RAW(); }
virtual std::string name(void) const { return("Raw MIDI"); }
virtual int supported_io_modes(void) const { return(io_read | io_write | io_readwrite); }
virtual bool supports_nonblocking_mode(void) const { return(true); }
virtual int poll_descriptor(void) const { return(fd_rep); }
virtual std::string parameter_names(void) const { return("label,device_name"); }
virtual void set_parameter(int param, std::string value);
virtual std::string get_parameter(int param) const;
virtual void open(void);
virtual void close(void);
virtual long int read_bytes(void* target_buffer, long int bytes);
virtual long int write_bytes(void* target_buffer, long int bytes);
virtual bool finished(void) const;
private:
int fd_rep;
bool finished_rep;
std::string device_name_rep;
};
#endif