\section{Midi\-Out Class Reference}
\label{classMidiOut}\index{MidiOut@{MidiOut}}
External MIDI port output class . Sends MIDI events to external MIDI devices.  


{\tt \#include $<$midiout.h$>$}

Inheritance diagram for Midi\-Out:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=148pt]{classMidiOut__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for Midi\-Out:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=54pt]{classMidiOut__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf Midi\-Out} (int d=0)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item 
virtual {\bf $\sim$Midi\-Out} ()
\begin{CompactList}\small\item\em Destructor. \item\end{CompactList}\item 
virtual void {\bf open\-Dev} (int sqfd)
\begin{CompactList}\small\item\em Opens the device. \item\end{CompactList}\item 
virtual void {\bf close\-Dev} ()
\begin{CompactList}\small\item\em Closes the device. \item\end{CompactList}\item 
virtual void {\bf init\-Dev} ()
\begin{CompactList}\small\item\em Initializes the device sending generic standard midi events and controllers, such as changing the patches of each channel to an Acoustic Piano (000), setting the volume to a normal value, etc. \item\end{CompactList}\item 
int {\bf device\-Type} () const 
\item 
const  char $\ast$ {\bf device\-Name} (void) const 
\begin{CompactList}\small\item\em Returns the name and type of this MIDI device. \item\end{CompactList}\item 
void {\bf set\-Midi\-Mapper} ({\bf Midi\-Mapper} $\ast$map)
\begin{CompactList}\small\item\em Sets a {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} object to be used to modify the midi events before sending them. \item\end{CompactList}\item 
virtual void {\bf note\-On} ({\bf uchar} chn, {\bf uchar} note, {\bf uchar} vel)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::note\-On}{\rm (p.\,\pageref{classDeviceManager_a13})}(). \item\end{CompactList}\item 
virtual void {\bf note\-Off} ({\bf uchar} chn, {\bf uchar} note, {\bf uchar} vel)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::note\-Off}{\rm (p.\,\pageref{classDeviceManager_a14})}(). \item\end{CompactList}\item 
virtual void {\bf key\-Pressure} ({\bf uchar} chn, {\bf uchar} note, {\bf uchar} vel)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::key\-Pressure}{\rm (p.\,\pageref{classDeviceManager_a15})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Patch\-Change} ({\bf uchar} chn, {\bf uchar} patch)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::chn\-Patch\-Change}{\rm (p.\,\pageref{classDeviceManager_a16})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Pressure} ({\bf uchar} chn, {\bf uchar} vel)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::chn\-Pressure}{\rm (p.\,\pageref{classDeviceManager_a17})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Pitch\-Bender} ({\bf uchar} chn, {\bf uchar} lsb, {\bf uchar} msb)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::chn\-Pitch\-Bender}{\rm (p.\,\pageref{classDeviceManager_a18})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Controller} ({\bf uchar} chn, {\bf uchar} ctl, {\bf uchar} v)
\begin{CompactList}\small\item\em See {\bf Device\-Manager::chn\-Controller}{\rm (p.\,\pageref{classDeviceManager_a19})}(). \item\end{CompactList}\item 
virtual void {\bf sysex} ({\bf uchar} $\ast$data, {\bf ulong} size)
\begin{CompactList}\small\item\em See Device\-Manager::sysex(). \item\end{CompactList}\item 
void {\bf all\-Notes\-Off} (void)
\begin{CompactList}\small\item\em Send a All Notes Off event to every channel. \item\end{CompactList}\item 
virtual void {\bf channel\-Silence} ({\bf uchar} chn)
\begin{CompactList}\small\item\em Mutes all notes being played on a given channel. \item\end{CompactList}\item 
virtual void {\bf channel\-Mute} ({\bf uchar} chn, int a)
\begin{CompactList}\small\item\em Mute or \char`\"{}unmute\char`\"{} a given channel . \item\end{CompactList}\item 
virtual void {\bf set\-Volume\-Percentage} (int volper)
\begin{CompactList}\small\item\em Change all channel volume events multiplying it by this percentage correction Instead of forcing a channel to a fixed volume, this method allows to music to fade out even when it was being played softly. \item\end{CompactList}\item 
int {\bf ok} (void)
\begin{CompactList}\small\item\em Returns true if everything's ok and false if there has been any problem. \item\end{CompactList}\item 
const  char $\ast$ {\bf midi\-Map\-Filename} ()
\begin{CompactList}\small\item\em Returns the path to the file where the current used {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} object reads the configuration from, or an empty string if there's no {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})}. \item\end{CompactList}\item 
void {\bf sync} (int i=0)
\begin{CompactList}\small\item\em Sends the buffer to the device and returns when it's played, so you can synchronize XXX: sync should be virtual after next bic release. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
void {\bf seqbuf\_\-dump} (void)\label{classMidiOut_b0}

\item 
void {\bf seqbuf\_\-clean} (void)\label{classMidiOut_b1}

\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
int {\bf seqfd}\label{classMidiOut_p0}

\item 
int {\bf device}\label{classMidiOut_p1}

\item 
int {\bf devicetype}\label{classMidiOut_p2}

\item 
int {\bf volumepercentage}\label{classMidiOut_p3}

\item 
{\bf Midi\-Mapper} $\ast$ {\bf map}\label{classMidiOut_p4}

\item 
{\bf uchar} {\bf chnpatch} [16]\label{classMidiOut_p5}

\item 
int {\bf chnbender} [16]\label{classMidiOut_p6}

\item 
{\bf uchar} {\bf chnpressure} [16]\label{classMidiOut_p7}

\item 
{\bf uchar} {\bf chncontroller} [16][256]\label{classMidiOut_p8}

\item 
int {\bf chnmute} [16]\label{classMidiOut_p9}

\item 
int {\bf \_\-ok}\label{classMidiOut_p10}

\end{CompactItemize}


\subsection{Detailed Description}
External MIDI port output class . Sends MIDI events to external MIDI devices. 

This class is used to send midi events to external midi devices.

Midi\-Out is inherited by other MIDI devices classes (like {\bf Synth\-Out}{\rm (p.\,\pageref{classSynthOut})} or {\bf FMOut}{\rm (p.\,\pageref{classFMOut})}) to support a common API.

In general, you don't want to use Midi\-Out directly, but within a {\bf Device\-Manager}{\rm (p.\,\pageref{classDeviceManager})} object, which is the preferred way to generate music.

If you want to add support for other devices (I don't think there are any) you just have to create a class that inherits from Midi\-Out and create one object of your new class in {\bf Device\-Manager::init\-Manager}{\rm (p.\,\pageref{classDeviceManager_a2})}().

\begin{Desc}
\item[Version:]0.9.5 17/01/2000 \end{Desc}
\begin{Desc}
\item[Author:]Antonio Larrosa Jimenez $<${\tt larrosa@kde.org}$>$ \end{Desc}




Definition at line 51 of file midiout.h.

\subsection{Constructor \& Destructor Documentation}
\index{MidiOut@{Midi\-Out}!MidiOut@{MidiOut}}
\index{MidiOut@{MidiOut}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Midi\-Out::Midi\-Out (int {\em d} = 0)}\label{classMidiOut_a0}


Constructor. 

After constructing a Midi\-Out device, you must open it (using {\bf open\-Dev}{\rm (p.\,\pageref{classMidiOut_a2})}() ). Additionally you may want to initialize it (with {\bf init\-Dev}{\rm (p.\,\pageref{classMidiOut_a4})}() ), 

Definition at line 46 of file midiout.cc.\index{MidiOut@{Midi\-Out}!~MidiOut@{$\sim$MidiOut}}
\index{~MidiOut@{$\sim$MidiOut}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Midi\-Out::$\sim${\bf Midi\-Out} ()\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a1}


Destructor. 

It doesn't matter if you close the device ({\bf close\-Dev}{\rm (p.\,\pageref{classMidiOut_a3})}() ) before you destruct the object because in other case, it will be closed here. 

Definition at line 57 of file midiout.cc.

References close\-Dev().

\subsection{Member Function Documentation}
\index{MidiOut@{Midi\-Out}!openDev@{openDev}}
\index{openDev@{openDev}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::open\-Dev (int {\em sqfd})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a2}


Opens the device. 

This is generally called from {\bf Device\-Manager}{\rm (p.\,\pageref{classDeviceManager})} , so you shouldn't call this yourself (except if you created the Midi\-Out object yourself. \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em sqfd}]a file descriptor of /dev/sequencer \end{description}
\end{Desc}
\begin{Desc}
\item[See also:]{\bf close\-Dev}{\rm (p.\,\pageref{classMidiOut_a3})} 

{\bf init\-Dev}{\rm (p.\,\pageref{classMidiOut_a4})} \end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a2})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a2})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a2})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a2})}.

Definition at line 63 of file midiout.cc.

Referenced by Device\-Manager::open\-Dev().\index{MidiOut@{Midi\-Out}!closeDev@{closeDev}}
\index{closeDev@{closeDev}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::close\-Dev ()\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a3}


Closes the device. 

It basically tells the device (the file descriptor) is going to be closed. \begin{Desc}
\item[See also:]{\bf open\-Dev}{\rm (p.\,\pageref{classMidiOut_a2})} \end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a3})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a3})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a3})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a3})}.

Definition at line 77 of file midiout.cc.

References ok().

Referenced by Device\-Manager::close\-Dev(), Device\-Manager::open\-Dev(), and $\sim$Midi\-Out().\index{MidiOut@{Midi\-Out}!initDev@{initDev}}
\index{initDev@{initDev}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::init\-Dev ()\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a4}


Initializes the device sending generic standard midi events and controllers, such as changing the patches of each channel to an Acoustic Piano (000), setting the volume to a normal value, etc. 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a4})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a4})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a4})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a4})}.

Definition at line 86 of file midiout.cc.

References chn\-Controller(), chn\-Patch\-Change(), chn\-Pitch\-Bender(), chn\-Pressure(), ok(), and sysex().

Referenced by Device\-Manager::init\-Dev().\index{MidiOut@{Midi\-Out}!deviceType@{deviceType}}
\index{deviceType@{deviceType}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Midi\-Out::device\-Type () const\hspace{0.3cm}{\tt  [inline]}}\label{classMidiOut_a5}


\begin{Desc}
\item[Returns:]the device type of the object. This is to identify the inherited class that a given object is polymorphed to. The returned value is one of these :\end{Desc}
\begin{itemize}
\item KMID\_\-EXTERNAL\_\-MIDI if it's a {\bf Midi\-Out}{\rm (p.\,\pageref{classMidiOut})} object \item KMID\_\-SYNTH if it's a {\bf Synth\-Out}{\rm (p.\,\pageref{classSynthOut})} object (as an AWE device) \item KMID\_\-FM if it's a {\bf FMOut}{\rm (p.\,\pageref{classFMOut})} object \item KMID\_\-GUS if it's a {\bf GUSOut}{\rm (p.\,\pageref{classGUSOut})} object\end{itemize}
which are defined in {\bf midispec.h}{\rm (p.\,\pageref{midispec_8h})}

\begin{Desc}
\item[See also:]{\bf device\-Name}{\rm (p.\,\pageref{classMidiOut_a6})} \end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a5})}.

Definition at line 139 of file midiout.h.

Referenced by device\-Name(), and sync().\index{MidiOut@{Midi\-Out}!deviceName@{deviceName}}
\index{deviceName@{deviceName}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const  char $\ast$ Midi\-Out::device\-Name (void) const}\label{classMidiOut_a6}


Returns the name and type of this MIDI device. 

\begin{Desc}
\item[See also:]{\bf device\-Type}{\rm (p.\,\pageref{classMidiOut_a5})} \end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a6})}.

Definition at line 280 of file midiout.cc.

References device\-Type().

Referenced by Device\-Manager::name().\index{MidiOut@{Midi\-Out}!setMidiMapper@{setMidiMapper}}
\index{setMidiMapper@{setMidiMapper}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::set\-Midi\-Mapper ({\bf Midi\-Mapper} $\ast$ {\em map})}\label{classMidiOut_a7}


Sets a {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} object to be used to modify the midi events before sending them. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em map}]the {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} to use.\end{description}
\end{Desc}
\begin{Desc}
\item[See also:]{\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} 

{\bf midi\-Map\-Filename}{\rm (p.\,\pageref{classMidiOut_a21})} \end{Desc}


Definition at line 107 of file midiout.cc.\index{MidiOut@{Midi\-Out}!noteOn@{noteOn}}
\index{noteOn@{noteOn}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::note\-On ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a8}


See {\bf Device\-Manager::note\-On}{\rm (p.\,\pageref{classDeviceManager_a13})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a8})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a5})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a5})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a5})}.

Definition at line 113 of file midiout.cc.

References Midi\-Mapper::channel(), Midi\-Mapper::key(), and note\-Off().

Referenced by Device\-Manager::note\-On().\index{MidiOut@{Midi\-Out}!noteOff@{noteOff}}
\index{noteOff@{noteOff}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::note\-Off ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a9}


See {\bf Device\-Manager::note\-Off}{\rm (p.\,\pageref{classDeviceManager_a14})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a9})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a6})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a6})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a6})}.

Definition at line 130 of file midiout.cc.

References Midi\-Mapper::channel(), and Midi\-Mapper::key().

Referenced by channel\-Silence(), Device\-Manager::note\-Off(), and note\-On().\index{MidiOut@{Midi\-Out}!keyPressure@{keyPressure}}
\index{keyPressure@{keyPressure}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::key\-Pressure ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a10}


See {\bf Device\-Manager::key\-Pressure}{\rm (p.\,\pageref{classDeviceManager_a15})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a10})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a7})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a7})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a7})}.

Definition at line 140 of file midiout.cc.

References Midi\-Mapper::channel(), and Midi\-Mapper::key().

Referenced by Device\-Manager::key\-Pressure().\index{MidiOut@{Midi\-Out}!chnPatchChange@{chnPatchChange}}
\index{chnPatchChange@{chnPatchChange}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::chn\-Patch\-Change ({\bf uchar} {\em chn}, {\bf uchar} {\em patch})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a11}


See {\bf Device\-Manager::chn\-Patch\-Change}{\rm (p.\,\pageref{classDeviceManager_a16})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a11})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a8})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a8})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a8})}.

Definition at line 147 of file midiout.cc.

References Midi\-Mapper::channel(), and Midi\-Mapper::patch().

Referenced by Device\-Manager::chn\-Patch\-Change(), and init\-Dev().\index{MidiOut@{Midi\-Out}!chnPressure@{chnPressure}}
\index{chnPressure@{chnPressure}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::chn\-Pressure ({\bf uchar} {\em chn}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a12}


See {\bf Device\-Manager::chn\-Pressure}{\rm (p.\,\pageref{classDeviceManager_a17})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a12})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a9})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a9})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a9})}.

Definition at line 158 of file midiout.cc.

References Midi\-Mapper::channel().

Referenced by Device\-Manager::chn\-Pressure(), and init\-Dev().\index{MidiOut@{Midi\-Out}!chnPitchBender@{chnPitchBender}}
\index{chnPitchBender@{chnPitchBender}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::chn\-Pitch\-Bender ({\bf uchar} {\em chn}, {\bf uchar} {\em lsb}, {\bf uchar} {\em msb})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a13}


See {\bf Device\-Manager::chn\-Pitch\-Bender}{\rm (p.\,\pageref{classDeviceManager_a18})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a13})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a10})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a10})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a10})}.

Definition at line 166 of file midiout.cc.

References Midi\-Mapper::channel(), and Midi\-Mapper::pitch\-Bender().

Referenced by Device\-Manager::chn\-Pitch\-Bender(), and init\-Dev().\index{MidiOut@{Midi\-Out}!chnController@{chnController}}
\index{chnController@{chnController}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::chn\-Controller ({\bf uchar} {\em chn}, {\bf uchar} {\em ctl}, {\bf uchar} {\em v})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a14}


See {\bf Device\-Manager::chn\-Controller}{\rm (p.\,\pageref{classDeviceManager_a19})}(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a14})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a11})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a11})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a11})}.

Definition at line 186 of file midiout.cc.

References Midi\-Mapper::channel(), and Midi\-Mapper::controller().

Referenced by all\-Notes\-Off(), Device\-Manager::chn\-Controller(), and init\-Dev().\index{MidiOut@{Midi\-Out}!sysex@{sysex}}
\index{sysex@{sysex}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::sysex ({\bf uchar} $\ast$ {\em data}, {\bf ulong} {\em size})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a15}


See Device\-Manager::sysex(). 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a15})}, {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a12})}, {\bf GUSOut} {\rm (p.\,\pageref{classGUSOut_a12})}, and {\bf Synth\-Out} {\rm (p.\,\pageref{classSynthOut_a12})}.

Definition at line 205 of file midiout.cc.

Referenced by init\-Dev(), and Device\-Manager::sys\-Ex().\index{MidiOut@{Midi\-Out}!allNotesOff@{allNotesOff}}
\index{allNotesOff@{allNotesOff}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::all\-Notes\-Off (void)}\label{classMidiOut_a16}


Send a All Notes Off event to every channel. 



Definition at line 220 of file midiout.cc.

References chn\-Controller(), and sync().

Referenced by Device\-Manager::all\-Notes\-Off().\index{MidiOut@{Midi\-Out}!channelSilence@{channelSilence}}
\index{channelSilence@{channelSilence}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::channel\-Silence ({\bf uchar} {\em chn})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a17}


Mutes all notes being played on a given channel. 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a16})}.

Definition at line 230 of file midiout.cc.

References note\-Off(), and sync().

Referenced by channel\-Mute().\index{MidiOut@{Midi\-Out}!channelMute@{channelMute}}
\index{channelMute@{channelMute}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::channel\-Mute ({\bf uchar} {\em chn}, int {\em a})\hspace{0.3cm}{\tt  [virtual]}}\label{classMidiOut_a18}


Mute or \char`\"{}unmute\char`\"{} a given channel . 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em chn}]channel to work on \item[{\em b}]if true, the device will ignore subsequent notes played on the chn channel, and mute all notes being played on it. If b is false, the channel is back to work. \end{description}
\end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a17})}.

Definition at line 240 of file midiout.cc.

References channel\-Silence().\index{MidiOut@{Midi\-Out}!setVolumePercentage@{setVolumePercentage}}
\index{setVolumePercentage@{setVolumePercentage}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Midi\-Out::set\-Volume\-Percentage (int {\em volper})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classMidiOut_a19}


Change all channel volume events multiplying it by this percentage correction Instead of forcing a channel to a fixed volume, this method allows to music to fade out even when it was being played softly. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em volper}]is an integer value, where 0 is quiet, 100 is used to send an unmodified value, 200 play music twice louder than it should, etc. \end{description}
\end{Desc}


Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a18})}, and {\bf FMOut} {\rm (p.\,\pageref{classFMOut_a13})}.

Definition at line 224 of file midiout.h.

Referenced by Device\-Manager::set\-Volume\-Percentage().\index{MidiOut@{Midi\-Out}!ok@{ok}}
\index{ok@{ok}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Midi\-Out::ok (void)\hspace{0.3cm}{\tt  [inline]}}\label{classMidiOut_a20}


Returns true if everything's ok and false if there has been any problem. 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a19})}.

Definition at line 230 of file midiout.h.

Referenced by Synth\-Out::close\-Dev(), close\-Dev(), GUSOut::close\-Dev(), FMOut::close\-Dev(), Synth\-Out::init\-Dev(), init\-Dev(), GUSOut::init\-Dev(), FMOut::init\-Dev(), and Device\-Manager::open\-Dev().\index{MidiOut@{Midi\-Out}!midiMapFilename@{midiMapFilename}}
\index{midiMapFilename@{midiMapFilename}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const  char $\ast$ Midi\-Out::midi\-Map\-Filename ()}\label{classMidiOut_a21}


Returns the path to the file where the current used {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})} object reads the configuration from, or an empty string if there's no {\bf Midi\-Mapper}{\rm (p.\,\pageref{classMidiMapper})}. 



Definition at line 275 of file midiout.cc.

References Midi\-Mapper::filename().\index{MidiOut@{Midi\-Out}!sync@{sync}}
\index{sync@{sync}!MidiOut@{Midi\-Out}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Midi\-Out::sync (int {\em i} = 0)}\label{classMidiOut_a22}


Sends the buffer to the device and returns when it's played, so you can synchronize XXX: sync should be virtual after next bic release. 



Reimplemented in {\bf Alsa\-Out} {\rm (p.\,\pageref{classAlsaOut_a26})}.

Definition at line 294 of file midiout.cc.

References device\-Type().

Referenced by all\-Notes\-Off(), and channel\-Silence().

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
midiout.h\item 
midiout.cc\end{CompactItemize}
