\section{FMOut Class Reference}
\label{classFMOut}\index{FMOut@{FMOut}}
FM device output class . Sends MIDI events to FM devices.  


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

Inheritance diagram for FMOut:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=44pt]{classFMOut__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for FMOut:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=54pt]{classFMOut__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf FMOut} (int d=0, int total=12)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item 
{\bf $\sim$FMOut} ()
\begin{CompactList}\small\item\em Destructor. \item\end{CompactList}\item 
virtual void {\bf open\-Dev} (int sqfd)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::open\-Dev}{\rm (p.\,\pageref{classMidiOut_a2})}(). \item\end{CompactList}\item 
virtual void {\bf close\-Dev} (void)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::close\-Dev}{\rm (p.\,\pageref{classMidiOut_a3})}(). \item\end{CompactList}\item 
virtual void {\bf init\-Dev} (void)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::init\-Dev}{\rm (p.\,\pageref{classMidiOut_a4})}(). \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 Midi\-Out::note\-On}{\rm (p.\,\pageref{classMidiOut_a8})}(). \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 Midi\-Out::note\-Off}{\rm (p.\,\pageref{classMidiOut_a9})}(). \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 Midi\-Out::key\-Pressure}{\rm (p.\,\pageref{classMidiOut_a10})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Patch\-Change} ({\bf uchar} chn, {\bf uchar} patch)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::chn\-Patch\-Change}{\rm (p.\,\pageref{classMidiOut_a11})}(). \item\end{CompactList}\item 
virtual void {\bf chn\-Pressure} ({\bf uchar} chn, {\bf uchar} vel)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::chn\-Pressure}{\rm (p.\,\pageref{classMidiOut_a12})}(). \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 Midi\-Out::chn\-Pitch\-Bender}{\rm (p.\,\pageref{classMidiOut_a13})}(). \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 Midi\-Out::chn\-Controller}{\rm (p.\,\pageref{classMidiOut_a14})}(). \item\end{CompactList}\item 
virtual void {\bf sysex} ({\bf uchar} $\ast$data, {\bf ulong} size)
\begin{CompactList}\small\item\em It's an empty function, as FM devices don't support System Exclusive messages. \item\end{CompactList}\item 
virtual void {\bf set\-Volume\-Percentage} (int i)
\begin{CompactList}\small\item\em See {\bf Midi\-Out::set\-Volume\-Percentage}{\rm (p.\,\pageref{classMidiOut_a19})}(). \item\end{CompactList}\item 
int {\bf patch} (int p)
\begin{CompactList}\small\item\em Returns {\tt p} if the patch p has been loaded, or another patch (already loaded) if {\tt p} hasn't been loaded. \item\end{CompactList}\end{CompactItemize}
\subsection*{Static Public Member Functions}
\begin{CompactItemize}
\item 
void {\bf set\-FMPatches\-Directory} (const  char $\ast$dir)
\begin{CompactList}\small\item\em Sets the directory where the FM patches are stored, that is, where the std.o3, std.sb, drums.o3 and drums.sb files can be found. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
FM device output class . Sends MIDI events to FM devices. 

FMOut is used to send MIDI events to FM devices, such as Ad\-Lib cards, or OPL3 synthesizers.

FMOut inherits {\bf Midi\-Out}{\rm (p.\,\pageref{classMidiOut})} and supports the same simple API.

The preferred way to use this class is by selecting a FM device on the Midi\-Manager and using a Midi\-Manager object directly

\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 43 of file fmout.h.

\subsection{Constructor \& Destructor Documentation}
\index{FMOut@{FMOut}!FMOut@{FMOut}}
\index{FMOut@{FMOut}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}FMOut::FMOut (int {\em d} = 0, int {\em total} = 12)}\label{classFMOut_a0}


Constructor. 

See {\bf Midi\-Out::Midi\-Out}{\rm (p.\,\pageref{classMidiOut_a0})}() for more information. 

Definition at line 45 of file fmout.cc.\index{FMOut@{FMOut}!~FMOut@{$\sim$FMOut}}
\index{~FMOut@{$\sim$FMOut}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}FMOut::$\sim${\bf FMOut} ()}\label{classFMOut_a1}


Destructor. 



Definition at line 60 of file fmout.cc.

References close\-Dev().

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


See {\bf Midi\-Out::open\-Dev}{\rm (p.\,\pageref{classMidiOut_a2})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a2})}.

Definition at line 72 of file fmout.cc.\index{FMOut@{FMOut}!closeDev@{closeDev}}
\index{closeDev@{closeDev}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::close\-Dev (void)\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a3}


See {\bf Midi\-Out::close\-Dev}{\rm (p.\,\pageref{classMidiOut_a3})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a3})}.

Definition at line 89 of file fmout.cc.

References Midi\-Out::ok().

Referenced by $\sim$FMOut().\index{FMOut@{FMOut}!initDev@{initDev}}
\index{initDev@{initDev}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::init\-Dev (void)\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a4}


See {\bf Midi\-Out::init\-Dev}{\rm (p.\,\pageref{classMidiOut_a4})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a4})}.

Definition at line 97 of file fmout.cc.

References chn\-Controller(), chn\-Patch\-Change(), chn\-Pitch\-Bender(), chn\-Pressure(), Midi\-Out::ok(), and sysex().\index{FMOut@{FMOut}!noteOn@{noteOn}}
\index{noteOn@{noteOn}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::note\-On ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a5}


See {\bf Midi\-Out::note\-On}{\rm (p.\,\pageref{classMidiOut_a8})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a8})}.

Definition at line 218 of file fmout.cc.

References note\-Off(), Midi\-Mapper::patch(), and patch().\index{FMOut@{FMOut}!noteOff@{noteOff}}
\index{noteOff@{noteOff}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::note\-Off ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a6}


See {\bf Midi\-Out::note\-Off}{\rm (p.\,\pageref{classMidiOut_a9})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a9})}.

Definition at line 251 of file fmout.cc.

Referenced by note\-On().\index{FMOut@{FMOut}!keyPressure@{keyPressure}}
\index{keyPressure@{keyPressure}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::key\-Pressure ({\bf uchar} {\em chn}, {\bf uchar} {\em note}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a7}


See {\bf Midi\-Out::key\-Pressure}{\rm (p.\,\pageref{classMidiOut_a10})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a10})}.

Definition at line 266 of file fmout.cc.\index{FMOut@{FMOut}!chnPatchChange@{chnPatchChange}}
\index{chnPatchChange@{chnPatchChange}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::chn\-Patch\-Change ({\bf uchar} {\em chn}, {\bf uchar} {\em patch})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a8}


See {\bf Midi\-Out::chn\-Patch\-Change}{\rm (p.\,\pageref{classMidiOut_a11})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a11})}.

Definition at line 274 of file fmout.cc.

References Midi\-Mapper::patch().

Referenced by init\-Dev().\index{FMOut@{FMOut}!chnPressure@{chnPressure}}
\index{chnPressure@{chnPressure}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::chn\-Pressure ({\bf uchar} {\em chn}, {\bf uchar} {\em vel})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a9}


See {\bf Midi\-Out::chn\-Pressure}{\rm (p.\,\pageref{classMidiOut_a12})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a12})}.

Definition at line 285 of file fmout.cc.

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


See {\bf Midi\-Out::chn\-Pitch\-Bender}{\rm (p.\,\pageref{classMidiOut_a13})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a13})}.

Definition at line 295 of file fmout.cc.

Referenced by init\-Dev().\index{FMOut@{FMOut}!chnController@{chnController}}
\index{chnController@{chnController}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::chn\-Controller ({\bf uchar} {\em chn}, {\bf uchar} {\em ctl}, {\bf uchar} {\em v})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a11}


See {\bf Midi\-Out::chn\-Controller}{\rm (p.\,\pageref{classMidiOut_a14})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a14})}.

Definition at line 306 of file fmout.cc.

Referenced by init\-Dev().\index{FMOut@{FMOut}!sysex@{sysex}}
\index{sysex@{sysex}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::sysex ({\bf uchar} $\ast$ {\em data}, {\bf ulong} {\em size})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a12}


It's an empty function, as FM devices don't support System Exclusive messages. 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a15})}.

Definition at line 321 of file fmout.cc.

Referenced by init\-Dev().\index{FMOut@{FMOut}!setVolumePercentage@{setVolumePercentage}}
\index{setVolumePercentage@{setVolumePercentage}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::set\-Volume\-Percentage (int {\em i})\hspace{0.3cm}{\tt  [virtual]}}\label{classFMOut_a13}


See {\bf Midi\-Out::set\-Volume\-Percentage}{\rm (p.\,\pageref{classMidiOut_a19})}(). 



Reimplemented from {\bf Midi\-Out} {\rm (p.\,\pageref{classMidiOut_a19})}.

Definition at line 337 of file fmout.cc.

References KStd\-Accel::close(), and KStd\-Accel::open().\index{FMOut@{FMOut}!patch@{patch}}
\index{patch@{patch}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int FMOut::patch (int {\em p})}\label{classFMOut_a14}


Returns {\tt p} if the patch p has been loaded, or another patch (already loaded) if {\tt p} hasn't been loaded. 



Definition at line 207 of file fmout.cc.

Referenced by note\-On().\index{FMOut@{FMOut}!setFMPatchesDirectory@{setFMPatchesDirectory}}
\index{setFMPatchesDirectory@{setFMPatchesDirectory}!FMOut@{FMOut}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void FMOut::set\-FMPatches\-Directory (const char $\ast$ {\em dir})\hspace{0.3cm}{\tt  [static]}}\label{classFMOut_e0}


Sets the directory where the FM patches are stored, that is, where the std.o3, std.sb, drums.o3 and drums.sb files can be found. 

It will store a copy of the parameter, so you should delete the memory used by the parameter you passed. 

Definition at line 326 of file fmout.cc.

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