\hypertarget{g__audio_8c}{}\doxysection{dev/usb/gadget/g\+\_\+audio.c File Reference}
\label{g__audio_8c}\index{dev/usb/gadget/g\_audio.c@{dev/usb/gadget/g\_audio.c}}
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/stdint.\+h$>$}\newline
{\ttfamily \#include $<$sys/stddef.\+h$>$}\newline
{\ttfamily \#include $<$sys/queue.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/bus.\+h$>$}\newline
{\ttfamily \#include $<$sys/linker\+\_\+set.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/condvar.\+h$>$}\newline
{\ttfamily \#include $<$sys/sysctl.\+h$>$}\newline
{\ttfamily \#include $<$sys/sx.\+h$>$}\newline
{\ttfamily \#include $<$sys/unistd.\+h$>$}\newline
{\ttfamily \#include $<$sys/callout.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/priv.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usb.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usb\+\_\+cdc.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbdi.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbdi\+\_\+util.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbhid.\+h$>$}\newline
{\ttfamily \#include \char`\"{}usb\+\_\+if.\+h\char`\"{}}\newline
{\ttfamily \#include $<$dev/usb/usb\+\_\+debug.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/gadget/g\+\_\+audio.\+h$>$}\newline
Include dependency graph for g\+\_\+audio.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d6/d6d/g__audio_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{g__audio_8c_a927dd6f59caf10a2991dfb564bcbb1e1}{USB\+\_\+\+DEBUG\+\_\+\+VAR}}~g\+\_\+audio\+\_\+debug
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \newline
\mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acd7dd71be493c7b142fdf0dad0622b1c}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+RD}}
, \mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a21831d203980934cb5a53b350c92043b}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+RD}}
, \mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acec2671bb68ccb69c10ed7bc3579a4c9}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR}}
, \mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04afcc5cc4210d960a8701915d44aac0a3c}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+WR}}
, \newline
\mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a68dea0ad423a90b2144b62111011285f}{G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{g__audio_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static \mbox{\hyperlink{g__audio_8c_a1c2ce8144a35775de70fc13362299b3a}{SYSCTL\+\_\+\+NODE}} (\+\_\+hw\+\_\+usb, OID\+\_\+\+AUTO, g\+\_\+audio, CTLFLAG\+\_\+\+RW$\vert$CTLFLAG\+\_\+\+MPSAFE, 0, \char`\"{}USB audio gadget\char`\"{})
\item 
\mbox{\hyperlink{g__audio_8c_afc865fff93590c79eb24db8bd4551ebc}{SYSCTL\+\_\+\+INT}} (\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio, OID\+\_\+\+AUTO, mode, CTLFLAG\+\_\+\+RWTUN, \&\mbox{\hyperlink{g__audio_8c_ab650ad063e37b850cc5ef75aa63dfe66}{g\+\_\+audio\+\_\+mode}}, 0, \char`\"{}Mode selection\char`\"{})
\item 
\mbox{\hyperlink{g__audio_8c_aeecd148428b7c13d57bcf9d770bd76c9}{SYSCTL\+\_\+\+INT}} (\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio, OID\+\_\+\+AUTO, pattern\+\_\+interval, CTLFLAG\+\_\+\+RWTUN, \&\mbox{\hyperlink{g__audio_8c_ab1a7a5db7aead6acd8395665edfa8922}{g\+\_\+audio\+\_\+pattern\+\_\+interval}}, 0, \char`\"{}Pattern interval in milliseconds\char`\"{})
\item 
\mbox{\hyperlink{g__audio_8c_a5b2366cc4d04672fb674775660109e5b}{SYSCTL\+\_\+\+STRING}} (\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio, OID\+\_\+\+AUTO, pattern, CTLFLAG\+\_\+\+RW, \&\mbox{\hyperlink{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}{g\+\_\+audio\+\_\+pattern\+\_\+data}}, sizeof(\mbox{\hyperlink{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}{g\+\_\+audio\+\_\+pattern\+\_\+data}}), \char`\"{}Data pattern\char`\"{})
\item 
\mbox{\hyperlink{g__audio_8c_abc93ed3c2caf42f4b0bb81c2afb5ae52}{SYSCTL\+\_\+\+INT}} (\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio, OID\+\_\+\+AUTO, throughput, CTLFLAG\+\_\+\+RD, \&\mbox{\hyperlink{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}{g\+\_\+audio\+\_\+throughput}}, sizeof(\mbox{\hyperlink{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}{g\+\_\+audio\+\_\+throughput}}), \char`\"{}Throughput in bytes per second\char`\"{})
\item 
static void \mbox{\hyperlink{g__audio_8c_ae12389d0c1f0e1d747c7bd4d4f4bb937}{g\+\_\+audio\+\_\+watchdog}} (void $\ast$arg)
\item 
static void \mbox{\hyperlink{g__audio_8c_a168807024a8dcfb2aa34e9cd28c67a45}{g\+\_\+audio\+\_\+timeout}} (void $\ast$arg)
\item 
\mbox{\hyperlink{g__audio_8c_abf57bd9e2867ffb7624a8a831ea18652}{DRIVER\+\_\+\+MODULE}} (g\+\_\+audio, uhub, \mbox{\hyperlink{g__audio_8c_a3d1c555e81ca8b937d547ae03f86eaaf}{g\+\_\+audio\+\_\+driver}}, \mbox{\hyperlink{g__audio_8c_a4120cd7866c1da342e1964d2ed21ad9f}{g\+\_\+audio\+\_\+devclass}}, 0, 0)
\item 
\mbox{\hyperlink{g__audio_8c_ada0076abc9daf9d8548279656641e8b3}{MODULE\+\_\+\+DEPEND}} (g\+\_\+audio, \mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}, 1, 1, 1)
\item 
static void \mbox{\hyperlink{g__audio_8c_a77d1fcc586a6d9fcb8d689d397544168}{g\+\_\+audio\+\_\+timeout\+\_\+reset}} (struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$sc)
\item 
static void \mbox{\hyperlink{g__audio_8c_af959a03d5fec79b0a0d8ddc632f3dfac}{g\+\_\+audio\+\_\+watchdog\+\_\+reset}} (struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$sc)
\item 
static int \mbox{\hyperlink{g__audio_8c_a01c9c1ad1eaa914b0609f2bb4e6b7e70}{g\+\_\+audio\+\_\+probe}} (device\+\_\+t \textbf{ dev})
\item 
static int \mbox{\hyperlink{g__audio_8c_a540d168bc2bcd18df1fadf760bfd93ef}{g\+\_\+audio\+\_\+attach}} (device\+\_\+t \textbf{ dev})
\item 
static int \mbox{\hyperlink{g__audio_8c_a773855f6b743eb93197a3ab220e28373}{g\+\_\+audio\+\_\+detach}} (device\+\_\+t \textbf{ dev})
\item 
static int32\+\_\+t \mbox{\hyperlink{g__audio_8c_a91ec382a3e72d85993ce33eebcc4fdf2}{g\+\_\+noise}} (struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$sc)
\item 
static void \mbox{\hyperlink{g__audio_8c_a1a0e3ab34505308159a9c426221219d0}{g\+\_\+audio\+\_\+make\+\_\+samples}} (struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$sc, int16\+\_\+t $\ast$ptr, int samples)
\item 
static void \mbox{\hyperlink{g__audio_8c_adc99ce66594ce444654db1f333b0948d}{g\+\_\+audio\+\_\+isoc\+\_\+write\+\_\+callback}} (struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})
\item 
static void \mbox{\hyperlink{g__audio_8c_adb9ca8a604cd5040e056f02071bc3ab2}{g\+\_\+audio\+\_\+isoc\+\_\+read\+\_\+callback}} (struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})
\item 
static int \mbox{\hyperlink{g__audio_8c_a3a0518a450f3669de8e2c9452a8b7d85}{g\+\_\+audio\+\_\+handle\+\_\+request}} (device\+\_\+t \textbf{ dev}, const void $\ast$preq, void $\ast$$\ast$\mbox{\hyperlink{usb__if_8m_a074c17a419327b41805af2dd7cb152e7}{pptr}}, uint16\+\_\+t $\ast$\mbox{\hyperlink{usb__if_8m_aaba3806a5156b2c2a6d6f95f0d95ed03}{plen}}, uint16\+\_\+t \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}}, uint8\+\_\+t $\ast$\mbox{\hyperlink{usb__if_8m_a8a16a0091a5793ece040278427496b23}{pstate}})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static int \mbox{\hyperlink{g__audio_8c_ab650ad063e37b850cc5ef75aa63dfe66}{g\+\_\+audio\+\_\+mode}} = 0
\item 
static int \mbox{\hyperlink{g__audio_8c_ab1a7a5db7aead6acd8395665edfa8922}{g\+\_\+audio\+\_\+pattern\+\_\+interval}} = 1000
\item 
static char \mbox{\hyperlink{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}{g\+\_\+audio\+\_\+pattern\+\_\+data}} \mbox{[}\mbox{\hyperlink{g__audio_8h_a35a5fee9becdc3d82b3672c7ae52f71f}{G\+\_\+\+AUDIO\+\_\+\+MAX\+\_\+\+STRLEN}}\mbox{]}
\item 
static int \mbox{\hyperlink{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}{g\+\_\+audio\+\_\+throughput}}
\item 
static device\+\_\+probe\+\_\+t \mbox{\hyperlink{g__audio_8c_ac334bed57a350fe48c02cf2ebfa5e812}{g\+\_\+audio\+\_\+probe}}
\item 
static device\+\_\+attach\+\_\+t \mbox{\hyperlink{g__audio_8c_ad2f501ab3ac8de1ab63713abfcfe73a1}{g\+\_\+audio\+\_\+attach}}
\item 
static device\+\_\+detach\+\_\+t \mbox{\hyperlink{g__audio_8c_a05743eb2a9d100f91d7a5b72710c21e7}{g\+\_\+audio\+\_\+detach}}
\item 
static usb\+\_\+handle\+\_\+request\+\_\+t \mbox{\hyperlink{g__audio_8c_a47f61f5d8fe9513c92a71cbf453e9ebc}{g\+\_\+audio\+\_\+handle\+\_\+request}}
\item 
static \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} \mbox{\hyperlink{g__audio_8c_a4c3b16f95df1c724ca5413a96c496f57}{g\+\_\+audio\+\_\+isoc\+\_\+read\+\_\+callback}}
\item 
static \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} \mbox{\hyperlink{g__audio_8c_abe1f72be9e53db8317bc3348b2ce2c7f}{g\+\_\+audio\+\_\+isoc\+\_\+write\+\_\+callback}}
\item 
static devclass\+\_\+t \mbox{\hyperlink{g__audio_8c_a4120cd7866c1da342e1964d2ed21ad9f}{g\+\_\+audio\+\_\+devclass}}
\item 
static device\+\_\+method\+\_\+t \mbox{\hyperlink{g__audio_8c_a9a24ffee22fbb701037415fac0ec926f}{g\+\_\+audio\+\_\+methods}} \mbox{[}$\,$\mbox{]}
\item 
static driver\+\_\+t \mbox{\hyperlink{g__audio_8c_a3d1c555e81ca8b937d547ae03f86eaaf}{g\+\_\+audio\+\_\+driver}}
\item 
static const struct \mbox{\hyperlink{structusb__config}{usb\+\_\+config}} \mbox{\hyperlink{g__audio_8c_a02ca9418ae21aa5f7855b75c55696d1a}{g\+\_\+audio\+\_\+config}} \mbox{[}\mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a68dea0ad423a90b2144b62111011285f}{G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER}}\mbox{]}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{g__audio_8c_a927dd6f59caf10a2991dfb564bcbb1e1}\label{g__audio_8c_a927dd6f59caf10a2991dfb564bcbb1e1}} 
\index{g\_audio.c@{g\_audio.c}!USB\_DEBUG\_VAR@{USB\_DEBUG\_VAR}}
\index{USB\_DEBUG\_VAR@{USB\_DEBUG\_VAR}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{USB\_DEBUG\_VAR}{USB\_DEBUG\_VAR}}
{\footnotesize\ttfamily \#define USB\+\_\+\+DEBUG\+\_\+\+VAR~g\+\_\+audio\+\_\+debug}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00062}{62}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04}} 
\doxysubsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{G\_AUDIO\_ISOC0\_RD@{G\_AUDIO\_ISOC0\_RD}!g\_audio.c@{g\_audio.c}}\index{g\_audio.c@{g\_audio.c}!G\_AUDIO\_ISOC0\_RD@{G\_AUDIO\_ISOC0\_RD}}}\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acd7dd71be493c7b142fdf0dad0622b1c}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acd7dd71be493c7b142fdf0dad0622b1c}} 
G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+RD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{G\_AUDIO\_ISOC1\_RD@{G\_AUDIO\_ISOC1\_RD}!g\_audio.c@{g\_audio.c}}\index{g\_audio.c@{g\_audio.c}!G\_AUDIO\_ISOC1\_RD@{G\_AUDIO\_ISOC1\_RD}}}\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a21831d203980934cb5a53b350c92043b}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a21831d203980934cb5a53b350c92043b}} 
G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+RD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{G\_AUDIO\_ISOC0\_WR@{G\_AUDIO\_ISOC0\_WR}!g\_audio.c@{g\_audio.c}}\index{g\_audio.c@{g\_audio.c}!G\_AUDIO\_ISOC0\_WR@{G\_AUDIO\_ISOC0\_WR}}}\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acec2671bb68ccb69c10ed7bc3579a4c9}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04acec2671bb68ccb69c10ed7bc3579a4c9}} 
G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{G\_AUDIO\_ISOC1\_WR@{G\_AUDIO\_ISOC1\_WR}!g\_audio.c@{g\_audio.c}}\index{g\_audio.c@{g\_audio.c}!G\_AUDIO\_ISOC1\_WR@{G\_AUDIO\_ISOC1\_WR}}}\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04afcc5cc4210d960a8701915d44aac0a3c}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04afcc5cc4210d960a8701915d44aac0a3c}} 
G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+WR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{G\_AUDIO\_N\_TRANSFER@{G\_AUDIO\_N\_TRANSFER}!g\_audio.c@{g\_audio.c}}\index{g\_audio.c@{g\_audio.c}!G\_AUDIO\_N\_TRANSFER@{G\_AUDIO\_N\_TRANSFER}}}\mbox{\Hypertarget{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a68dea0ad423a90b2144b62111011285f}\label{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a68dea0ad423a90b2144b62111011285f}} 
G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{g__audio_8c_source_l00067}{67}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{g__audio_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{g__audio_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{g\_audio.c@{g\_audio.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_abf57bd9e2867ffb7624a8a831ea18652}\label{g__audio_8c_abf57bd9e2867ffb7624a8a831ea18652}} 
\index{g\_audio.c@{g\_audio.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{g\+\_\+audio}]{,  }\item[{uhub}]{,  }\item[{\mbox{\hyperlink{g__audio_8c_a3d1c555e81ca8b937d547ae03f86eaaf}{g\+\_\+audio\+\_\+driver}}}]{,  }\item[{\mbox{\hyperlink{g__audio_8c_a4120cd7866c1da342e1964d2ed21ad9f}{g\+\_\+audio\+\_\+devclass}}}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_a540d168bc2bcd18df1fadf760bfd93ef}\label{g__audio_8c_a540d168bc2bcd18df1fadf760bfd93ef}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_attach@{g\_audio\_attach}}
\index{g\_audio\_attach@{g\_audio\_attach}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_attach()}{g\_audio\_attach()}}
{\footnotesize\ttfamily static int g\+\_\+audio\+\_\+attach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00289}{289}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{usbdi_8h_source_l00417}{usbd\+\_\+lookup\+\_\+info\+::b\+Iface\+Index}}, \textbf{ dev}, \mbox{\hyperlink{usbdi_8h_source_l00430}{usb\+\_\+attach\+\_\+arg\+::device}}, \mbox{\hyperlink{usb__util_8c_source_l00073}{device\+\_\+set\+\_\+usb\+\_\+desc()}}, \mbox{\hyperlink{umass_8c_source_l00179}{DPRINTF}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{g__audio_8h_source_l00034}{G\+\_\+\+AUDIO\+\_\+\+BUFSIZE}}, \mbox{\hyperlink{g__audio_8c_source_l00163}{g\+\_\+audio\+\_\+config}}, \mbox{\hyperlink{g__audio_8c_source_l00131}{g\+\_\+audio\+\_\+detach}}, \mbox{\hyperlink{g__audio_8h_source_l00033}{G\+\_\+\+AUDIO\+\_\+\+FRAMES}}, \mbox{\hyperlink{g__audio_8c_source_l00068}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+RD}}, \mbox{\hyperlink{g__audio_8c_source_l00070}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8c_source_l00069}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+RD}}, \mbox{\hyperlink{g__audio_8c_source_l00071}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8h_source_l00036}{G\+\_\+\+AUDIO\+\_\+\+MODE\+\_\+\+SILENT}}, \mbox{\hyperlink{g__audio_8c_source_l00072}{G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER}}, \mbox{\hyperlink{g__audio_8c_source_l00214}{g\+\_\+audio\+\_\+timeout\+\_\+reset()}}, \mbox{\hyperlink{g__audio_8c_source_l00251}{g\+\_\+audio\+\_\+watchdog\+\_\+reset()}}, \mbox{\hyperlink{usbdi_8h_source_l00426}{usb\+\_\+attach\+\_\+arg\+::info}}, \mbox{\hyperlink{g__audio_8c_source_l00077}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+callout}}, \mbox{\hyperlink{g__audio_8c_source_l00090}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+data\+\_\+len}}, \mbox{\hyperlink{g__audio_8c_source_l00081}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+mode}}, \mbox{\hyperlink{g__audio_8c_source_l00076}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+mtx}}, \mbox{\hyperlink{g__audio_8c_source_l00086}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+noise\+\_\+rem}}, \mbox{\hyperlink{g__audio_8c_source_l00078}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+watchdog}}, \mbox{\hyperlink{g__audio_8c_source_l00079}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+xfer}}, \mbox{\hyperlink{usbdi_8h_source_l00480}{usb\+\_\+callout\+\_\+init\+\_\+mtx}}, \mbox{\hyperlink{usb__error_8c_source_l00093}{usbd\+\_\+errstr()}}, \mbox{\hyperlink{usb__device_8c_source_l01034}{usbd\+\_\+set\+\_\+alt\+\_\+interface\+\_\+index()}}, \mbox{\hyperlink{usb__device_8c_source_l01395}{usbd\+\_\+set\+\_\+parent\+\_\+iface()}}, \mbox{\hyperlink{usb__transfer_8c_source_l00987}{usbd\+\_\+transfer\+\_\+setup()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01948}{usbd\+\_\+transfer\+\_\+start()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a540d168bc2bcd18df1fadf760bfd93ef_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a773855f6b743eb93197a3ab220e28373}\label{g__audio_8c_a773855f6b743eb93197a3ab220e28373}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_detach@{g\_audio\_detach}}
\index{g\_audio\_detach@{g\_audio\_detach}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_detach()}{g\_audio\_detach()}}
{\footnotesize\ttfamily static int g\+\_\+audio\+\_\+detach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00363}{363}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \textbf{ dev}, \mbox{\hyperlink{umass_8c_source_l00179}{DPRINTF}}, \mbox{\hyperlink{g__audio_8c_source_l00072}{G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER}}, \mbox{\hyperlink{g__audio_8c_source_l00077}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+callout}}, \mbox{\hyperlink{g__audio_8c_source_l00076}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+mtx}}, \mbox{\hyperlink{g__audio_8c_source_l00078}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+watchdog}}, \mbox{\hyperlink{g__audio_8c_source_l00079}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+xfer}}, \mbox{\hyperlink{usbdi_8h_source_l00497}{usb\+\_\+callout\+\_\+drain}}, \mbox{\hyperlink{usbdi_8h_source_l00489}{usb\+\_\+callout\+\_\+stop}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01431}{usbd\+\_\+transfer\+\_\+unsetup()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a773855f6b743eb93197a3ab220e28373_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a3a0518a450f3669de8e2c9452a8b7d85}\label{g__audio_8c_a3a0518a450f3669de8e2c9452a8b7d85}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_handle\_request@{g\_audio\_handle\_request}}
\index{g\_audio\_handle\_request@{g\_audio\_handle\_request}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_handle\_request()}{g\_audio\_handle\_request()}}
{\footnotesize\ttfamily static int g\+\_\+audio\+\_\+handle\+\_\+request (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{const void $\ast$}]{preq,  }\item[{void $\ast$$\ast$}]{pptr,  }\item[{uint16\+\_\+t $\ast$}]{plen,  }\item[{uint16\+\_\+t}]{offset,  }\item[{uint8\+\_\+t $\ast$}]{pstate }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00542}{542}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \textbf{ dev}, \mbox{\hyperlink{usb__if_8m_source_l00054}{offset}}, \mbox{\hyperlink{usb__if_8m_source_l00053}{plen}}, \mbox{\hyperlink{usb__if_8m_source_l00052}{pptr}}, \mbox{\hyperlink{usb__if_8m_source_l00055}{pstate}}, \mbox{\hyperlink{usb__if_8m_source_l00051}{req}}, \mbox{\hyperlink{g__audio_8c_source_l00096}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+sample\+\_\+rate}}, \mbox{\hyperlink{g__audio_8c_source_l00095}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+volume\+\_\+limit}}, \mbox{\hyperlink{g__audio_8c_source_l00094}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+volume\+\_\+setting}}, \mbox{\hyperlink{usb__endian_8h_source_l00077}{USETW}}, \mbox{\hyperlink{usb_8h_source_l00173}{UT\+\_\+\+READ\+\_\+\+CLASS\+\_\+\+INTERFACE}}, \mbox{\hyperlink{usb_8h_source_l00179}{UT\+\_\+\+WRITE\+\_\+\+CLASS\+\_\+\+ENDPOINT}}, and \mbox{\hyperlink{usb_8h_source_l00177}{UT\+\_\+\+WRITE\+\_\+\+CLASS\+\_\+\+INTERFACE}}.

\mbox{\Hypertarget{g__audio_8c_adb9ca8a604cd5040e056f02071bc3ab2}\label{g__audio_8c_adb9ca8a604cd5040e056f02071bc3ab2}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_isoc\_read\_callback@{g\_audio\_isoc\_read\_callback}}
\index{g\_audio\_isoc\_read\_callback@{g\_audio\_isoc\_read\_callback}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_isoc\_read\_callback()}{g\_audio\_isoc\_read\_callback()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+isoc\+\_\+read\+\_\+callback (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$}]{xfer,  }\item[{\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}}}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00487}{487}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{umass_8c_source_l00179}{DPRINTF}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{g__audio_8h_source_l00034}{G\+\_\+\+AUDIO\+\_\+\+BUFSIZE}}, \mbox{\hyperlink{g__audio_8h_source_l00033}{G\+\_\+\+AUDIO\+\_\+\+FRAMES}}, \mbox{\hyperlink{g__audio_8c_source_l00068}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+RD}}, \mbox{\hyperlink{g__audio_8c_source_l00070}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8c_source_l00071}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8c_source_l00092}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+data\+\_\+buf}}, \mbox{\hyperlink{g__audio_8c_source_l00090}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+data\+\_\+len}}, \mbox{\hyperlink{g__audio_8c_source_l00083}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+throughput}}, \mbox{\hyperlink{g__audio_8c_source_l00079}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+xfer}}, \mbox{\hyperlink{usbdi_8h_source_l00051}{USB\+\_\+\+ERR\+\_\+\+CANCELLED}}, \mbox{\hyperlink{usbdi_8h_source_l00515}{USB\+\_\+\+GET\+\_\+\+STATE}}, \mbox{\hyperlink{usbdi_8h_source_l00502}{USB\+\_\+\+ST\+\_\+\+SETUP}}, \mbox{\hyperlink{usbdi_8h_source_l00503}{USB\+\_\+\+ST\+\_\+\+TRANSFERRED}}, \mbox{\hyperlink{usb__error_8c_source_l00093}{usbd\+\_\+errstr()}}, \mbox{\hyperlink{usb__transfer_8c_source_l01948}{usbd\+\_\+transfer\+\_\+start()}}, \mbox{\hyperlink{usb__transfer_8c_source_l01719}{usbd\+\_\+transfer\+\_\+submit()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02192}{usbd\+\_\+xfer\+\_\+frame\+\_\+len()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02208}{usbd\+\_\+xfer\+\_\+set\+\_\+frame\+\_\+data()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02754}{usbd\+\_\+xfer\+\_\+set\+\_\+stall()}}, \mbox{\hyperlink{usb__transfer_8c_source_l03602}{usbd\+\_\+xfer\+\_\+softc()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l02247}{usbd\+\_\+xfer\+\_\+status()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_adb9ca8a604cd5040e056f02071bc3ab2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_adc99ce66594ce444654db1f333b0948d}\label{g__audio_8c_adc99ce66594ce444654db1f333b0948d}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_isoc\_write\_callback@{g\_audio\_isoc\_write\_callback}}
\index{g\_audio\_isoc\_write\_callback@{g\_audio\_isoc\_write\_callback}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_isoc\_write\_callback()}{g\_audio\_isoc\_write\_callback()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+isoc\+\_\+write\+\_\+callback (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$}]{xfer,  }\item[{\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}}}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00428}{428}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{umass_8c_source_l00179}{DPRINTF}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{g__audio_8h_source_l00034}{G\+\_\+\+AUDIO\+\_\+\+BUFSIZE}}, \mbox{\hyperlink{g__audio_8h_source_l00033}{G\+\_\+\+AUDIO\+\_\+\+FRAMES}}, \mbox{\hyperlink{g__audio_8c_source_l00070}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8c_source_l00407}{g\+\_\+audio\+\_\+make\+\_\+samples()}}, \mbox{\hyperlink{g__audio_8h_source_l00038}{G\+\_\+\+AUDIO\+\_\+\+MODE\+\_\+\+LOOP}}, \mbox{\hyperlink{g__audio_8h_source_l00039}{G\+\_\+\+AUDIO\+\_\+\+MODE\+\_\+\+PATTERN}}, \mbox{\hyperlink{g__audio_8c_source_l00092}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+data\+\_\+buf}}, \mbox{\hyperlink{g__audio_8c_source_l00090}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+data\+\_\+len}}, \mbox{\hyperlink{g__audio_8c_source_l00081}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+mode}}, \mbox{\hyperlink{g__audio_8c_source_l00083}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+throughput}}, \mbox{\hyperlink{g__audio_8c_source_l00079}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+xfer}}, \mbox{\hyperlink{usbdi_8h_source_l00051}{USB\+\_\+\+ERR\+\_\+\+CANCELLED}}, \mbox{\hyperlink{usbdi_8h_source_l00515}{USB\+\_\+\+GET\+\_\+\+STATE}}, \mbox{\hyperlink{usbdi_8h_source_l00502}{USB\+\_\+\+ST\+\_\+\+SETUP}}, \mbox{\hyperlink{usbdi_8h_source_l00503}{USB\+\_\+\+ST\+\_\+\+TRANSFERRED}}, \mbox{\hyperlink{usb__error_8c_source_l00093}{usbd\+\_\+errstr()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02208}{usbd\+\_\+xfer\+\_\+set\+\_\+frame\+\_\+data()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02754}{usbd\+\_\+xfer\+\_\+set\+\_\+stall()}}, \mbox{\hyperlink{usb__transfer_8c_source_l03602}{usbd\+\_\+xfer\+\_\+softc()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l02247}{usbd\+\_\+xfer\+\_\+status()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_adc99ce66594ce444654db1f333b0948d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a1a0e3ab34505308159a9c426221219d0}\label{g__audio_8c_a1a0e3ab34505308159a9c426221219d0}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_make\_samples@{g\_audio\_make\_samples}}
\index{g\_audio\_make\_samples@{g\_audio\_make\_samples}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_make\_samples()}{g\_audio\_make\_samples()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+make\+\_\+samples (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$}]{sc,  }\item[{int16\+\_\+t $\ast$}]{ptr,  }\item[{int}]{samples }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00407}{407}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00385}{g\+\_\+noise()}}, \mbox{\hyperlink{g__audio_8c_source_l00088}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+pattern}}, \mbox{\hyperlink{g__audio_8c_source_l00082}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+pattern\+\_\+len}}, and \mbox{\hyperlink{g__audio_8c_source_l00085}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+state}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00428}{g\+\_\+audio\+\_\+isoc\+\_\+write\+\_\+callback()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=304pt]{d0/d2e/g__audio_8c_a1a0e3ab34505308159a9c426221219d0_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a1a0e3ab34505308159a9c426221219d0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a01c9c1ad1eaa914b0609f2bb4e6b7e70}\label{g__audio_8c_a01c9c1ad1eaa914b0609f2bb4e6b7e70}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_probe@{g\_audio\_probe}}
\index{g\_audio\_probe@{g\_audio\_probe}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_probe()}{g\_audio\_probe()}}
{\footnotesize\ttfamily static int g\+\_\+audio\+\_\+probe (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00272}{272}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{usbdi_8h_source_l00414}{usbd\+\_\+lookup\+\_\+info\+::b\+Interface\+Class}}, \mbox{\hyperlink{usbdi_8h_source_l00415}{usbd\+\_\+lookup\+\_\+info\+::b\+Interface\+Sub\+Class}}, \textbf{ dev}, \mbox{\hyperlink{usbdi_8h_source_l00426}{usb\+\_\+attach\+\_\+arg\+::info}}, \mbox{\hyperlink{usb_8h_source_l00429}{UICLASS\+\_\+\+AUDIO}}, \mbox{\hyperlink{usb_8h_source_l00430}{UISUBCLASS\+\_\+\+AUDIOCONTROL}}, \mbox{\hyperlink{usbdi_8h_source_l00432}{usb\+\_\+attach\+\_\+arg\+::usb\+\_\+mode}}, and \mbox{\hyperlink{usb_8h_source_l00779}{USB\+\_\+\+MODE\+\_\+\+DEVICE}}.

\mbox{\Hypertarget{g__audio_8c_a168807024a8dcfb2aa34e9cd28c67a45}\label{g__audio_8c_a168807024a8dcfb2aa34e9cd28c67a45}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_timeout@{g\_audio\_timeout}}
\index{g\_audio\_timeout@{g\_audio\_timeout}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_timeout()}{g\_audio\_timeout()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+timeout (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00231}{231}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00070}{G\+\_\+\+AUDIO\+\_\+\+ISOC0\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8c_source_l00071}{G\+\_\+\+AUDIO\+\_\+\+ISOC1\+\_\+\+WR}}, \mbox{\hyperlink{g__audio_8h_source_l00032}{G\+\_\+\+AUDIO\+\_\+\+MAX\+\_\+\+STRLEN}}, \mbox{\hyperlink{g__audio_8c_source_l00109}{g\+\_\+audio\+\_\+mode}}, \mbox{\hyperlink{g__audio_8h_source_l00038}{G\+\_\+\+AUDIO\+\_\+\+MODE\+\_\+\+LOOP}}, \mbox{\hyperlink{g__audio_8c_source_l00119}{g\+\_\+audio\+\_\+pattern\+\_\+data}}, \mbox{\hyperlink{g__audio_8c_source_l00214}{g\+\_\+audio\+\_\+timeout\+\_\+reset()}}, \mbox{\hyperlink{g__audio_8c_source_l00081}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+mode}}, \mbox{\hyperlink{g__audio_8c_source_l00088}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+pattern}}, \mbox{\hyperlink{g__audio_8c_source_l00082}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+pattern\+\_\+len}}, \mbox{\hyperlink{g__audio_8c_source_l00079}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+xfer}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01948}{usbd\+\_\+transfer\+\_\+start()}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00214}{g\+\_\+audio\+\_\+timeout\+\_\+reset()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a168807024a8dcfb2aa34e9cd28c67a45_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a168807024a8dcfb2aa34e9cd28c67a45_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a77d1fcc586a6d9fcb8d689d397544168}\label{g__audio_8c_a77d1fcc586a6d9fcb8d689d397544168}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_timeout\_reset@{g\_audio\_timeout\_reset}}
\index{g\_audio\_timeout\_reset@{g\_audio\_timeout\_reset}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_timeout\_reset()}{g\_audio\_timeout\_reset()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+timeout\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00214}{214}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00114}{g\+\_\+audio\+\_\+pattern\+\_\+interval}}, \mbox{\hyperlink{g__audio_8c_source_l00231}{g\+\_\+audio\+\_\+timeout()}}, \mbox{\hyperlink{g__audio_8c_source_l00077}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+callout}}, \mbox{\hyperlink{g__audio_8c_source_l00084}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+tx\+\_\+interval}}, \mbox{\hyperlink{usbdi_8h_source_l00481}{usb\+\_\+callout\+\_\+reset}}, and \mbox{\hyperlink{usbdi_8h_source_l00120}{USB\+\_\+\+MS\+\_\+\+TO\+\_\+\+TICKS}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00289}{g\+\_\+audio\+\_\+attach()}}, and \mbox{\hyperlink{g__audio_8c_source_l00231}{g\+\_\+audio\+\_\+timeout()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a77d1fcc586a6d9fcb8d689d397544168_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=342pt]{d0/d2e/g__audio_8c_a77d1fcc586a6d9fcb8d689d397544168_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_ae12389d0c1f0e1d747c7bd4d4f4bb937}\label{g__audio_8c_ae12389d0c1f0e1d747c7bd4d4f4bb937}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_watchdog@{g\_audio\_watchdog}}
\index{g\_audio\_watchdog@{g\_audio\_watchdog}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_watchdog()}{g\_audio\_watchdog()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+watchdog (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00257}{257}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00124}{g\+\_\+audio\+\_\+throughput}}, \mbox{\hyperlink{g__audio_8c_source_l00251}{g\+\_\+audio\+\_\+watchdog\+\_\+reset()}}, and \mbox{\hyperlink{g__audio_8c_source_l00083}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+throughput}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00251}{g\+\_\+audio\+\_\+watchdog\+\_\+reset()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_ae12389d0c1f0e1d747c7bd4d4f4bb937_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_ae12389d0c1f0e1d747c7bd4d4f4bb937_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_af959a03d5fec79b0a0d8ddc632f3dfac}\label{g__audio_8c_af959a03d5fec79b0a0d8ddc632f3dfac}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_watchdog\_reset@{g\_audio\_watchdog\_reset}}
\index{g\_audio\_watchdog\_reset@{g\_audio\_watchdog\_reset}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_watchdog\_reset()}{g\_audio\_watchdog\_reset()}}
{\footnotesize\ttfamily static void g\+\_\+audio\+\_\+watchdog\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00251}{251}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00257}{g\+\_\+audio\+\_\+watchdog()}}, \mbox{\hyperlink{g__audio_8c_source_l00078}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+watchdog}}, and \mbox{\hyperlink{usbdi_8h_source_l00481}{usb\+\_\+callout\+\_\+reset}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00289}{g\+\_\+audio\+\_\+attach()}}, and \mbox{\hyperlink{g__audio_8c_source_l00257}{g\+\_\+audio\+\_\+watchdog()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_af959a03d5fec79b0a0d8ddc632f3dfac_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_af959a03d5fec79b0a0d8ddc632f3dfac_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_a91ec382a3e72d85993ce33eebcc4fdf2}\label{g__audio_8c_a91ec382a3e72d85993ce33eebcc4fdf2}} 
\index{g\_audio.c@{g\_audio.c}!g\_noise@{g\_noise}}
\index{g\_noise@{g\_noise}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_noise()}{g\_noise()}}
{\footnotesize\ttfamily static int32\+\_\+t g\+\_\+noise (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structg__audio__softc}{g\+\_\+audio\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00385}{385}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



References \mbox{\hyperlink{g__audio_8c_source_l00086}{g\+\_\+audio\+\_\+softc\+::sc\+\_\+noise\+\_\+rem}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00407}{g\+\_\+audio\+\_\+make\+\_\+samples()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d2e/g__audio_8c_a91ec382a3e72d85993ce33eebcc4fdf2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__audio_8c_ada0076abc9daf9d8548279656641e8b3}\label{g__audio_8c_ada0076abc9daf9d8548279656641e8b3}} 
\index{g\_audio.c@{g\_audio.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{g\+\_\+audio}]{,  }\item[{\mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}}]{,  }\item[{1}]{,  }\item[{1}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_afc865fff93590c79eb24db8bd4551ebc}\label{g__audio_8c_afc865fff93590c79eb24db8bd4551ebc}} 
\index{g\_audio.c@{g\_audio.c}!SYSCTL\_INT@{SYSCTL\_INT}}
\index{SYSCTL\_INT@{SYSCTL\_INT}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_INT()}{SYSCTL\_INT()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily SYSCTL\+\_\+\+INT (\begin{DoxyParamCaption}\item[{\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{mode}]{,  }\item[{CTLFLAG\+\_\+\+RWTUN}]{,  }\item[{\&}]{g\+\_\+audio\+\_\+mode,  }\item[{0}]{,  }\item[{\char`\"{}Mode selection\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_aeecd148428b7c13d57bcf9d770bd76c9}\label{g__audio_8c_aeecd148428b7c13d57bcf9d770bd76c9}} 
\index{g\_audio.c@{g\_audio.c}!SYSCTL\_INT@{SYSCTL\_INT}}
\index{SYSCTL\_INT@{SYSCTL\_INT}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_INT()}{SYSCTL\_INT()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily SYSCTL\+\_\+\+INT (\begin{DoxyParamCaption}\item[{\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{pattern\+\_\+interval}]{,  }\item[{CTLFLAG\+\_\+\+RWTUN}]{,  }\item[{\&}]{g\+\_\+audio\+\_\+pattern\+\_\+interval,  }\item[{0}]{,  }\item[{\char`\"{}Pattern interval in milliseconds\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_abc93ed3c2caf42f4b0bb81c2afb5ae52}\label{g__audio_8c_abc93ed3c2caf42f4b0bb81c2afb5ae52}} 
\index{g\_audio.c@{g\_audio.c}!SYSCTL\_INT@{SYSCTL\_INT}}
\index{SYSCTL\_INT@{SYSCTL\_INT}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_INT()}{SYSCTL\_INT()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily SYSCTL\+\_\+\+INT (\begin{DoxyParamCaption}\item[{\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{throughput}]{,  }\item[{CTLFLAG\+\_\+\+RD}]{,  }\item[{\&}]{g\+\_\+audio\+\_\+throughput,  }\item[{sizeof(\mbox{\hyperlink{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}{g\+\_\+audio\+\_\+throughput}})}]{,  }\item[{\char`\"{}Throughput in bytes per second\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__audio_8c_a1c2ce8144a35775de70fc13362299b3a}\label{g__audio_8c_a1c2ce8144a35775de70fc13362299b3a}} 
\index{g\_audio.c@{g\_audio.c}!SYSCTL\_NODE@{SYSCTL\_NODE}}
\index{SYSCTL\_NODE@{SYSCTL\_NODE}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_NODE()}{SYSCTL\_NODE()}}
{\footnotesize\ttfamily static SYSCTL\+\_\+\+NODE (\begin{DoxyParamCaption}\item[{\+\_\+hw\+\_\+usb}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{g\+\_\+audio}]{,  }\item[{CTLFLAG\+\_\+\+RW$\vert$}]{CTLFLAG\+\_\+\+MPSAFE,  }\item[{0}]{,  }\item[{\char`\"{}USB audio gadget\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{g__audio_8c_a5b2366cc4d04672fb674775660109e5b}\label{g__audio_8c_a5b2366cc4d04672fb674775660109e5b}} 
\index{g\_audio.c@{g\_audio.c}!SYSCTL\_STRING@{SYSCTL\_STRING}}
\index{SYSCTL\_STRING@{SYSCTL\_STRING}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_STRING()}{SYSCTL\_STRING()}}
{\footnotesize\ttfamily SYSCTL\+\_\+\+STRING (\begin{DoxyParamCaption}\item[{\+\_\+hw\+\_\+usb\+\_\+g\+\_\+audio}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{pattern}]{,  }\item[{CTLFLAG\+\_\+\+RW}]{,  }\item[{\&}]{g\+\_\+audio\+\_\+pattern\+\_\+data,  }\item[{sizeof(\mbox{\hyperlink{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}{g\+\_\+audio\+\_\+pattern\+\_\+data}})}]{,  }\item[{\char`\"{}Data pattern\char`\"{}}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{g__audio_8c_ad2f501ab3ac8de1ab63713abfcfe73a1}\label{g__audio_8c_ad2f501ab3ac8de1ab63713abfcfe73a1}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_attach@{g\_audio\_attach}}
\index{g\_audio\_attach@{g\_audio\_attach}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_attach}{g\_audio\_attach}}
{\footnotesize\ttfamily device\+\_\+attach\+\_\+t g\+\_\+audio\+\_\+attach\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00130}{130}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a02ca9418ae21aa5f7855b75c55696d1a}\label{g__audio_8c_a02ca9418ae21aa5f7855b75c55696d1a}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_config@{g\_audio\_config}}
\index{g\_audio\_config@{g\_audio\_config}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_config}{g\_audio\_config}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structusb__config}{usb\+\_\+config}} g\+\_\+audio\+\_\+config\mbox{[}\mbox{\hyperlink{g__audio_8c_abc6126af1d45847bc59afa0aa3216b04a68dea0ad423a90b2144b62111011285f}{G\+\_\+\+AUDIO\+\_\+\+N\+\_\+\+TRANSFER}}\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00163}{163}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00289}{g\+\_\+audio\+\_\+attach()}}.

\mbox{\Hypertarget{g__audio_8c_a05743eb2a9d100f91d7a5b72710c21e7}\label{g__audio_8c_a05743eb2a9d100f91d7a5b72710c21e7}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_detach@{g\_audio\_detach}}
\index{g\_audio\_detach@{g\_audio\_detach}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_detach}{g\_audio\_detach}}
{\footnotesize\ttfamily device\+\_\+detach\+\_\+t g\+\_\+audio\+\_\+detach\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00131}{131}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00289}{g\+\_\+audio\+\_\+attach()}}.

\mbox{\Hypertarget{g__audio_8c_a4120cd7866c1da342e1964d2ed21ad9f}\label{g__audio_8c_a4120cd7866c1da342e1964d2ed21ad9f}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_devclass@{g\_audio\_devclass}}
\index{g\_audio\_devclass@{g\_audio\_devclass}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_devclass}{g\_audio\_devclass}}
{\footnotesize\ttfamily devclass\+\_\+t g\+\_\+audio\+\_\+devclass\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00137}{137}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a3d1c555e81ca8b937d547ae03f86eaaf}\label{g__audio_8c_a3d1c555e81ca8b937d547ae03f86eaaf}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_driver@{g\_audio\_driver}}
\index{g\_audio\_driver@{g\_audio\_driver}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_driver}{g\_audio\_driver}}
{\footnotesize\ttfamily driver\+\_\+t g\+\_\+audio\+\_\+driver\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}g\_audio"{}},}
\DoxyCodeLine{        .methods = \mbox{\hyperlink{g__audio_8c_a9a24ffee22fbb701037415fac0ec926f}{g\_audio\_methods}},}
\DoxyCodeLine{        .size = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structg__audio__softc}{g\_audio\_softc}}),}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{g__audio_8c_source_l00154}{154}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a47f61f5d8fe9513c92a71cbf453e9ebc}\label{g__audio_8c_a47f61f5d8fe9513c92a71cbf453e9ebc}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_handle\_request@{g\_audio\_handle\_request}}
\index{g\_audio\_handle\_request@{g\_audio\_handle\_request}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_handle\_request}{g\_audio\_handle\_request}}
{\footnotesize\ttfamily usb\+\_\+handle\+\_\+request\+\_\+t g\+\_\+audio\+\_\+handle\+\_\+request\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00132}{132}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a4c3b16f95df1c724ca5413a96c496f57}\label{g__audio_8c_a4c3b16f95df1c724ca5413a96c496f57}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_isoc\_read\_callback@{g\_audio\_isoc\_read\_callback}}
\index{g\_audio\_isoc\_read\_callback@{g\_audio\_isoc\_read\_callback}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_isoc\_read\_callback}{g\_audio\_isoc\_read\_callback}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} g\+\_\+audio\+\_\+isoc\+\_\+read\+\_\+callback\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00134}{134}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_abe1f72be9e53db8317bc3348b2ce2c7f}\label{g__audio_8c_abe1f72be9e53db8317bc3348b2ce2c7f}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_isoc\_write\_callback@{g\_audio\_isoc\_write\_callback}}
\index{g\_audio\_isoc\_write\_callback@{g\_audio\_isoc\_write\_callback}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_isoc\_write\_callback}{g\_audio\_isoc\_write\_callback}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} g\+\_\+audio\+\_\+isoc\+\_\+write\+\_\+callback\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00135}{135}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a9a24ffee22fbb701037415fac0ec926f}\label{g__audio_8c_a9a24ffee22fbb701037415fac0ec926f}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_methods@{g\_audio\_methods}}
\index{g\_audio\_methods@{g\_audio\_methods}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_methods}{g\_audio\_methods}}
{\footnotesize\ttfamily device\+\_\+method\+\_\+t g\+\_\+audio\+\_\+methods\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        }
\DoxyCodeLine{        DEVMETHOD(\mbox{\hyperlink{usb__handle__request_8c_acd7ff252b93f3bd9e87d0f8b3eb3ffa5}{usb\_handle\_request}}, \mbox{\hyperlink{g__audio_8c_a47f61f5d8fe9513c92a71cbf453e9ebc}{g\_audio\_handle\_request}}),}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        DEVMETHOD(device\_probe, \mbox{\hyperlink{g__audio_8c_ac334bed57a350fe48c02cf2ebfa5e812}{g\_audio\_probe}}),}
\DoxyCodeLine{        DEVMETHOD(device\_attach, \mbox{\hyperlink{g__audio_8c_ad2f501ab3ac8de1ab63713abfcfe73a1}{g\_audio\_attach}}),}
\DoxyCodeLine{        DEVMETHOD(device\_detach, \mbox{\hyperlink{g__audio_8c_a05743eb2a9d100f91d7a5b72710c21e7}{g\_audio\_detach}}),}
\DoxyCodeLine{}
\DoxyCodeLine{        DEVMETHOD\_END}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{g__audio_8c_source_l00142}{142}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_ab650ad063e37b850cc5ef75aa63dfe66}\label{g__audio_8c_ab650ad063e37b850cc5ef75aa63dfe66}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_mode@{g\_audio\_mode}}
\index{g\_audio\_mode@{g\_audio\_mode}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_mode}{g\_audio\_mode}}
{\footnotesize\ttfamily int g\+\_\+audio\+\_\+mode = 0\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00109}{109}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00231}{g\+\_\+audio\+\_\+timeout()}}.

\mbox{\Hypertarget{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}\label{g__audio_8c_aa53331045606aba77e59ebc3a3be4615}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_pattern\_data@{g\_audio\_pattern\_data}}
\index{g\_audio\_pattern\_data@{g\_audio\_pattern\_data}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_pattern\_data}{g\_audio\_pattern\_data}}
{\footnotesize\ttfamily char g\+\_\+audio\+\_\+pattern\+\_\+data\mbox{[}\mbox{\hyperlink{g__audio_8h_a35a5fee9becdc3d82b3672c7ae52f71f}{G\+\_\+\+AUDIO\+\_\+\+MAX\+\_\+\+STRLEN}}\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00119}{119}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00231}{g\+\_\+audio\+\_\+timeout()}}.

\mbox{\Hypertarget{g__audio_8c_ab1a7a5db7aead6acd8395665edfa8922}\label{g__audio_8c_ab1a7a5db7aead6acd8395665edfa8922}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_pattern\_interval@{g\_audio\_pattern\_interval}}
\index{g\_audio\_pattern\_interval@{g\_audio\_pattern\_interval}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_pattern\_interval}{g\_audio\_pattern\_interval}}
{\footnotesize\ttfamily int g\+\_\+audio\+\_\+pattern\+\_\+interval = 1000\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00114}{114}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00214}{g\+\_\+audio\+\_\+timeout\+\_\+reset()}}.

\mbox{\Hypertarget{g__audio_8c_ac334bed57a350fe48c02cf2ebfa5e812}\label{g__audio_8c_ac334bed57a350fe48c02cf2ebfa5e812}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_probe@{g\_audio\_probe}}
\index{g\_audio\_probe@{g\_audio\_probe}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_probe}{g\_audio\_probe}}
{\footnotesize\ttfamily device\+\_\+probe\+\_\+t g\+\_\+audio\+\_\+probe\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00129}{129}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.

\mbox{\Hypertarget{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}\label{g__audio_8c_a9b6777a108b81fd9c3cec75cedad7190}} 
\index{g\_audio.c@{g\_audio.c}!g\_audio\_throughput@{g\_audio\_throughput}}
\index{g\_audio\_throughput@{g\_audio\_throughput}!g\_audio.c@{g\_audio.c}}
\doxysubsubsection{\texorpdfstring{g\_audio\_throughput}{g\_audio\_throughput}}
{\footnotesize\ttfamily int g\+\_\+audio\+\_\+throughput\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{g__audio_8c_source_l00124}{124}} of file \mbox{\hyperlink{g__audio_8c_source}{g\+\_\+audio.\+c}}.



Referenced by \mbox{\hyperlink{g__audio_8c_source_l00257}{g\+\_\+audio\+\_\+watchdog()}}.

