\hypertarget{gsttensor__srciio_8c}{}\doxysection{nnstreamer/elements/gsttensor\+\_\+srciio.c File Reference}
\label{gsttensor__srciio_8c}\index{nnstreamer/elements/gsttensor\_srciio.c@{nnstreamer/elements/gsttensor\_srciio.c}}


G\+Streamer plugin to capture sensor data as tensor(s)  


{\ttfamily \#include $<$gst/gstinfo.\+h$>$}\newline
{\ttfamily \#include $<$gst/gst.\+h$>$}\newline
{\ttfamily \#include $<$glib.\+h$>$}\newline
{\ttfamily \#include $<$glib/gstdio.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$endian.\+h$>$}\newline
{\ttfamily \#include $<$fcntl.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+util.\+h$>$}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+srciio.\+h\char`\"{}}\newline
Include dependency graph for gsttensor\+\_\+srciio.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a49606be7356624568932ec81c0d429f4}{D\+BG}}~(!self-\/$>$silent)
\begin{DoxyCompactList}\small\item\em Macro for debug mode. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_adef911caed7c65a1643062817f4a59d7}{G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT}}~gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+debug
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a9701570ea6a4f0a9931da70fa580f5d3}{P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA}}(D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED,  D\+T\+Y\+P\+E\+\_\+\+S\+I\+G\+N\+ED)
\begin{DoxyCompactList}\small\item\em Macro to generate data processing functions for various types. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ad52a04b281bae3bc59e1adbe2ae2b5b8}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+B\+A\+S\+E\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY}}~\char`\"{}/sys/bus/iio/devices\char`\"{}
\begin{DoxyCompactList}\small\item\em I\+IO system paths. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_adcb918916c35aa07683fc4009f77ebc4}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+D\+E\+V\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY}}~\char`\"{}/dev\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a5697af3c2df6c993390e12d71874f6f6}{C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+U\+T\+O\+\_\+\+C\+H\+AR}}~\char`\"{}auto\char`\"{}
\begin{DoxyCompactList}\small\item\em iio device channel enabled mode \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a7383cf4c76130cf0c5834512c7e689f5}{C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+L\+L\+\_\+\+C\+H\+AR}}~\char`\"{}all\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a1dfedced778c0cc733705936b950ce55}{D\+E\+F\+A\+U\+L\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+N\+G\+\_\+\+C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+ED}}~\mbox{\hyperlink{gsttensor__srciio_8c_a5697af3c2df6c993390e12d71874f6f6}{C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+U\+T\+O\+\_\+\+C\+H\+AR}}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a4042150fc85394eb0479a48d0db86d33}{M\+O\+D\+E\+\_\+\+O\+N\+E\+\_\+\+S\+H\+OT}}~\char`\"{}one-\/shot\char`\"{}
\begin{DoxyCompactList}\small\item\em tensor\+\_\+src\+\_\+iio device modes \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a56bd36862cc58dceab696af7fe12de8d}{M\+O\+D\+E\+\_\+\+C\+O\+N\+T\+I\+N\+U\+O\+US}}~\char`\"{}continuous\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a8168bc84f5897307a95e8754ef5a6882}{D\+E\+F\+A\+U\+L\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+N\+G\+\_\+\+M\+O\+DE}}~\mbox{\hyperlink{gsttensor__srciio_8c_a56bd36862cc58dceab696af7fe12de8d}{M\+O\+D\+E\+\_\+\+C\+O\+N\+T\+I\+N\+U\+O\+US}}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a15044eef4e2704ad4fa2c0db3eb2734f}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT}}~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}
\begin{DoxyCompactList}\small\item\em Flag to print minimized log. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_adff275e961fa0b0374d145b70fd78325}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+S\+T\+R\+I\+NG}}~N\+U\+LL
\begin{DoxyCompactList}\small\item\em Flag for general default value of string. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a13a9f8c6bfbcf4b4bfabf528c0ca07a7}{M\+I\+N\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY}}~1
\begin{DoxyCompactList}\small\item\em Minimum and maximum buffer length for iio. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_abf66b7e343688d4554e656c83c5d4c73}{M\+A\+X\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY}}~G\+\_\+\+M\+A\+X\+U\+I\+NT
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a3ad1f45f1a1677795f690af8cd99bf24}{D\+E\+F\+A\+U\+L\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY}}~1
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_aea88670257377b3103f3fbc73135949f}{M\+I\+N\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY}}~0
\begin{DoxyCompactList}\small\item\em Minimum and maximum operating frequency for the device Frequency 0 chooses the first available frequency supported by device. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a1fcff99f421f1bc8a1bbdb641ca0324e}{M\+A\+X\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY}}~G\+\_\+\+M\+A\+X\+U\+L\+O\+NG
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a052b63090cda80236391c5fc0c1fe30c}{D\+E\+F\+A\+U\+L\+T\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY}}~0
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a274888c3f2a427a39083739c7d5952e6}{M\+I\+N\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT}}~-\/1
\begin{DoxyCompactList}\small\item\em Minimum and maximum polling timeout for the buffered reading. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a0b9530d29e629c242c8922133fda6751}{M\+A\+X\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT}}~G\+\_\+\+M\+A\+X\+I\+NT
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a4cc56fd8b96d2c41759f7fb0331c13b8}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT}}~10000
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ab45a88144fffa6693010e989a142133d}{D\+E\+F\+A\+U\+L\+T\+\_\+\+M\+E\+R\+G\+E\+\_\+\+C\+H\+A\+N\+N\+E\+LS}}~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}
\begin{DoxyCompactList}\small\item\em Default behavior on merging channels. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a0cf4a48d15e9f969d54b5c1a5dfdb956}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+N\+UM}}~-\/1
\begin{DoxyCompactList}\small\item\em default trigger and device numbers \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_afc9c14c21b9ee1d1d70f51ec5fb97424}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+E\+R\+\_\+\+N\+UM}}~-\/1
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_afcf795f5a96fd55561abe69f56224630}{B\+L\+O\+C\+K\+S\+I\+ZE}}~1
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a775d096fbc3988fb7ed858b79ef44e22}{D\+E\+V\+I\+CE}}~\char`\"{}device\char`\"{}
\begin{DoxyCompactList}\small\item\em I\+IO devices/triggers. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a05ec23ea9e68706e210bd8f965beee10}{B\+U\+F\+F\+ER}}~\char`\"{}buffer\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a86de85f5177dabb5ff712bf180db43aa}{T\+R\+I\+G\+G\+ER}}~\char`\"{}trigger\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a19b7f1b22403d61234a92decaeb6953a}{C\+H\+A\+N\+N\+E\+LS}}~\char`\"{}scan\+\_\+elements\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}{I\+IO}}~\char`\"{}iio\+:\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ac59bf49f337079e65fe54acbfa21977e}{T\+I\+M\+E\+S\+T\+A\+MP}}~\char`\"{}timestamp\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_aca4cce808da981a9c81da6362c9659c2}{D\+E\+V\+I\+C\+E\+\_\+\+P\+R\+E\+F\+IX}}~\mbox{\hyperlink{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}{I\+IO}} \mbox{\hyperlink{gsttensor__srciio_8c_a775d096fbc3988fb7ed858b79ef44e22}{D\+E\+V\+I\+CE}}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ad010cf31d5759dec1bd9d331d8267faf}{T\+R\+I\+G\+G\+E\+R\+\_\+\+P\+R\+E\+F\+IX}}~\mbox{\hyperlink{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}{I\+IO}} \mbox{\hyperlink{gsttensor__srciio_8c_a86de85f5177dabb5ff712bf180db43aa}{T\+R\+I\+G\+G\+ER}}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_af7f030060373950b442d65d73f745b03}{C\+U\+R\+R\+E\+N\+T\+\_\+\+T\+R\+I\+G\+G\+ER}}~\char`\"{}current\+\_\+trigger\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_aaa04dcddfd619533e00e127161ad705d}{E\+N\+\_\+\+S\+U\+F\+F\+IX}}~\char`\"{}\+\_\+en\char`\"{}
\begin{DoxyCompactList}\small\item\em I\+IO device channels. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a4d599eea3e3f09271468360062eb330e}{I\+N\+D\+E\+X\+\_\+\+S\+U\+F\+F\+IX}}~\char`\"{}\+\_\+index\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a2ae6501e1bdf90bd4ba3fd52fb5be2b0}{T\+Y\+P\+E\+\_\+\+S\+U\+F\+F\+IX}}~\char`\"{}\+\_\+type\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a432b56451856c8a0c1b22c82e04b8904}{S\+C\+A\+L\+E\+\_\+\+S\+U\+F\+F\+IX}}~\char`\"{}\+\_\+scale\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a4851a701e0bc409047e8c5102c4e3d28}{O\+F\+F\+S\+E\+T\+\_\+\+S\+U\+F\+F\+IX}}~\char`\"{}\+\_\+offset\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_aa873f83fb4c7537d2c68b10e54db2aea}{N\+A\+M\+E\+\_\+\+F\+I\+LE}}~\char`\"{}name\char`\"{}
\begin{DoxyCompactList}\small\item\em filenames for I\+IO devices/triggers characteristics \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_ac0db2e207f8669e86d902c61fa5a313e}{A\+V\+A\+I\+L\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+C\+Y\+\_\+\+F\+I\+LE}}~\char`\"{}sampling\+\_\+frequency\+\_\+available\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_a282b5ca7d691d6a8ca66c15a0fc0707b}{S\+A\+M\+P\+L\+I\+N\+G\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY}}~\char`\"{}sampling\+\_\+frequency\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__srciio_8c_aadad45caca909c40627f1fca70737eaf}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+parent\+\_\+class}}~parent\+\_\+class
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \newline
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ac37dda0da1a44e10c0504afeeb863f3c}{P\+R\+O\+P\+\_\+0}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a0b5a29cfd0fc43c914507e65e3aec94f}{P\+R\+O\+P\+\_\+\+M\+O\+DE}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a707b785966c328fb5a6088b7879c7bb5}{P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8051d5752b069d300bfb59cbe73cbc95}{P\+R\+O\+P\+\_\+\+B\+A\+S\+E\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY}}, 
\newline
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5af6f6c137af3390637212d66531ef18ad}{P\+R\+O\+P\+\_\+\+D\+E\+V\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4501e14d515bde987f80221b075cf6b4}{P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+CE}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8a306a8cb84a5b8c7d3df21fcd4f247d}{P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+N\+UM}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4fd6d8b5b5ef3991c0d0a54d4edeb01c}{P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+ER}}, 
\newline
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a1f1a3cb527fc4c0e7d6c17ded6a7736f}{P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+E\+R\+\_\+\+N\+UM}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa80e864067b789aa66bded492541a50f}{P\+R\+O\+P\+\_\+\+C\+H\+A\+N\+N\+E\+LS}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ab1b1e313575cc7f7ca3d3975c09ed202}{P\+R\+O\+P\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa40bd4945c490484eb5097f092d2202c}{P\+R\+O\+P\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY}}, 
\newline
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa7611f4a8151a56bcbedbc2812aeff6e}{P\+R\+O\+P\+\_\+\+M\+E\+R\+G\+E\+\_\+\+C\+H\+A\+N\+N\+E\+LS}}, 
\mbox{\hyperlink{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a278c20e28ab5323c1e9a8f9e65cb7bf8}{P\+R\+O\+P\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT}}
 \}
\begin{DoxyCompactList}\small\item\em tensor\+\_\+src\+\_\+iio properties. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a244d7d5b7a3c3f4712c743ce7a945cf9}{G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC}} (gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+debug)
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_adc3c53abec02288da58747d5a1eb3ab4}{g\+\_\+assert}} (sizeof(D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED)==sizeof(D\+T\+Y\+P\+E\+\_\+\+S\+I\+G\+N\+ED))
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}{value\+\_\+unsigned}} \& \mbox{\hyperlink{gsttensor__srciio_8c_a292773a123394f43e4a7aef4a02c765b}{if}} (\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}-\/$>$is\+\_\+signed)
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a0627526987fedce5cbca6503c0d83653}{P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA}} (guint8, gint8)
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a7960ea76adb9c73e88cec03ac1c477c0}{P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA}} (guint16, gint16)
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a1c91e735c0cf40413193165215b8f4af}{P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA}} (guint32, gint32)
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a8534d0fa5bc2736e56b8dfc8416fb3a8}{P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA}} (guint64, gint64)
\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_ad922d7615753e983662b8dc008f19480}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, const G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em set tensor\+\_\+src\+\_\+iio properties \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_aeddaebddc11b3a8d23c342759c8e4068}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em get tensor\+\_\+src\+\_\+iio properties \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_a535bd7c232dcb6c563b91f11d34559fd}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+finalize}} (G\+Object $\ast$object)
\begin{DoxyCompactList}\small\item\em finalize the instance \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a8c3e98cc67bb0ea143ea2405809e19cc}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+start}} (Gst\+Base\+Src $\ast$src)
\begin{DoxyCompactList}\small\item\em start function, called when state changed null to ready. load the device and init the device resources \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_aad993a3a87f2d916269b7d6446a650eb}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+stop}} (Gst\+Base\+Src $\ast$src)
\begin{DoxyCompactList}\small\item\em stop function, called when state changed ready to null. \end{DoxyCompactList}\item 
static Gst\+State\+Change\+Return \mbox{\hyperlink{gsttensor__srciio_8c_ab8cfc5d220f41b942259576da7c660ba}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+change\+\_\+state}} (Gst\+Element $\ast$element, Gst\+State\+Change transition)
\begin{DoxyCompactList}\small\item\em Perform state change. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a324d0aac5229bcb8e16e461f2034f244}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+event}} (Gst\+Base\+Src $\ast$src, Gst\+Event $\ast$event)
\begin{DoxyCompactList}\small\item\em handle events \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a69a243f9f192f05d594c52126dfc0d3d}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+caps}} (Gst\+Base\+Src $\ast$src, Gst\+Caps $\ast$caps)
\begin{DoxyCompactList}\small\item\em set new caps \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__srciio_8c_aea50990e420a7fb07f7bae1dda57d13e}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+caps}} (Gst\+Base\+Src $\ast$src, Gst\+Caps $\ast$filter)
\begin{DoxyCompactList}\small\item\em get caps of subclass \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__srciio_8c_a56f6c2d98be2c793ec9f468cce87cf84}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+fixate}} (Gst\+Base\+Src $\ast$src, Gst\+Caps $\ast$caps)
\begin{DoxyCompactList}\small\item\em fixate the caps when needed during negotiation \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a1157b25e2d9819a5e82030d1d515baf3}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+is\+\_\+seekable}} (Gst\+Base\+Src $\ast$src)
\begin{DoxyCompactList}\small\item\em check if source supports seeking \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__srciio_8c_a29b40ebc8718bb6387993dd650c38014}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+create}} (Gst\+Base\+Src $\ast$src, guint64 offset, guint size, Gst\+Buffer $\ast$$\ast$buffer)
\begin{DoxyCompactList}\small\item\em create a buffer with requested size and offset \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__srciio_8c_adba134a793d3258dcc32b7ec069c842d}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+fill}} (Gst\+Base\+Src $\ast$src, guint64 offset, guint size, Gst\+Buffer $\ast$buffer)
\begin{DoxyCompactList}\small\item\em fill the buffer with data \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_aa446ed907fc831d099fc7c817cd3ab1b}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+times}} (Gst\+Base\+Src $\ast$basesrc, Gst\+Buffer $\ast$buffer, Gst\+Clock\+Time $\ast$start, Gst\+Clock\+Time $\ast$end)
\begin{DoxyCompactList}\small\item\em returns the time for the buffers \end{DoxyCompactList}\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a395bc4990f9bdfcefc56bc58e2e0c4e3}{G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}}, gst\+\_\+tensor\+\_\+src\+\_\+iio, G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+A\+S\+E\+\_\+\+S\+RC)
\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_abc94da9a965385b3d12a1e665e7f80b6}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+class\+\_\+init}} (\mbox{\hyperlink{gsttensor__srciio_8h_ae2ebb8a86321759cb60e721ef001fd39}{Gst\+Tensor\+Src\+I\+I\+O\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em initialize the tensor\+\_\+src\+\_\+iio class. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_a52795ca44b208df547fc289328bcbddf}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+channel\+\_\+properties\+\_\+free}} (gpointer \mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})
\begin{DoxyCompactList}\small\item\em delete Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties structure \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_ac2d7b4ff009c2f567ff82b83f8f364d9}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+device\+\_\+properties\+\_\+init}} (\mbox{\hyperlink{gsttensor__srciio_8h_af0190a2968bcbc19be7f5913db8e49a9}{Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}})
\begin{DoxyCompactList}\small\item\em initialize Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties structure \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_a487641bd0664075e38611cfe6369d881}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+init}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em initialize tensor\+\_\+src\+\_\+iio element. \end{DoxyCompactList}\item 
static gint \mbox{\hyperlink{gsttensor__srciio_8c_a57fbe4d90a65044ab0e31545e814761f}{gst\+\_\+tensor\+\_\+src\+\_\+merge\+\_\+tensor\+\_\+by\+\_\+type}} (\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$info, guint size, guint dir)
\begin{DoxyCompactList}\small\item\em merge multiple other/tensor \end{DoxyCompactList}\item 
static gint \mbox{\hyperlink{gsttensor__srciio_8c_a3c7ea5580e715f1b41705c5cd1b38f72}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+id\+\_\+by\+\_\+name}} (const gchar $\ast$dir\+\_\+name, const gchar $\ast$name, const gchar $\ast$prefix)
\begin{DoxyCompactList}\small\item\em check if device/trigger with the given name exists \end{DoxyCompactList}\item 
static gchar $\ast$ \mbox{\hyperlink{gsttensor__srciio_8c_a833f3bf2efdae6df936ba5840f5a4d88}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+name\+\_\+by\+\_\+id}} (const gchar $\ast$dir\+\_\+name, const gint id, const gchar $\ast$prefix)
\begin{DoxyCompactList}\small\item\em check if device/trigger with the given id exists \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a9229ff541a9f8e350a8eed47c0db6cc7}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+float\+\_\+from\+\_\+file}} (const gchar $\ast$dirname, const gchar $\ast$name, const gchar $\ast$suffix, gfloat $\ast$value)
\begin{DoxyCompactList}\small\item\em parse float value from the file \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_aa047c2ab5c61dd02eab296d08f15070a}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+channel\+\_\+type}} (\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, const gchar $\ast$contents)
\begin{DoxyCompactList}\small\item\em get type info about the channel from the string \end{DoxyCompactList}\item 
static gchar $\ast$ \mbox{\hyperlink{gsttensor__srciio_8c_a7438af8dedf892248e9f614220d37a0f}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+generic\+\_\+name}} (const gchar $\ast$channel\+\_\+name)
\begin{DoxyCompactList}\small\item\em get generic name for channel from the string \end{DoxyCompactList}\item 
static gint \mbox{\hyperlink{gsttensor__srciio_8c_acca01958ac27d4623029cdcfcf1ee21b}{gst\+\_\+tensor\+\_\+channel\+\_\+list\+\_\+sort\+\_\+cmp}} (gconstpointer a, gconstpointer b)
\begin{DoxyCompactList}\small\item\em compare channels for sort based on their indices \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_a413cc18407c30b0d6341ee7c3f10114a}{gst\+\_\+tensor\+\_\+channel\+\_\+list\+\_\+filter\+\_\+enabled}} (gpointer \mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}}, gpointer user\+\_\+data)
\begin{DoxyCompactList}\small\item\em compare channels for filtering if enabled \end{DoxyCompactList}\item 
static gint \mbox{\hyperlink{gsttensor__srciio_8c_adc502bf8eb7aefb8dfd9e563763a2546}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+all\+\_\+channel\+\_\+info}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self, const gchar $\ast$dir\+\_\+name)
\begin{DoxyCompactList}\small\item\em get info about all the channels in the device \end{DoxyCompactList}\item 
static gint64 \mbox{\hyperlink{gsttensor__srciio_8c_adf900d522338e25fea00e258d37817eb}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+available\+\_\+frequency}} (const gchar $\ast$base\+\_\+dir, const guint64 frequency)
\begin{DoxyCompactList}\small\item\em return sampling frequency given the frequency input from user \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_abe79325b5e702eec89a923f3089b4f39}{gst\+\_\+tensor\+\_\+write\+\_\+sysfs\+\_\+string}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self, const gchar $\ast$file, const gchar $\ast$base\+\_\+dir, const gchar $\ast$contents)
\begin{DoxyCompactList}\small\item\em write the string in to the file \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_af90f8a0285176e622b4bd28e3cfcca46}{gst\+\_\+tensor\+\_\+write\+\_\+sysfs\+\_\+int}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self, const gchar $\ast$file, const gchar $\ast$base\+\_\+dir, const gint contents)
\begin{DoxyCompactList}\small\item\em write the int in to the file \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a0976c1bba48ebb38101c89d1b172b7ee}{gst\+\_\+tensor\+\_\+set\+\_\+all\+\_\+channels}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self, const gint contents)
\begin{DoxyCompactList}\small\item\em set value to all the channels \end{DoxyCompactList}\item 
static guint \mbox{\hyperlink{gsttensor__srciio_8c_a793cabf3e42161f550a5c79e708fcbcb}{gst\+\_\+tensor\+\_\+get\+\_\+size\+\_\+from\+\_\+channels}} (G\+List $\ast$channels)
\begin{DoxyCompactList}\small\item\em get the size of the combined data from channels \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_aaf339e04c86eb51f175f3f185089da90}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+create\+\_\+config}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$tensor\+\_\+src\+\_\+iio)
\begin{DoxyCompactList}\small\item\em create the structure for the caps to update the src pad caps \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_ae37a970d0be0e2a4652728e3c9018a84}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+device\+\_\+properties}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em setup device using name/id \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a1d55237730283664a6e13083a6f44a48}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+trigger\+\_\+properties}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em setup trigger using name/id \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_ae1d739175cb579aff09069d0c6f7a61a}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+sampling\+\_\+frequency}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em setup device sampling frequency \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a1ea4e7e6fddc669c6922f8a6cff2d8d6}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+scan\+\_\+channels}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em setup scan channels for the device \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a72cba52ec7687b5f25d599c02c9e1b23}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+device\+\_\+buffer}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em setup device using name/id \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__srciio_8c_a26c12ca70742c0f3c2c46bbc2eb878cd}{gst\+\_\+tensor\+\_\+src\+\_\+restore\+\_\+iio\+\_\+device}} (\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$self)
\begin{DoxyCompactList}\small\item\em restore the iio device to its original device. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__srciio_8c_a5cb6a95ba9cadfbd352e8a280f6b3f2b}{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+process\+\_\+scanned\+\_\+data}} (\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, gchar $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}}, gfloat $\ast$buffer\+\_\+map)
\begin{DoxyCompactList}\small\item\em process the scanned data from I\+IO device \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} $\ast$ \mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}
\begin{DoxyCompactList}\small\item\em D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED ( . \end{DoxyCompactList}\item 
\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED \mbox{\hyperlink{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}{value\+\_\+unsigned}}
\item 
\mbox{\hyperlink{gsttensor__srciio_8c_a0544c3fe466e421738dae463968b70ba}{else}}
\item 
return \mbox{\hyperlink{gsttensor__srciio_8c_a434e7fda61b396296565ea8c1af9dead}{value\+\_\+float}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
G\+Streamer plugin to capture sensor data as tensor(s) 

G\+Streamer Tensor\+\_\+\+Source\+\_\+\+I\+IO Copyright (C) 2005 Thomas Vander Stichele \href{mailto:thomas@apestaart.org}{\texttt{ thomas@apestaart.\+org}} Copyright (C) 2005 Ronald S. Bultje \href{mailto:rbultje@ronald.bitfreak.net}{\texttt{ rbultje@ronald.\+bitfreak.\+net}} Copyright (C) 2019 Parichay Kapoor \href{mailto:pk.kapoor@samsung.com}{\texttt{ pk.\+kapoor@samsung.\+com}}

This library is free software; you can redistribute it and/or modify it under the terms of the G\+NU Library General Public License as published by the Free Software Foundation; version 2.\+1 of the License.

This library is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Library General Public License for more details.

\begin{DoxyDate}{Date}
27 Feb 2019 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{http://github.com/nnstreamer/nnstreamer}{\texttt{ http\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Parichay Kapoor \href{mailto:pk.kapoor@samsung.com}{\texttt{ pk.\+kapoor@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000064}{Bug}}]No known bugs except for N\+YI items \end{DoxyRefDesc}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000032}{Todo}}]support specific channels as input 

handle timestamp received from device\end{DoxyRefDesc}


This is the plugin to capture data from sensors and convert them to tensor format. Current implementation will support accelerators, light and gyro sensors. 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{gsttensor__srciio_8c_ac0db2e207f8669e86d902c61fa5a313e}\label{gsttensor__srciio_8c_ac0db2e207f8669e86d902c61fa5a313e}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!AVAIL\_FREQUENCY\_FILE@{AVAIL\_FREQUENCY\_FILE}}
\index{AVAIL\_FREQUENCY\_FILE@{AVAIL\_FREQUENCY\_FILE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{AVAIL\_FREQUENCY\_FILE}{AVAIL\_FREQUENCY\_FILE}}
{\footnotesize\ttfamily \#define A\+V\+A\+I\+L\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+C\+Y\+\_\+\+F\+I\+LE~\char`\"{}sampling\+\_\+frequency\+\_\+available\char`\"{}}



Definition at line 244 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_afcf795f5a96fd55561abe69f56224630}\label{gsttensor__srciio_8c_afcf795f5a96fd55561abe69f56224630}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!BLOCKSIZE@{BLOCKSIZE}}
\index{BLOCKSIZE@{BLOCKSIZE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{BLOCKSIZE}{BLOCKSIZE}}
{\footnotesize\ttfamily \#define B\+L\+O\+C\+K\+S\+I\+ZE~1}

blocksize for buffer 

Definition at line 216 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a05ec23ea9e68706e210bd8f965beee10}\label{gsttensor__srciio_8c_a05ec23ea9e68706e210bd8f965beee10}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!BUFFER@{BUFFER}}
\index{BUFFER@{BUFFER}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{BUFFER}{BUFFER}}
{\footnotesize\ttfamily \#define B\+U\+F\+F\+ER~\char`\"{}buffer\char`\"{}}



Definition at line 222 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a19b7f1b22403d61234a92decaeb6953a}\label{gsttensor__srciio_8c_a19b7f1b22403d61234a92decaeb6953a}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!CHANNELS@{CHANNELS}}
\index{CHANNELS@{CHANNELS}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{CHANNELS}{CHANNELS}}
{\footnotesize\ttfamily \#define C\+H\+A\+N\+N\+E\+LS~\char`\"{}scan\+\_\+elements\char`\"{}}



Definition at line 224 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a7383cf4c76130cf0c5834512c7e689f5}\label{gsttensor__srciio_8c_a7383cf4c76130cf0c5834512c7e689f5}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!CHANNELS\_ENABLED\_ALL\_CHAR@{CHANNELS\_ENABLED\_ALL\_CHAR}}
\index{CHANNELS\_ENABLED\_ALL\_CHAR@{CHANNELS\_ENABLED\_ALL\_CHAR}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{CHANNELS\_ENABLED\_ALL\_CHAR}{CHANNELS\_ENABLED\_ALL\_CHAR}}
{\footnotesize\ttfamily \#define C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+L\+L\+\_\+\+C\+H\+AR~\char`\"{}all\char`\"{}}



Definition at line 160 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a5697af3c2df6c993390e12d71874f6f6}\label{gsttensor__srciio_8c_a5697af3c2df6c993390e12d71874f6f6}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!CHANNELS\_ENABLED\_AUTO\_CHAR@{CHANNELS\_ENABLED\_AUTO\_CHAR}}
\index{CHANNELS\_ENABLED\_AUTO\_CHAR@{CHANNELS\_ENABLED\_AUTO\_CHAR}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{CHANNELS\_ENABLED\_AUTO\_CHAR}{CHANNELS\_ENABLED\_AUTO\_CHAR}}
{\footnotesize\ttfamily \#define C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+U\+T\+O\+\_\+\+C\+H\+AR~\char`\"{}auto\char`\"{}}



iio device channel enabled mode 



Definition at line 159 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_af7f030060373950b442d65d73f745b03}\label{gsttensor__srciio_8c_af7f030060373950b442d65d73f745b03}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!CURRENT\_TRIGGER@{CURRENT\_TRIGGER}}
\index{CURRENT\_TRIGGER@{CURRENT\_TRIGGER}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{CURRENT\_TRIGGER}{CURRENT\_TRIGGER}}
{\footnotesize\ttfamily \#define C\+U\+R\+R\+E\+N\+T\+\_\+\+T\+R\+I\+G\+G\+ER~\char`\"{}current\+\_\+trigger\char`\"{}}



Definition at line 229 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a49606be7356624568932ec81c0d429f4}\label{gsttensor__srciio_8c_a49606be7356624568932ec81c0d429f4}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DBG@{DBG}}
\index{DBG@{DBG}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DBG}{DBG}}
{\footnotesize\ttfamily \#define D\+BG~(!self-\/$>$silent)}



Macro for debug mode. 

S\+E\+C\+T\+I\+ON\+:element-\/tensor\+\_\+src\+\_\+iio

\#tensor\+\_\+src\+\_\+iio extends \#gstbasesrc source element to handle Linux Industrial I/O sensors as input. I\+IO sources are only supported in buffered mode. Source elements only support push mode scheduling as a live source.

\#tensor\+\_\+src\+\_\+iio supports configuring the device as well as the trigger via properties. Buffer capacity, frequency and scan channels to be read can be configured before P\+L\+A\+Y\+I\+NG the stream. The configuration is supported only in states $<$= R\+E\+A\+DY. Setting the state back to N\+U\+LL restores the original configuration of the I\+IO device. The source can be configured to work with trigger for the source or read the data from the device at regular time intervals. Device name/number is the only necessary configuration needed to run the element (other configuration parameters is optional).

The output caps is either of other/tensor or other/tensors.

Data from various channels can be merged to form 1 other/tensor. Final caps of the src pad is of the following format\+: $<$itemizedlist$>$ $<$listitem$>$

Dimension 0 \+: Channel number$<$/listitem$>$

$<$listitem$>$

Dimension 1 \+: buffer capacity$<$/listitem$>$

$<$/itemizedlist$>$ Other dimensions are not utilized. The data in the dimension 0 is sorted on the basis of the indexing of the channels provided by the I\+IO device.

The enabling of buffer for data capture is performed when transitioning from P\+A\+U\+S\+ED to P\+L\+A\+Y\+I\+NG state. This leads to automated synchronization handled by gstreamer. Buffer duration and timestamps set by \#gstbasesrc remain in sync with linux I\+IO timestamps.

$<$refsect2$>$ $<$title$>$Example launch line$<$/title$>$ $\vert$\mbox{[} gst-\/launch -\/v -\/m tensor\+\_\+src\+\_\+iio device-\/number=0 ! fakesink \mbox{]}$\vert$ $<$/refsect2$>$ 

Definition at line 97 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a3ad1f45f1a1677795f690af8cd99bf24}\label{gsttensor__srciio_8c_a3ad1f45f1a1677795f690af8cd99bf24}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_BUFFER\_CAPACITY@{DEFAULT\_BUFFER\_CAPACITY}}
\index{DEFAULT\_BUFFER\_CAPACITY@{DEFAULT\_BUFFER\_CAPACITY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_BUFFER\_CAPACITY}{DEFAULT\_BUFFER\_CAPACITY}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY~1}



Definition at line 185 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a052b63090cda80236391c5fc0c1fe30c}\label{gsttensor__srciio_8c_a052b63090cda80236391c5fc0c1fe30c}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_FREQUENCY@{DEFAULT\_FREQUENCY}}
\index{DEFAULT\_FREQUENCY@{DEFAULT\_FREQUENCY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_FREQUENCY}{DEFAULT\_FREQUENCY}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY~0}



Definition at line 193 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ab45a88144fffa6693010e989a142133d}\label{gsttensor__srciio_8c_ab45a88144fffa6693010e989a142133d}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_MERGE\_CHANNELS@{DEFAULT\_MERGE\_CHANNELS}}
\index{DEFAULT\_MERGE\_CHANNELS@{DEFAULT\_MERGE\_CHANNELS}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_MERGE\_CHANNELS}{DEFAULT\_MERGE\_CHANNELS}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+M\+E\+R\+G\+E\+\_\+\+C\+H\+A\+N\+N\+E\+LS~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}}



Default behavior on merging channels. 



Definition at line 205 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a1dfedced778c0cc733705936b950ce55}\label{gsttensor__srciio_8c_a1dfedced778c0cc733705936b950ce55}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_OPERATING\_CHANNELS\_ENABLED@{DEFAULT\_OPERATING\_CHANNELS\_ENABLED}}
\index{DEFAULT\_OPERATING\_CHANNELS\_ENABLED@{DEFAULT\_OPERATING\_CHANNELS\_ENABLED}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_OPERATING\_CHANNELS\_ENABLED}{DEFAULT\_OPERATING\_CHANNELS\_ENABLED}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+N\+G\+\_\+\+C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+ED~\mbox{\hyperlink{gsttensor__srciio_8c_a5697af3c2df6c993390e12d71874f6f6}{C\+H\+A\+N\+N\+E\+L\+S\+\_\+\+E\+N\+A\+B\+L\+E\+D\+\_\+\+A\+U\+T\+O\+\_\+\+C\+H\+AR}}}



Definition at line 161 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a8168bc84f5897307a95e8754ef5a6882}\label{gsttensor__srciio_8c_a8168bc84f5897307a95e8754ef5a6882}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_OPERATING\_MODE@{DEFAULT\_OPERATING\_MODE}}
\index{DEFAULT\_OPERATING\_MODE@{DEFAULT\_OPERATING\_MODE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_OPERATING\_MODE}{DEFAULT\_OPERATING\_MODE}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+N\+G\+\_\+\+M\+O\+DE~\mbox{\hyperlink{gsttensor__srciio_8c_a56bd36862cc58dceab696af7fe12de8d}{M\+O\+D\+E\+\_\+\+C\+O\+N\+T\+I\+N\+U\+O\+US}}}



Definition at line 168 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a4cc56fd8b96d2c41759f7fb0331c13b8}\label{gsttensor__srciio_8c_a4cc56fd8b96d2c41759f7fb0331c13b8}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_POLL\_TIMEOUT@{DEFAULT\_POLL\_TIMEOUT}}
\index{DEFAULT\_POLL\_TIMEOUT@{DEFAULT\_POLL\_TIMEOUT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_POLL\_TIMEOUT}{DEFAULT\_POLL\_TIMEOUT}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT~10000}



Definition at line 200 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ad52a04b281bae3bc59e1adbe2ae2b5b8}\label{gsttensor__srciio_8c_ad52a04b281bae3bc59e1adbe2ae2b5b8}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_BASE\_DIRECTORY@{DEFAULT\_PROP\_BASE\_DIRECTORY}}
\index{DEFAULT\_PROP\_BASE\_DIRECTORY@{DEFAULT\_PROP\_BASE\_DIRECTORY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_BASE\_DIRECTORY}{DEFAULT\_PROP\_BASE\_DIRECTORY}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+B\+A\+S\+E\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY~\char`\"{}/sys/bus/iio/devices\char`\"{}}



I\+IO system paths. 



Definition at line 153 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_adcb918916c35aa07683fc4009f77ebc4}\label{gsttensor__srciio_8c_adcb918916c35aa07683fc4009f77ebc4}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_DEV\_DIRECTORY@{DEFAULT\_PROP\_DEV\_DIRECTORY}}
\index{DEFAULT\_PROP\_DEV\_DIRECTORY@{DEFAULT\_PROP\_DEV\_DIRECTORY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_DEV\_DIRECTORY}{DEFAULT\_PROP\_DEV\_DIRECTORY}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+D\+E\+V\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY~\char`\"{}/dev\char`\"{}}



Definition at line 154 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a0cf4a48d15e9f969d54b5c1a5dfdb956}\label{gsttensor__srciio_8c_a0cf4a48d15e9f969d54b5c1a5dfdb956}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_DEVICE\_NUM@{DEFAULT\_PROP\_DEVICE\_NUM}}
\index{DEFAULT\_PROP\_DEVICE\_NUM@{DEFAULT\_PROP\_DEVICE\_NUM}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_DEVICE\_NUM}{DEFAULT\_PROP\_DEVICE\_NUM}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+N\+UM~-\/1}



default trigger and device numbers 



Definition at line 210 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a15044eef4e2704ad4fa2c0db3eb2734f}\label{gsttensor__srciio_8c_a15044eef4e2704ad4fa2c0db3eb2734f}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_SILENT@{DEFAULT\_PROP\_SILENT}}
\index{DEFAULT\_PROP\_SILENT@{DEFAULT\_PROP\_SILENT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_SILENT}{DEFAULT\_PROP\_SILENT}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}}



Flag to print minimized log. 



Definition at line 173 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_adff275e961fa0b0374d145b70fd78325}\label{gsttensor__srciio_8c_adff275e961fa0b0374d145b70fd78325}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_STRING@{DEFAULT\_PROP\_STRING}}
\index{DEFAULT\_PROP\_STRING@{DEFAULT\_PROP\_STRING}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_STRING}{DEFAULT\_PROP\_STRING}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+S\+T\+R\+I\+NG~N\+U\+LL}



Flag for general default value of string. 



Definition at line 178 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_afc9c14c21b9ee1d1d70f51ec5fb97424}\label{gsttensor__srciio_8c_afc9c14c21b9ee1d1d70f51ec5fb97424}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEFAULT\_PROP\_TRIGGER\_NUM@{DEFAULT\_PROP\_TRIGGER\_NUM}}
\index{DEFAULT\_PROP\_TRIGGER\_NUM@{DEFAULT\_PROP\_TRIGGER\_NUM}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_TRIGGER\_NUM}{DEFAULT\_PROP\_TRIGGER\_NUM}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+E\+R\+\_\+\+N\+UM~-\/1}



Definition at line 211 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a775d096fbc3988fb7ed858b79ef44e22}\label{gsttensor__srciio_8c_a775d096fbc3988fb7ed858b79ef44e22}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEVICE@{DEVICE}}
\index{DEVICE@{DEVICE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEVICE}{DEVICE}}
{\footnotesize\ttfamily \#define D\+E\+V\+I\+CE~\char`\"{}device\char`\"{}}



I\+IO devices/triggers. 



Definition at line 221 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aca4cce808da981a9c81da6362c9659c2}\label{gsttensor__srciio_8c_aca4cce808da981a9c81da6362c9659c2}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!DEVICE\_PREFIX@{DEVICE\_PREFIX}}
\index{DEVICE\_PREFIX@{DEVICE\_PREFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{DEVICE\_PREFIX}{DEVICE\_PREFIX}}
{\footnotesize\ttfamily \#define D\+E\+V\+I\+C\+E\+\_\+\+P\+R\+E\+F\+IX~\mbox{\hyperlink{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}{I\+IO}} \mbox{\hyperlink{gsttensor__srciio_8c_a775d096fbc3988fb7ed858b79ef44e22}{D\+E\+V\+I\+CE}}}



Definition at line 227 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aaa04dcddfd619533e00e127161ad705d}\label{gsttensor__srciio_8c_aaa04dcddfd619533e00e127161ad705d}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!EN\_SUFFIX@{EN\_SUFFIX}}
\index{EN\_SUFFIX@{EN\_SUFFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{EN\_SUFFIX}{EN\_SUFFIX}}
{\footnotesize\ttfamily \#define E\+N\+\_\+\+S\+U\+F\+F\+IX~\char`\"{}\+\_\+en\char`\"{}}



I\+IO device channels. 



Definition at line 234 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_adef911caed7c65a1643062817f4a59d7}\label{gsttensor__srciio_8c_adef911caed7c65a1643062817f4a59d7}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}}
\index{GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{GST\_CAT\_DEFAULT}{GST\_CAT\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT~gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+debug}



Definition at line 101 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aadad45caca909c40627f1fca70737eaf}\label{gsttensor__srciio_8c_aadad45caca909c40627f1fca70737eaf}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_parent\_class@{gst\_tensor\_src\_iio\_parent\_class}}
\index{gst\_tensor\_src\_iio\_parent\_class@{gst\_tensor\_src\_iio\_parent\_class}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_parent\_class}{gst\_tensor\_src\_iio\_parent\_class}}
{\footnotesize\ttfamily \#define gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+parent\+\_\+class~parent\+\_\+class}

internal functions 

Definition at line 280 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}\label{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!IIO@{IIO}}
\index{IIO@{IIO}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{IIO}{IIO}}
{\footnotesize\ttfamily \#define I\+IO~\char`\"{}iio\+:\char`\"{}}



Definition at line 225 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a4d599eea3e3f09271468360062eb330e}\label{gsttensor__srciio_8c_a4d599eea3e3f09271468360062eb330e}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!INDEX\_SUFFIX@{INDEX\_SUFFIX}}
\index{INDEX\_SUFFIX@{INDEX\_SUFFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{INDEX\_SUFFIX}{INDEX\_SUFFIX}}
{\footnotesize\ttfamily \#define I\+N\+D\+E\+X\+\_\+\+S\+U\+F\+F\+IX~\char`\"{}\+\_\+index\char`\"{}}



Definition at line 235 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_abf66b7e343688d4554e656c83c5d4c73}\label{gsttensor__srciio_8c_abf66b7e343688d4554e656c83c5d4c73}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MAX\_BUFFER\_CAPACITY@{MAX\_BUFFER\_CAPACITY}}
\index{MAX\_BUFFER\_CAPACITY@{MAX\_BUFFER\_CAPACITY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MAX\_BUFFER\_CAPACITY}{MAX\_BUFFER\_CAPACITY}}
{\footnotesize\ttfamily \#define M\+A\+X\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY~G\+\_\+\+M\+A\+X\+U\+I\+NT}



Definition at line 184 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a1fcff99f421f1bc8a1bbdb641ca0324e}\label{gsttensor__srciio_8c_a1fcff99f421f1bc8a1bbdb641ca0324e}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MAX\_FREQUENCY@{MAX\_FREQUENCY}}
\index{MAX\_FREQUENCY@{MAX\_FREQUENCY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MAX\_FREQUENCY}{MAX\_FREQUENCY}}
{\footnotesize\ttfamily \#define M\+A\+X\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY~G\+\_\+\+M\+A\+X\+U\+L\+O\+NG}



Definition at line 192 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a0b9530d29e629c242c8922133fda6751}\label{gsttensor__srciio_8c_a0b9530d29e629c242c8922133fda6751}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MAX\_POLL\_TIMEOUT@{MAX\_POLL\_TIMEOUT}}
\index{MAX\_POLL\_TIMEOUT@{MAX\_POLL\_TIMEOUT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MAX\_POLL\_TIMEOUT}{MAX\_POLL\_TIMEOUT}}
{\footnotesize\ttfamily \#define M\+A\+X\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT~G\+\_\+\+M\+A\+X\+I\+NT}



Definition at line 199 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a13a9f8c6bfbcf4b4bfabf528c0ca07a7}\label{gsttensor__srciio_8c_a13a9f8c6bfbcf4b4bfabf528c0ca07a7}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MIN\_BUFFER\_CAPACITY@{MIN\_BUFFER\_CAPACITY}}
\index{MIN\_BUFFER\_CAPACITY@{MIN\_BUFFER\_CAPACITY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MIN\_BUFFER\_CAPACITY}{MIN\_BUFFER\_CAPACITY}}
{\footnotesize\ttfamily \#define M\+I\+N\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY~1}



Minimum and maximum buffer length for iio. 



Definition at line 183 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aea88670257377b3103f3fbc73135949f}\label{gsttensor__srciio_8c_aea88670257377b3103f3fbc73135949f}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MIN\_FREQUENCY@{MIN\_FREQUENCY}}
\index{MIN\_FREQUENCY@{MIN\_FREQUENCY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MIN\_FREQUENCY}{MIN\_FREQUENCY}}
{\footnotesize\ttfamily \#define M\+I\+N\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY~0}



Minimum and maximum operating frequency for the device Frequency 0 chooses the first available frequency supported by device. 



Definition at line 191 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a274888c3f2a427a39083739c7d5952e6}\label{gsttensor__srciio_8c_a274888c3f2a427a39083739c7d5952e6}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MIN\_POLL\_TIMEOUT@{MIN\_POLL\_TIMEOUT}}
\index{MIN\_POLL\_TIMEOUT@{MIN\_POLL\_TIMEOUT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MIN\_POLL\_TIMEOUT}{MIN\_POLL\_TIMEOUT}}
{\footnotesize\ttfamily \#define M\+I\+N\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT~-\/1}



Minimum and maximum polling timeout for the buffered reading. 



Definition at line 198 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a56bd36862cc58dceab696af7fe12de8d}\label{gsttensor__srciio_8c_a56bd36862cc58dceab696af7fe12de8d}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MODE\_CONTINUOUS@{MODE\_CONTINUOUS}}
\index{MODE\_CONTINUOUS@{MODE\_CONTINUOUS}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MODE\_CONTINUOUS}{MODE\_CONTINUOUS}}
{\footnotesize\ttfamily \#define M\+O\+D\+E\+\_\+\+C\+O\+N\+T\+I\+N\+U\+O\+US~\char`\"{}continuous\char`\"{}}



Definition at line 167 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a4042150fc85394eb0479a48d0db86d33}\label{gsttensor__srciio_8c_a4042150fc85394eb0479a48d0db86d33}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!MODE\_ONE\_SHOT@{MODE\_ONE\_SHOT}}
\index{MODE\_ONE\_SHOT@{MODE\_ONE\_SHOT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{MODE\_ONE\_SHOT}{MODE\_ONE\_SHOT}}
{\footnotesize\ttfamily \#define M\+O\+D\+E\+\_\+\+O\+N\+E\+\_\+\+S\+H\+OT~\char`\"{}one-\/shot\char`\"{}}



tensor\+\_\+src\+\_\+iio device modes 



Definition at line 166 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aa873f83fb4c7537d2c68b10e54db2aea}\label{gsttensor__srciio_8c_aa873f83fb4c7537d2c68b10e54db2aea}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!NAME\_FILE@{NAME\_FILE}}
\index{NAME\_FILE@{NAME\_FILE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{NAME\_FILE}{NAME\_FILE}}
{\footnotesize\ttfamily \#define N\+A\+M\+E\+\_\+\+F\+I\+LE~\char`\"{}name\char`\"{}}



filenames for I\+IO devices/triggers characteristics 



Definition at line 243 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a4851a701e0bc409047e8c5102c4e3d28}\label{gsttensor__srciio_8c_a4851a701e0bc409047e8c5102c4e3d28}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!OFFSET\_SUFFIX@{OFFSET\_SUFFIX}}
\index{OFFSET\_SUFFIX@{OFFSET\_SUFFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{OFFSET\_SUFFIX}{OFFSET\_SUFFIX}}
{\footnotesize\ttfamily \#define O\+F\+F\+S\+E\+T\+\_\+\+S\+U\+F\+F\+IX~\char`\"{}\+\_\+offset\char`\"{}}



Definition at line 238 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a9701570ea6a4f0a9931da70fa580f5d3}\label{gsttensor__srciio_8c_a9701570ea6a4f0a9931da70fa580f5d3}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}}
\index{PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{PROCESS\_SCANNED\_DATA}{PROCESS\_SCANNED\_DATA}}
{\footnotesize\ttfamily \#define P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA(\begin{DoxyParamCaption}\item[{}]{D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED,  }\item[{}]{D\+T\+Y\+P\+E\+\_\+\+S\+I\+G\+N\+ED }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{ \(\backslash\)}
\DoxyCodeLine{static gfloat \(\backslash\)}
\DoxyCodeLine{gst\_tensor\_src\_iio\_process\_scanned\_data\_from\_}

\end{DoxyCode}


Macro to generate data processing functions for various types. 



Definition at line 106 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a282b5ca7d691d6a8ca66c15a0fc0707b}\label{gsttensor__srciio_8c_a282b5ca7d691d6a8ca66c15a0fc0707b}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!SAMPLING\_FREQUENCY@{SAMPLING\_FREQUENCY}}
\index{SAMPLING\_FREQUENCY@{SAMPLING\_FREQUENCY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{SAMPLING\_FREQUENCY}{SAMPLING\_FREQUENCY}}
{\footnotesize\ttfamily \#define S\+A\+M\+P\+L\+I\+N\+G\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY~\char`\"{}sampling\+\_\+frequency\char`\"{}}



Definition at line 245 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a432b56451856c8a0c1b22c82e04b8904}\label{gsttensor__srciio_8c_a432b56451856c8a0c1b22c82e04b8904}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!SCALE\_SUFFIX@{SCALE\_SUFFIX}}
\index{SCALE\_SUFFIX@{SCALE\_SUFFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{SCALE\_SUFFIX}{SCALE\_SUFFIX}}
{\footnotesize\ttfamily \#define S\+C\+A\+L\+E\+\_\+\+S\+U\+F\+F\+IX~\char`\"{}\+\_\+scale\char`\"{}}



Definition at line 237 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ac59bf49f337079e65fe54acbfa21977e}\label{gsttensor__srciio_8c_ac59bf49f337079e65fe54acbfa21977e}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!TIMESTAMP@{TIMESTAMP}}
\index{TIMESTAMP@{TIMESTAMP}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{TIMESTAMP}{TIMESTAMP}}
{\footnotesize\ttfamily \#define T\+I\+M\+E\+S\+T\+A\+MP~\char`\"{}timestamp\char`\"{}}



Definition at line 226 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a86de85f5177dabb5ff712bf180db43aa}\label{gsttensor__srciio_8c_a86de85f5177dabb5ff712bf180db43aa}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!TRIGGER@{TRIGGER}}
\index{TRIGGER@{TRIGGER}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{TRIGGER}{TRIGGER}}
{\footnotesize\ttfamily \#define T\+R\+I\+G\+G\+ER~\char`\"{}trigger\char`\"{}}



Definition at line 223 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ad010cf31d5759dec1bd9d331d8267faf}\label{gsttensor__srciio_8c_ad010cf31d5759dec1bd9d331d8267faf}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!TRIGGER\_PREFIX@{TRIGGER\_PREFIX}}
\index{TRIGGER\_PREFIX@{TRIGGER\_PREFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{TRIGGER\_PREFIX}{TRIGGER\_PREFIX}}
{\footnotesize\ttfamily \#define T\+R\+I\+G\+G\+E\+R\+\_\+\+P\+R\+E\+F\+IX~\mbox{\hyperlink{gsttensor__srciio_8c_ad4b2781b14e3d74033f21814def4efd8}{I\+IO}} \mbox{\hyperlink{gsttensor__srciio_8c_a86de85f5177dabb5ff712bf180db43aa}{T\+R\+I\+G\+G\+ER}}}



Definition at line 228 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a2ae6501e1bdf90bd4ba3fd52fb5be2b0}\label{gsttensor__srciio_8c_a2ae6501e1bdf90bd4ba3fd52fb5be2b0}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!TYPE\_SUFFIX@{TYPE\_SUFFIX}}
\index{TYPE\_SUFFIX@{TYPE\_SUFFIX}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{TYPE\_SUFFIX}{TYPE\_SUFFIX}}
{\footnotesize\ttfamily \#define T\+Y\+P\+E\+\_\+\+S\+U\+F\+F\+IX~\char`\"{}\+\_\+type\char`\"{}}



Definition at line 236 of file gsttensor\+\_\+srciio.\+c.



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



tensor\+\_\+src\+\_\+iio properties. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_0@{PROP\_0}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_0@{PROP\_0}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ac37dda0da1a44e10c0504afeeb863f3c}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ac37dda0da1a44e10c0504afeeb863f3c}} 
P\+R\+O\+P\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MODE@{PROP\_MODE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_MODE@{PROP\_MODE}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a0b5a29cfd0fc43c914507e65e3aec94f}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a0b5a29cfd0fc43c914507e65e3aec94f}} 
P\+R\+O\+P\+\_\+\+M\+O\+DE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_SILENT@{PROP\_SILENT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_SILENT@{PROP\_SILENT}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a707b785966c328fb5a6088b7879c7bb5}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a707b785966c328fb5a6088b7879c7bb5}} 
P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_BASE\_DIRECTORY@{PROP\_BASE\_DIRECTORY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_BASE\_DIRECTORY@{PROP\_BASE\_DIRECTORY}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8051d5752b069d300bfb59cbe73cbc95}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8051d5752b069d300bfb59cbe73cbc95}} 
P\+R\+O\+P\+\_\+\+B\+A\+S\+E\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_DEV\_DIRECTORY@{PROP\_DEV\_DIRECTORY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_DEV\_DIRECTORY@{PROP\_DEV\_DIRECTORY}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5af6f6c137af3390637212d66531ef18ad}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5af6f6c137af3390637212d66531ef18ad}} 
P\+R\+O\+P\+\_\+\+D\+E\+V\+\_\+\+D\+I\+R\+E\+C\+T\+O\+RY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_DEVICE@{PROP\_DEVICE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_DEVICE@{PROP\_DEVICE}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4501e14d515bde987f80221b075cf6b4}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4501e14d515bde987f80221b075cf6b4}} 
P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+CE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_DEVICE\_NUM@{PROP\_DEVICE\_NUM}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_DEVICE\_NUM@{PROP\_DEVICE\_NUM}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8a306a8cb84a5b8c7d3df21fcd4f247d}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a8a306a8cb84a5b8c7d3df21fcd4f247d}} 
P\+R\+O\+P\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+N\+UM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_TRIGGER@{PROP\_TRIGGER}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_TRIGGER@{PROP\_TRIGGER}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4fd6d8b5b5ef3991c0d0a54d4edeb01c}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a4fd6d8b5b5ef3991c0d0a54d4edeb01c}} 
P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+ER&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_TRIGGER\_NUM@{PROP\_TRIGGER\_NUM}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_TRIGGER\_NUM@{PROP\_TRIGGER\_NUM}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a1f1a3cb527fc4c0e7d6c17ded6a7736f}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a1f1a3cb527fc4c0e7d6c17ded6a7736f}} 
P\+R\+O\+P\+\_\+\+T\+R\+I\+G\+G\+E\+R\+\_\+\+N\+UM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_CHANNELS@{PROP\_CHANNELS}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_CHANNELS@{PROP\_CHANNELS}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa80e864067b789aa66bded492541a50f}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa80e864067b789aa66bded492541a50f}} 
P\+R\+O\+P\+\_\+\+C\+H\+A\+N\+N\+E\+LS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_BUFFER\_CAPACITY@{PROP\_BUFFER\_CAPACITY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_BUFFER\_CAPACITY@{PROP\_BUFFER\_CAPACITY}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ab1b1e313575cc7f7ca3d3975c09ed202}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5ab1b1e313575cc7f7ca3d3975c09ed202}} 
P\+R\+O\+P\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+C\+A\+P\+A\+C\+I\+TY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_FREQUENCY@{PROP\_FREQUENCY}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_FREQUENCY@{PROP\_FREQUENCY}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa40bd4945c490484eb5097f092d2202c}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa40bd4945c490484eb5097f092d2202c}} 
P\+R\+O\+P\+\_\+\+F\+R\+E\+Q\+U\+E\+N\+CY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MERGE\_CHANNELS@{PROP\_MERGE\_CHANNELS}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_MERGE\_CHANNELS@{PROP\_MERGE\_CHANNELS}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa7611f4a8151a56bcbedbc2812aeff6e}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5aa7611f4a8151a56bcbedbc2812aeff6e}} 
P\+R\+O\+P\+\_\+\+M\+E\+R\+G\+E\+\_\+\+C\+H\+A\+N\+N\+E\+LS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_POLL\_TIMEOUT@{PROP\_POLL\_TIMEOUT}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROP\_POLL\_TIMEOUT@{PROP\_POLL\_TIMEOUT}}}\mbox{\Hypertarget{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a278c20e28ab5323c1e9a8f9e65cb7bf8}\label{gsttensor__srciio_8c_a4790f45dcc812c1b00184a2edccdddf5a278c20e28ab5323c1e9a8f9e65cb7bf8}} 
P\+R\+O\+P\+\_\+\+P\+O\+L\+L\+\_\+\+T\+I\+M\+E\+O\+UT&\\
\hline

\end{DoxyEnumFields}


Definition at line 132 of file gsttensor\+\_\+srciio.\+c.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{gsttensor__srciio_8c_adc3c53abec02288da58747d5a1eb3ab4}\label{gsttensor__srciio_8c_adc3c53abec02288da58747d5a1eb3ab4}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!g\_assert@{g\_assert}}
\index{g\_assert@{g\_assert}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{g\_assert()}{g\_assert()}}
{\footnotesize\ttfamily g\+\_\+assert (\begin{DoxyParamCaption}\item[{sizeof(D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED)}]{ = {\ttfamily =sizeof(DTYPE\+\_\+SIGNED)} }\end{DoxyParamCaption})}

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{gsttensor__srciio_8c_adc3c53abec02288da58747d5a1eb3ab4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a395bc4990f9bdfcefc56bc58e2e0c4e3}\label{gsttensor__srciio_8c_a395bc4990f9bdfcefc56bc58e2e0c4e3}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}}
\index{G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{G\_DEFINE\_TYPE()}{G\_DEFINE\_TYPE()}}
{\footnotesize\ttfamily G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}}}]{,  }\item[{gst\+\_\+tensor\+\_\+src\+\_\+iio}]{,  }\item[{G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+A\+S\+E\+\_\+\+S\+RC}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__srciio_8c_a244d7d5b7a3c3f4712c743ce7a945cf9}\label{gsttensor__srciio_8c_a244d7d5b7a3c3f4712c743ce7a945cf9}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}}
\index{GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{GST\_DEBUG\_CATEGORY\_STATIC()}{GST\_DEBUG\_CATEGORY\_STATIC()}}
{\footnotesize\ttfamily G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC (\begin{DoxyParamCaption}\item[{gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+debug}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__srciio_8c_a413cc18407c30b0d6341ee7c3f10114a}\label{gsttensor__srciio_8c_a413cc18407c30b0d6341ee7c3f10114a}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_channel\_list\_filter\_enabled@{gst\_tensor\_channel\_list\_filter\_enabled}}
\index{gst\_tensor\_channel\_list\_filter\_enabled@{gst\_tensor\_channel\_list\_filter\_enabled}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_channel\_list\_filter\_enabled()}{gst\_tensor\_channel\_list\_filter\_enabled()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+channel\+\_\+list\+\_\+filter\+\_\+enabled (\begin{DoxyParamCaption}\item[{gpointer}]{data,  }\item[{gpointer}]{user\+\_\+data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



compare channels for filtering if enabled 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em data} & Pointer of the data of the element \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & user\+\_\+data Pointer to the address of the list to be filtered \\
\hline
\end{DoxyParams}


Definition at line 836 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_acca01958ac27d4623029cdcfcf1ee21b}\label{gsttensor__srciio_8c_acca01958ac27d4623029cdcfcf1ee21b}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_channel\_list\_sort\_cmp@{gst\_tensor\_channel\_list\_sort\_cmp}}
\index{gst\_tensor\_channel\_list\_sort\_cmp@{gst\_tensor\_channel\_list\_sort\_cmp}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_channel\_list\_sort\_cmp()}{gst\_tensor\_channel\_list\_sort\_cmp()}}
{\footnotesize\ttfamily static gint gst\+\_\+tensor\+\_\+channel\+\_\+list\+\_\+sort\+\_\+cmp (\begin{DoxyParamCaption}\item[{gconstpointer}]{a,  }\item[{gconstpointer}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



compare channels for sort based on their indices 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & First param to be compared \\
\hline
\mbox{\texttt{ in}}  & {\em b} & Second param to be compared \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
negative if a{\bfseries{b }}
\end{DoxyReturn}


Definition at line 822 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a793cabf3e42161f550a5c79e708fcbcb}\label{gsttensor__srciio_8c_a793cabf3e42161f550a5c79e708fcbcb}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_get\_size\_from\_channels@{gst\_tensor\_get\_size\_from\_channels}}
\index{gst\_tensor\_get\_size\_from\_channels@{gst\_tensor\_get\_size\_from\_channels}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_get\_size\_from\_channels()}{gst\_tensor\_get\_size\_from\_channels()}}
{\footnotesize\ttfamily static guint gst\+\_\+tensor\+\_\+get\+\_\+size\+\_\+from\+\_\+channels (\begin{DoxyParamCaption}\item[{G\+List $\ast$}]{channels }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get the size of the combined data from channels 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em channels} & List of all the channels \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Size of one scan of data combined from all the channels
\end{DoxyReturn}
Also evaluates the location of each channel in the buffer 

Definition at line 1499 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a0976c1bba48ebb38101c89d1b172b7ee}\label{gsttensor__srciio_8c_a0976c1bba48ebb38101c89d1b172b7ee}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_set\_all\_channels@{gst\_tensor\_set\_all\_channels}}
\index{gst\_tensor\_set\_all\_channels@{gst\_tensor\_set\_all\_channels}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_set\_all\_channels()}{gst\_tensor\_set\_all\_channels()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+set\+\_\+all\+\_\+channels (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self,  }\item[{const gint}]{contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



set value to all the channels 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em self} & Tensor src I\+IO object \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & Data to be written to the file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if write was successful, false if failure on any channel 
\end{DoxyReturn}


Definition at line 1469 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ab8cfc5d220f41b942259576da7c660ba}\label{gsttensor__srciio_8c_ab8cfc5d220f41b942259576da7c660ba}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_change\_state@{gst\_tensor\_src\_iio\_change\_state}}
\index{gst\_tensor\_src\_iio\_change\_state@{gst\_tensor\_src\_iio\_change\_state}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_change\_state()}{gst\_tensor\_src\_iio\_change\_state()}}
{\footnotesize\ttfamily static Gst\+State\+Change\+Return gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+change\+\_\+state (\begin{DoxyParamCaption}\item[{Gst\+Element $\ast$}]{element,  }\item[{Gst\+State\+Change}]{transition }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Perform state change. 

enable the buffer for the data to be captured

disable the buffer

Definition at line 2228 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_ab8cfc5d220f41b942259576da7c660ba_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_ab8cfc5d220f41b942259576da7c660ba_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a52795ca44b208df547fc289328bcbddf}\label{gsttensor__srciio_8c_a52795ca44b208df547fc289328bcbddf}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_channel\_properties\_free@{gst\_tensor\_src\_iio\_channel\_properties\_free}}
\index{gst\_tensor\_src\_iio\_channel\_properties\_free@{gst\_tensor\_src\_iio\_channel\_properties\_free}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_channel\_properties\_free()}{gst\_tensor\_src\_iio\_channel\_properties\_free()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+channel\+\_\+properties\+\_\+free (\begin{DoxyParamCaption}\item[{gpointer}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



delete Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties structure 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em data} & Data pointer to be freed \\
\hline
\end{DoxyParams}


Definition at line 411 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_a52795ca44b208df547fc289328bcbddf_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_abc94da9a965385b3d12a1e665e7f80b6}\label{gsttensor__srciio_8c_abc94da9a965385b3d12a1e665e7f80b6}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_class\_init@{gst\_tensor\_src\_iio\_class\_init}}
\index{gst\_tensor\_src\_iio\_class\_init@{gst\_tensor\_src\_iio\_class\_init}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_class\_init()}{gst\_tensor\_src\_iio\_class\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+class\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_ae2ebb8a86321759cb60e721ef001fd39}{Gst\+Tensor\+Src\+I\+I\+O\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the tensor\+\_\+src\+\_\+iio class. 

G\+Object methods

pad template

Gst\+Base\+Src\+I\+IO methods

Definition at line 287 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_abc94da9a965385b3d12a1e665e7f80b6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a29b40ebc8718bb6387993dd650c38014}\label{gsttensor__srciio_8c_a29b40ebc8718bb6387993dd650c38014}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_create@{gst\_tensor\_src\_iio\_create}}
\index{gst\_tensor\_src\_iio\_create@{gst\_tensor\_src\_iio\_create}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_create()}{gst\_tensor\_src\_iio\_create()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+create (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{guint64}]{offset,  }\item[{guint}]{size,  }\item[{Gst\+Buffer $\ast$$\ast$}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



create a buffer with requested size and offset 

\begin{DoxyNote}{Note}
offset, size ignored as the tensor src iio does not support pull mode 
\end{DoxyNote}
all the data, if unermged should be of the same size

Definition at line 2325 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a29b40ebc8718bb6387993dd650c38014_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_aaf339e04c86eb51f175f3f185089da90}\label{gsttensor__srciio_8c_aaf339e04c86eb51f175f3f185089da90}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_create\_config@{gst\_tensor\_src\_iio\_create\_config}}
\index{gst\_tensor\_src\_iio\_create\_config@{gst\_tensor\_src\_iio\_create\_config}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_create\_config()}{gst\_tensor\_src\_iio\_create\_config()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+create\+\_\+config (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{tensor\+\_\+src\+\_\+iio }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



create the structure for the caps to update the src pad caps 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & structure Caps structure which will filled \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if structure is created and filled, False for any error 
\end{DoxyReturn}
create a bigger array, insert info in it and then merge tensors with same type+size

compile tensor info data

merge info about the tensors with same type

verify the merging of the array

tensors config data

buffer\+\_\+capacity number of data samples are captured at once, packed together and sent downstream

Definition at line 1527 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ac2d7b4ff009c2f567ff82b83f8f364d9}\label{gsttensor__srciio_8c_ac2d7b4ff009c2f567ff82b83f8f364d9}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_device\_properties\_init@{gst\_tensor\_src\_iio\_device\_properties\_init}}
\index{gst\_tensor\_src\_iio\_device\_properties\_init@{gst\_tensor\_src\_iio\_device\_properties\_init}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_device\_properties\_init()}{gst\_tensor\_src\_iio\_device\_properties\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+device\+\_\+properties\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_af0190a2968bcbc19be7f5913db8e49a9}{Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties}} $\ast$}]{prop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize Gst\+Tensor\+Src\+I\+I\+O\+Device\+Properties structure 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em data} & Device properties pointer to be initialized \\
\hline
\end{DoxyParams}


Definition at line 427 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_ac2d7b4ff009c2f567ff82b83f8f364d9_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a324d0aac5229bcb8e16e461f2034f244}\label{gsttensor__srciio_8c_a324d0aac5229bcb8e16e461f2034f244}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_event@{gst\_tensor\_src\_iio\_event}}
\index{gst\_tensor\_src\_iio\_event@{gst\_tensor\_src\_iio\_event}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_event()}{gst\_tensor\_src\_iio\_event()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+event (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{Gst\+Event $\ast$}]{event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



handle events 

No events to be handled yet

Definition at line 2132 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a324d0aac5229bcb8e16e461f2034f244_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_adba134a793d3258dcc32b7ec069c842d}\label{gsttensor__srciio_8c_adba134a793d3258dcc32b7ec069c842d}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_fill@{gst\_tensor\_src\_iio\_fill}}
\index{gst\_tensor\_src\_iio\_fill@{gst\_tensor\_src\_iio\_fill}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_fill()}{gst\_tensor\_src\_iio\_fill()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+fill (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{guint64}]{offset,  }\item[{guint}]{size,  }\item[{Gst\+Buffer $\ast$}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



fill the buffer with data 

\begin{DoxyNote}{Note}
ignore offset,size as there is pull mode 

buffer timestamp is already handled by gstreamer with gst clock 
\end{DoxyNote}
Only supporting tensors made of 1 tensor for now

get writable buffer

memory to data from file

wait for the data to arrive

sleep for a device tick

using read for non-\/blocking access

parse the read data

current assumption is that the all data is float and merged to form a 1 dimension data. 2nd dimension comes from buffer capacity.

for other/tensor, only 1 map exist as there is only 1 mem

for other/tensors, multiple maps exist as there are multiple mem

Definition at line 2462 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=342pt]{gsttensor__srciio_8c_adba134a793d3258dcc32b7ec069c842d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a535bd7c232dcb6c563b91f11d34559fd}\label{gsttensor__srciio_8c_a535bd7c232dcb6c563b91f11d34559fd}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_finalize@{gst\_tensor\_src\_iio\_finalize}}
\index{gst\_tensor\_src\_iio\_finalize@{gst\_tensor\_src\_iio\_finalize}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_finalize()}{gst\_tensor\_src\_iio\_finalize()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+finalize (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



finalize the instance 



Definition at line 1358 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=267pt]{gsttensor__srciio_8c_a535bd7c232dcb6c563b91f11d34559fd_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a535bd7c232dcb6c563b91f11d34559fd_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a56f6c2d98be2c793ec9f468cce87cf84}\label{gsttensor__srciio_8c_a56f6c2d98be2c793ec9f468cce87cf84}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_fixate@{gst\_tensor\_src\_iio\_fixate}}
\index{gst\_tensor\_src\_iio\_fixate@{gst\_tensor\_src\_iio\_fixate}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_fixate()}{gst\_tensor\_src\_iio\_fixate()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+fixate (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{Gst\+Caps $\ast$}]{caps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



fixate the caps when needed during negotiation 

Caps are fixated based on the device source in \+\_\+start().

Definition at line 2186 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_a56f6c2d98be2c793ec9f468cce87cf84_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a56f6c2d98be2c793ec9f468cce87cf84_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_adc502bf8eb7aefb8dfd9e563763a2546}\label{gsttensor__srciio_8c_adc502bf8eb7aefb8dfd9e563763a2546}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_all\_channel\_info@{gst\_tensor\_src\_iio\_get\_all\_channel\_info}}
\index{gst\_tensor\_src\_iio\_get\_all\_channel\_info@{gst\_tensor\_src\_iio\_get\_all\_channel\_info}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_all\_channel\_info()}{gst\_tensor\_src\_iio\_get\_all\_channel\_info()}}
{\footnotesize\ttfamily static gint gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+all\+\_\+channel\+\_\+info (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self,  }\item[{const gchar $\ast$}]{dir\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get info about all the channels in the device 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & self Tensor src I\+IO object \\
\hline
\mbox{\texttt{ in}}  & {\em dir\+\_\+name} & Directory name with all the scan elements for device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$>$=0 number of enabled channels -\/1 if any error when scanning channels 
\end{DoxyReturn}
check for enable

not enabling and handling buffer timestamps for now

set the name and base\+\_\+dir

find and set the current state

find and set the index

find and set the type information

if specific type info unavailable, use generic type info

find and setup offset info

find and setup scale info

sort the list with the order of the indices

Definition at line 860 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_adf900d522338e25fea00e258d37817eb}\label{gsttensor__srciio_8c_adf900d522338e25fea00e258d37817eb}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_available\_frequency@{gst\_tensor\_src\_iio\_get\_available\_frequency}}
\index{gst\_tensor\_src\_iio\_get\_available\_frequency@{gst\_tensor\_src\_iio\_get\_available\_frequency}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_available\_frequency()}{gst\_tensor\_src\_iio\_get\_available\_frequency()}}
{\footnotesize\ttfamily static gint64 gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+available\+\_\+frequency (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{base\+\_\+dir,  }\item[{const guint64}]{frequency }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



return sampling frequency given the frequency input from user 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em base\+\_\+dir} & Device base directory (containing sampling freq file) \\
\hline
\mbox{\texttt{ in}}  & {\em frequency} & Frequency specified by user (else 0) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$>$0 if OK, represents sampling frequency to be set 0 if sampling frequency file does not exist, dont change anything -\/1 if any error occurs 
\end{DoxyReturn}
get frequency list supported by the device

if the frequency is set 0, set the first available frequency else verify the frequency received from user is supported by the device

Definition at line 1036 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aea50990e420a7fb07f7bae1dda57d13e}\label{gsttensor__srciio_8c_aea50990e420a7fb07f7bae1dda57d13e}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_caps@{gst\_tensor\_src\_iio\_get\_caps}}
\index{gst\_tensor\_src\_iio\_get\_caps@{gst\_tensor\_src\_iio\_get\_caps}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_caps()}{gst\_tensor\_src\_iio\_get\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+caps (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{Gst\+Caps $\ast$}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get caps of subclass 

\begin{DoxyNote}{Note}
basesrc \+\_\+get\+\_\+caps returns the caps from the pad\+\_\+template however, we set the caps manually and needs to returned here 
\end{DoxyNote}


Definition at line 2160 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_aea50990e420a7fb07f7bae1dda57d13e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a9229ff541a9f8e350a8eed47c0db6cc7}\label{gsttensor__srciio_8c_a9229ff541a9f8e350a8eed47c0db6cc7}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_float\_from\_file@{gst\_tensor\_src\_iio\_get\_float\_from\_file}}
\index{gst\_tensor\_src\_iio\_get\_float\_from\_file@{gst\_tensor\_src\_iio\_get\_float\_from\_file}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_float\_from\_file()}{gst\_tensor\_src\_iio\_get\_float\_from\_file()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+float\+\_\+from\+\_\+file (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{dirname,  }\item[{const gchar $\ast$}]{name,  }\item[{const gchar $\ast$}]{suffix,  }\item[{gfloat $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



parse float value from the file 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dirname} & Directory containing the file \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Filename of the file \\
\hline
\mbox{\texttt{ in}}  & {\em suffix} & Suffix to be attached to the filename \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & value Output value returned via value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
F\+A\+L\+SE on errors, else T\+R\+UE 
\end{DoxyReturn}


Definition at line 677 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a7438af8dedf892248e9f614220d37a0f}\label{gsttensor__srciio_8c_a7438af8dedf892248e9f614220d37a0f}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_generic\_name@{gst\_tensor\_src\_iio\_get\_generic\_name}}
\index{gst\_tensor\_src\_iio\_get\_generic\_name@{gst\_tensor\_src\_iio\_get\_generic\_name}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_generic\_name()}{gst\_tensor\_src\_iio\_get\_generic\_name()}}
{\footnotesize\ttfamily static gchar$\ast$ gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+generic\+\_\+name (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{channel\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get generic name for channel from the string 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em channel\+\_\+name} & Name of the channel with its id embedded in it \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ptr to the generic name of the channel, caller should free the returned string 
\end{DoxyReturn}


Definition at line 799 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a3c7ea5580e715f1b41705c5cd1b38f72}\label{gsttensor__srciio_8c_a3c7ea5580e715f1b41705c5cd1b38f72}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_id\_by\_name@{gst\_tensor\_src\_iio\_get\_id\_by\_name}}
\index{gst\_tensor\_src\_iio\_get\_id\_by\_name@{gst\_tensor\_src\_iio\_get\_id\_by\_name}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_id\_by\_name()}{gst\_tensor\_src\_iio\_get\_id\_by\_name()}}
{\footnotesize\ttfamily static gint gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+id\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{dir\+\_\+name,  }\item[{const gchar $\ast$}]{name,  }\item[{const gchar $\ast$}]{prefix }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



check if device/trigger with the given name exists 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dir\+\_\+name} & Directory containing all the devices \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name of the device to be found \\
\hline
\mbox{\texttt{ in}}  & {\em prefix} & Prefix to match with the filename of the device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$>$=0 if OK, represents device/trigger number -\/1 if returned with error 
\end{DoxyReturn}
check for prefix and the next digit should be a number

Definition at line 576 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a833f3bf2efdae6df936ba5840f5a4d88}\label{gsttensor__srciio_8c_a833f3bf2efdae6df936ba5840f5a4d88}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_name\_by\_id@{gst\_tensor\_src\_iio\_get\_name\_by\_id}}
\index{gst\_tensor\_src\_iio\_get\_name\_by\_id@{gst\_tensor\_src\_iio\_get\_name\_by\_id}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_name\_by\_id()}{gst\_tensor\_src\_iio\_get\_name\_by\_id()}}
{\footnotesize\ttfamily static gchar$\ast$ gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+name\+\_\+by\+\_\+id (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{dir\+\_\+name,  }\item[{const gint}]{id,  }\item[{const gchar $\ast$}]{prefix }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



check if device/trigger with the given id exists 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dir\+\_\+name} & Directory containing all the devices \\
\hline
\mbox{\texttt{ in}}  & {\em id} & ID of the device to be found \\
\hline
\mbox{\texttt{ in}}  & {\em prefix} & Prefix to match with the filename of the device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
name on success (owned by caller), else N\+U\+LL 
\end{DoxyReturn}


Definition at line 640 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_aeddaebddc11b3a8d23c342759c8e4068}\label{gsttensor__srciio_8c_aeddaebddc11b3a8d23c342759c8e4068}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_property@{gst\_tensor\_src\_iio\_get\_property}}
\index{gst\_tensor\_src\_iio\_get\_property@{gst\_tensor\_src\_iio\_get\_property}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_property()}{gst\_tensor\_src\_iio\_get\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get tensor\+\_\+src\+\_\+iio properties 

interface of frequency is kept long for outside but uint64 inside

Definition at line 1264 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=328pt]{gsttensor__srciio_8c_aeddaebddc11b3a8d23c342759c8e4068_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_aeddaebddc11b3a8d23c342759c8e4068_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_aa446ed907fc831d099fc7c817cd3ab1b}\label{gsttensor__srciio_8c_aa446ed907fc831d099fc7c817cd3ab1b}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_get\_times@{gst\_tensor\_src\_iio\_get\_times}}
\index{gst\_tensor\_src\_iio\_get\_times@{gst\_tensor\_src\_iio\_get\_times}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_get\_times()}{gst\_tensor\_src\_iio\_get\_times()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+get\+\_\+times (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{basesrc,  }\item[{Gst\+Buffer $\ast$}]{buffer,  }\item[{Gst\+Clock\+Time $\ast$}]{start,  }\item[{Gst\+Clock\+Time $\ast$}]{end }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



returns the time for the buffers 

can\textquotesingle{}t sync using D\+TS, use P\+TS

Definition at line 2298 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_aa446ed907fc831d099fc7c817cd3ab1b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a487641bd0664075e38611cfe6369d881}\label{gsttensor__srciio_8c_a487641bd0664075e38611cfe6369d881}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_init@{gst\_tensor\_src\_iio\_init}}
\index{gst\_tensor\_src\_iio\_init@{gst\_tensor\_src\_iio\_init}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_init()}{gst\_tensor\_src\_iio\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize tensor\+\_\+src\+\_\+iio element. 

init properties

format of the source since I\+IO device as a source is live and operates at a fixed frequency, G\+S\+T\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+T\+I\+ME is used

set the source to be live

set the timestamps on each buffer

set async is necessary to make state change async sync state changes does not need calling \+\_\+start\+\_\+complete() from \+\_\+start()

Definition at line 439 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_a487641bd0664075e38611cfe6369d881_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a1157b25e2d9819a5e82030d1d515baf3}\label{gsttensor__srciio_8c_a1157b25e2d9819a5e82030d1d515baf3}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_is\_seekable@{gst\_tensor\_src\_iio\_is\_seekable}}
\index{gst\_tensor\_src\_iio\_is\_seekable@{gst\_tensor\_src\_iio\_is\_seekable}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_is\_seekable()}{gst\_tensor\_src\_iio\_is\_seekable()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+is\+\_\+seekable (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



check if source supports seeking 

iio sensors are live source without any support for seeking

Definition at line 2287 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a1157b25e2d9819a5e82030d1d515baf3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a5cb6a95ba9cadfbd352e8a280f6b3f2b}\label{gsttensor__srciio_8c_a5cb6a95ba9cadfbd352e8a280f6b3f2b}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_process\_scanned\_data@{gst\_tensor\_src\_iio\_process\_scanned\_data}}
\index{gst\_tensor\_src\_iio\_process\_scanned\_data@{gst\_tensor\_src\_iio\_process\_scanned\_data}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_process\_scanned\_data()}{gst\_tensor\_src\_iio\_process\_scanned\_data()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+process\+\_\+scanned\+\_\+data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} $\ast$}]{prop,  }\item[{gchar $\ast$}]{data,  }\item[{gfloat $\ast$}]{buffer\+\_\+map }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



process the scanned data from I\+IO device 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & Properties of one of the enabled channels \\
\hline
\mbox{\texttt{ in}}  & {\em data} & Data read from the I\+IO device \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & buffer\+\_\+map Gst buffer map to write data to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
F\+A\+L\+SE if fail, else T\+R\+UE
\end{DoxyReturn}
assumes each data starting point is byte aligned right shift the extra storage bits

right shift the extra storage bits for big endian

mask out the extra storage bits for little endian

follow through

right shift the extra storage bits for big endian

mask out the extra storage bits for little endian

follow through

follow through

follow through

right shift the extra storage bits for big endian

mask out the extra storage bits for little endian

Definition at line 2376 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a69a243f9f192f05d594c52126dfc0d3d}\label{gsttensor__srciio_8c_a69a243f9f192f05d594c52126dfc0d3d}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_set\_caps@{gst\_tensor\_src\_iio\_set\_caps}}
\index{gst\_tensor\_src\_iio\_set\_caps@{gst\_tensor\_src\_iio\_set\_caps}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_set\_caps()}{gst\_tensor\_src\_iio\_set\_caps()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+caps (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src,  }\item[{Gst\+Caps $\ast$}]{caps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



set new caps 



Definition at line 2142 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a69a243f9f192f05d594c52126dfc0d3d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_aa047c2ab5c61dd02eab296d08f15070a}\label{gsttensor__srciio_8c_aa047c2ab5c61dd02eab296d08f15070a}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_set\_channel\_type@{gst\_tensor\_src\_iio\_set\_channel\_type}}
\index{gst\_tensor\_src\_iio\_set\_channel\_type@{gst\_tensor\_src\_iio\_set\_channel\_type}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_set\_channel\_type()}{gst\_tensor\_src\_iio\_set\_channel\_type()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+channel\+\_\+type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}} $\ast$}]{prop,  }\item[{const gchar $\ast$}]{contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get type info about the channel from the string 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & prop Channel properties where type info will be set \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & Contains type unparsed information to be set \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if info was successfully set, false is info is not be parsed correctly @detail The format for the contents is expected to be of format 
\end{DoxyReturn}
check endian

verify static parts of the contents

check sign

used bits

verify static parts of the contents

storage bits

verify static parts of the contents

Definition at line 718 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ad922d7615753e983662b8dc008f19480}\label{gsttensor__srciio_8c_ad922d7615753e983662b8dc008f19480}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_set\_property@{gst\_tensor\_src\_iio\_set\_property}}
\index{gst\_tensor\_src\_iio\_set\_property@{gst\_tensor\_src\_iio\_set\_property}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_set\_property()}{gst\_tensor\_src\_iio\_set\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+set\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{const G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



set tensor\+\_\+src\+\_\+iio properties 

G\+Object method implementation No support for setting properties in P\+A\+U\+S\+E\+D/\+P\+L\+A\+Y\+I\+NG state as it needs to reset the device. To change the properties, user should stop the pipeline and set element state to R\+E\+A\+D\+Y/\+N\+U\+LL and then change the properties

using direct as we only need to store keys and keys form a unique set

this means val is duplicated. just skip it, then.

Definition at line 1098 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=267pt]{gsttensor__srciio_8c_ad922d7615753e983662b8dc008f19480_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_ad922d7615753e983662b8dc008f19480_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a72cba52ec7687b5f25d599c02c9e1b23}\label{gsttensor__srciio_8c_a72cba52ec7687b5f25d599c02c9e1b23}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_setup\_device\_buffer@{gst\_tensor\_src\_iio\_setup\_device\_buffer}}
\index{gst\_tensor\_src\_iio\_setup\_device\_buffer@{gst\_tensor\_src\_iio\_setup\_device\_buffer}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_setup\_device\_buffer()}{gst\_tensor\_src\_iio\_setup\_device\_buffer()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+device\+\_\+buffer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



setup device using name/id 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & self Tensor src iio object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE on success, F\+A\+L\+SE on failure 
\end{DoxyReturn}
once all these are set, set the buffer related thingies

open the buffer to read and ready the file descriptor

Definition at line 1913 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ae37a970d0be0e2a4652728e3c9018a84}\label{gsttensor__srciio_8c_ae37a970d0be0e2a4652728e3c9018a84}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_setup\_device\_properties@{gst\_tensor\_src\_iio\_setup\_device\_properties}}
\index{gst\_tensor\_src\_iio\_setup\_device\_properties@{gst\_tensor\_src\_iio\_setup\_device\_properties}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_setup\_device\_properties()}{gst\_tensor\_src\_iio\_setup\_device\_properties()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+device\+\_\+properties (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



setup device using name/id 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & self Tensor src iio object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE on success, F\+A\+L\+SE on failure 
\end{DoxyReturn}
Find the device

Definition at line 1623 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ae1d739175cb579aff09069d0c6f7a61a}\label{gsttensor__srciio_8c_ae1d739175cb579aff09069d0c6f7a61a}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_setup\_sampling\_frequency@{gst\_tensor\_src\_iio\_setup\_sampling\_frequency}}
\index{gst\_tensor\_src\_iio\_setup\_sampling\_frequency@{gst\_tensor\_src\_iio\_setup\_sampling\_frequency}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_setup\_sampling\_frequency()}{gst\_tensor\_src\_iio\_setup\_sampling\_frequency()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+sampling\+\_\+frequency (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



setup device sampling frequency 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & self Tensor src iio object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE on success, F\+A\+L\+SE on failure 
\end{DoxyReturn}
check if sampling frequency file exists

reset the sampling frequency set by the user if any, as it cant be set

store the default frequency

verify the frequency given by the user if any from the list of available sampling frequencies

if sampling frequency file does not exist, no error

if sampling frequency file does not exist, sampling frequency is first value from the list of available sampling frequencies. So, we can ignore setting it

interface of frequency is kept long for outside but uint64 inside

Definition at line 1735 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a1ea4e7e6fddc669c6922f8a6cff2d8d6}\label{gsttensor__srciio_8c_a1ea4e7e6fddc669c6922f8a6cff2d8d6}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_setup\_scan\_channels@{gst\_tensor\_src\_iio\_setup\_scan\_channels}}
\index{gst\_tensor\_src\_iio\_setup\_scan\_channels@{gst\_tensor\_src\_iio\_setup\_scan\_channels}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_setup\_scan\_channels()}{gst\_tensor\_src\_iio\_setup\_scan\_channels()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+scan\+\_\+channels (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



setup scan channels for the device 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & self Tensor src iio object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE on success, F\+A\+L\+SE on failure 
\end{DoxyReturn}
get all the channels that exist and then set enable on them

if enabling all channels failed, disable all channels

enable the custom channels and disable the rest

filter out disabled channels

set fixed caps for the src pad

create tensor\+\_\+config

Definition at line 1822 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a1d55237730283664a6e13083a6f44a48}\label{gsttensor__srciio_8c_a1d55237730283664a6e13083a6f44a48}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_setup\_trigger\_properties@{gst\_tensor\_src\_iio\_setup\_trigger\_properties}}
\index{gst\_tensor\_src\_iio\_setup\_trigger\_properties@{gst\_tensor\_src\_iio\_setup\_trigger\_properties}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_setup\_trigger\_properties()}{gst\_tensor\_src\_iio\_setup\_trigger\_properties()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+setup\+\_\+trigger\+\_\+properties (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



setup trigger using name/id 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & self Tensor src iio object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE on success, F\+A\+L\+SE on failure 
\end{DoxyReturn}
register the trigger

verify if trigger is supported by our device

find if the provided trigger exists

get the default trigger, if any

set the trigger

Definition at line 1659 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a8c3e98cc67bb0ea143ea2405809e19cc}\label{gsttensor__srciio_8c_a8c3e98cc67bb0ea143ea2405809e19cc}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_start@{gst\_tensor\_src\_iio\_start}}
\index{gst\_tensor\_src\_iio\_start@{gst\_tensor\_src\_iio\_start}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_start()}{gst\_tensor\_src\_iio\_start()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+start (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



start function, called when state changed null to ready. load the device and init the device resources 

Gst\+Base\+Src method implementation load and init resources

no support one shot mode for now

bytes every buffer will be fixed

complete the start of the base src

complete the start of the base src

Definition at line 1977 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{gsttensor__srciio_8c_a8c3e98cc67bb0ea143ea2405809e19cc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_aad993a3a87f2d916269b7d6446a650eb}\label{gsttensor__srciio_8c_aad993a3a87f2d916269b7d6446a650eb}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_iio\_stop@{gst\_tensor\_src\_iio\_stop}}
\index{gst\_tensor\_src\_iio\_stop@{gst\_tensor\_src\_iio\_stop}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_iio\_stop()}{gst\_tensor\_src\_iio\_stop()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+src\+\_\+iio\+\_\+stop (\begin{DoxyParamCaption}\item[{Gst\+Base\+Src $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



stop function, called when state changed ready to null. 

free resources related to the device

restore the iio device

Definition at line 2097 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_aad993a3a87f2d916269b7d6446a650eb_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_aad993a3a87f2d916269b7d6446a650eb_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a57fbe4d90a65044ab0e31545e814761f}\label{gsttensor__srciio_8c_a57fbe4d90a65044ab0e31545e814761f}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_merge\_tensor\_by\_type@{gst\_tensor\_src\_merge\_tensor\_by\_type}}
\index{gst\_tensor\_src\_merge\_tensor\_by\_type@{gst\_tensor\_src\_merge\_tensor\_by\_type}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_merge\_tensor\_by\_type()}{gst\_tensor\_src\_merge\_tensor\_by\_type()}}
{\footnotesize\ttfamily static gint gst\+\_\+tensor\+\_\+src\+\_\+merge\+\_\+tensor\+\_\+by\+\_\+type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{info,  }\item[{guint}]{size,  }\item[{guint}]{dir }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



merge multiple other/tensor 

\begin{DoxyNote}{Note}
they should have matching type and shape to form 1 other/tensors 

extra dimension should be available for other/tensors 

order of merge is stable 

merging into 1 tensor only supported using innermost dimension. 
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & info Tensor info to be merged \\
\hline
\mbox{\texttt{ in}}  & {\em size} & Info array size \\
\hline
\mbox{\texttt{ in}}  & {\em dir} & Innermost/outermost/innermost-\/outer (0/1/2) available dimension \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$>$=0 number of valid entries in the info after merge -\/1 failed due to missing extra dimension/mismatch shape/type 
\end{DoxyReturn}
base error control check

verify extra dimension (innermost to outermost)

verify that all the types and shapes match

return original if cant be merged and size within limits

If there are multiple available dimensions to merge along, we use dir to choose which the dimension to merge. If there is just 1 dimension, dir variable has no effect

No outer dimension available to merge

Now merge into 1 tensor using the selected dimension

Definition at line 491 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a26c12ca70742c0f3c2c46bbc2eb878cd}\label{gsttensor__srciio_8c_a26c12ca70742c0f3c2c46bbc2eb878cd}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_src\_restore\_iio\_device@{gst\_tensor\_src\_restore\_iio\_device}}
\index{gst\_tensor\_src\_restore\_iio\_device@{gst\_tensor\_src\_restore\_iio\_device}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_src\_restore\_iio\_device()}{gst\_tensor\_src\_restore\_iio\_device()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+src\+\_\+restore\+\_\+iio\+\_\+device (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



restore the iio device to its original device. 

reset enabled channels

reset sampling\+\_\+frequency

converting to long as setting interface to device

reset buffer\+\_\+capacity

reset current trigger

Definition at line 2049 of file gsttensor\+\_\+srciio.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_a26c12ca70742c0f3c2c46bbc2eb878cd_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_a26c12ca70742c0f3c2c46bbc2eb878cd_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_af90f8a0285176e622b4bd28e3cfcca46}\label{gsttensor__srciio_8c_af90f8a0285176e622b4bd28e3cfcca46}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_write\_sysfs\_int@{gst\_tensor\_write\_sysfs\_int}}
\index{gst\_tensor\_write\_sysfs\_int@{gst\_tensor\_write\_sysfs\_int}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_write\_sysfs\_int()}{gst\_tensor\_write\_sysfs\_int()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+write\+\_\+sysfs\+\_\+int (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self,  }\item[{const gchar $\ast$}]{file,  }\item[{const gchar $\ast$}]{base\+\_\+dir,  }\item[{const gint}]{contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



write the int in to the file 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em self} & Tensor src I\+IO object \\
\hline
\mbox{\texttt{ in}}  & {\em file} & Destination file for the data \\
\hline
\mbox{\texttt{ in}}  & {\em base\+\_\+dir} & Directory containing the file \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & Data to be written to the file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if write was successful, false on failure 
\end{DoxyReturn}


Definition at line 1449 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_af90f8a0285176e622b4bd28e3cfcca46_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_abe79325b5e702eec89a923f3089b4f39}\label{gsttensor__srciio_8c_abe79325b5e702eec89a923f3089b4f39}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!gst\_tensor\_write\_sysfs\_string@{gst\_tensor\_write\_sysfs\_string}}
\index{gst\_tensor\_write\_sysfs\_string@{gst\_tensor\_write\_sysfs\_string}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_write\_sysfs\_string()}{gst\_tensor\_write\_sysfs\_string()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+write\+\_\+sysfs\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8h_a682469fd9caa7e15808734107b40e63c}{Gst\+Tensor\+Src\+I\+IO}} $\ast$}]{self,  }\item[{const gchar $\ast$}]{file,  }\item[{const gchar $\ast$}]{base\+\_\+dir,  }\item[{const gchar $\ast$}]{contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



write the string in to the file 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em self} & Tensor src I\+IO object \\
\hline
\mbox{\texttt{ in}}  & {\em file} & Destination file for the data \\
\hline
\mbox{\texttt{ in}}  & {\em base\+\_\+dir} & Directory containing the file \\
\hline
\mbox{\texttt{ in}}  & {\em contents} & Data to be written to the file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if write was successful, false on failure 
\end{DoxyReturn}


Definition at line 1384 of file gsttensor\+\_\+srciio.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__srciio_8c_abe79325b5e702eec89a923f3089b4f39_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__srciio_8c_a292773a123394f43e4a7aef4a02c765b}\label{gsttensor__srciio_8c_a292773a123394f43e4a7aef4a02c765b}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!if@{if}}
\index{if@{if}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{if()}{if()}}
{\footnotesize\ttfamily \mbox{\hyperlink{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}{value\+\_\+unsigned}}\& if (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}-\/$>$}]{is\+\_\+signed }\end{DoxyParamCaption})}



Definition at line 117 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a7960ea76adb9c73e88cec03ac1c477c0}\label{gsttensor__srciio_8c_a7960ea76adb9c73e88cec03ac1c477c0}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}}
\index{PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{PROCESS\_SCANNED\_DATA()}{PROCESS\_SCANNED\_DATA()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA (\begin{DoxyParamCaption}\item[{guint16}]{,  }\item[{gint16}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__srciio_8c_a1c91e735c0cf40413193165215b8f4af}\label{gsttensor__srciio_8c_a1c91e735c0cf40413193165215b8f4af}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}}
\index{PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{PROCESS\_SCANNED\_DATA()}{PROCESS\_SCANNED\_DATA()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA (\begin{DoxyParamCaption}\item[{guint32}]{,  }\item[{gint32}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__srciio_8c_a8534d0fa5bc2736e56b8dfc8416fb3a8}\label{gsttensor__srciio_8c_a8534d0fa5bc2736e56b8dfc8416fb3a8}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}}
\index{PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{PROCESS\_SCANNED\_DATA()}{PROCESS\_SCANNED\_DATA()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA (\begin{DoxyParamCaption}\item[{guint64}]{,  }\item[{gint64}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__srciio_8c_a0627526987fedce5cbca6503c0d83653}\label{gsttensor__srciio_8c_a0627526987fedce5cbca6503c0d83653}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}}
\index{PROCESS\_SCANNED\_DATA@{PROCESS\_SCANNED\_DATA}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{PROCESS\_SCANNED\_DATA()}{PROCESS\_SCANNED\_DATA()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily P\+R\+O\+C\+E\+S\+S\+\_\+\+S\+C\+A\+N\+N\+E\+D\+\_\+\+D\+A\+TA (\begin{DoxyParamCaption}\item[{guint8}]{,  }\item[{gint8}]{ }\end{DoxyParamCaption})}

Define data processing functions for various types 

\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{gsttensor__srciio_8c_a0544c3fe466e421738dae463968b70ba}\label{gsttensor__srciio_8c_a0544c3fe466e421738dae463968b70ba}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!else@{else}}
\index{else@{else}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{else}{else}}
{\footnotesize\ttfamily else}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\{ }
\DoxyCodeLine{    \mbox{\hyperlink{gsttensor__srciio_8c_a434e7fda61b396296565ea8c1af9dead}{value\_float}} = ((gfloat) \mbox{\hyperlink{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}{value\_unsigned}} + \mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}-\/>\mbox{\hyperlink{struct__GstTensorSrcIIOChannelProperties_a782f5c337bf58a1fc7c12c32007cee49}{offset}}) * \mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}-\/>\mbox{\hyperlink{struct__GstTensorSrcIIOChannelProperties_a1481af46cfa134cb1e0bbca6c35ecc55}{scale}}}

\end{DoxyCode}


Definition at line 123 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}\label{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!prop@{prop}}
\index{prop@{prop}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{prop}{prop}}
{\footnotesize\ttfamily \mbox{\hyperlink{gsttensor__srciio_8h_a9d5d811ec69ac532b95e98eea88b595d}{Gst\+Tensor\+Src\+I\+I\+O\+Channel\+Properties}}$\ast$ prop}



D\+T\+Y\+P\+E\+\_\+\+U\+N\+S\+I\+G\+N\+ED ( . 



Definition at line 110 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a434e7fda61b396296565ea8c1af9dead}\label{gsttensor__srciio_8c_a434e7fda61b396296565ea8c1af9dead}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!value\_float@{value\_float}}
\index{value\_float@{value\_float}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{value\_float}{value\_float}}
{\footnotesize\ttfamily return value\+\_\+float}



Definition at line 126 of file gsttensor\+\_\+srciio.\+c.

\mbox{\Hypertarget{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}\label{gsttensor__srciio_8c_a108893e89a1f4fd594d37d065f116929}} 
\index{gsttensor\_srciio.c@{gsttensor\_srciio.c}!value\_unsigned@{value\_unsigned}}
\index{value\_unsigned@{value\_unsigned}!gsttensor\_srciio.c@{gsttensor\_srciio.c}}
\doxysubsubsection{\texorpdfstring{value\_unsigned}{value\_unsigned}}
{\footnotesize\ttfamily value\+\_\+unsigned}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\{ }
\DoxyCodeLine{  gfloat \mbox{\hyperlink{gsttensor__srciio_8c_a434e7fda61b396296565ea8c1af9dead}{value\_float}}}

\end{DoxyCode}


Definition at line 110 of file gsttensor\+\_\+srciio.\+c.

