Updated docu.

This commit is contained in:
Timo Lang
2015-06-08 11:04:50 +02:00
parent 86eb39b3a8
commit 42b6e3af36
202 changed files with 11953 additions and 976 deletions

View File

@@ -0,0 +1,540 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>discoverpixy: common/app/screen_photomode_save.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">discoverpixy
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_99a8943037ff3844556e6a5d529fec0c.html">app</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">screen_photomode_save.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="screen__photomode__save_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/**************************************************************************************************************************************</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">* Project: discoverpixy</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">* Website: https://github.com/t-moe/discoverpixy</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">* Authors: Aaron Schmocker, Timo Lang</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">* Institution: BFH Bern University of Applied Sciences</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">* File: common/app/screen_photomode_save.c</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">* Version History:</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">* Date Autor Email SHA Changes</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">* 2015-05-16 timolang@gmail.com 62006e0 Documented pixy_helper and implemented/finished photo-mode screens! Snap some shots!</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">* 2015-06-07 timolang@gmail.com c87220d Renamed pixy_helper to pixy_frame. Updated docu of appliaction. added doxygen comments to pixy_{frame,control}.h</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">**************************************************************************************************************************************/</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="screen__photomode__save_8h.html">screen_photomode_save.h</a>&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="filesystem_8h.html">filesystem.h</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="button_8h.html">button.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tft_8h.html">tft.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="touch_8h.html">touch.h</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pixy_8h.html">pixy.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pixy__frame_8h.html">pixy_frame.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#ae5d8f6a72bbdbe109bc151bfef8ac9a6"> 26</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html">BUTTON_STRUCT</a> <a class="code" href="screen__photomode__save_8c.html#ae5d8f6a72bbdbe109bc151bfef8ac9a6">b_back</a>; <span class="comment">//Button to navigate back</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a969b249abfb1776e2cc9567db889b83f"> 27</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html">TOUCH_AREA_STRUCT</a> <a class="code" href="screen__photomode__save_8c.html#a969b249abfb1776e2cc9567db889b83f">a_area</a>; <span class="comment">//Touch area to select the save-file</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">//Callback for when the user presses the &quot;back&quot; button</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a26b5a87b61eb1cd0888fdfc12a91a6d7"> 30</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="screen__photomode__save_8c.html#a26b5a87b61eb1cd0888fdfc12a91a6d7">b_back_cb</a>(<span class="keywordtype">void</span>* button)</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="group__screen.html#ga8e14bc7ee0214e2926965f9bdb54a866">gui_screen_back</a>();</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f"> 35</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a>; <span class="comment">//number of files into which we can write the image (size, flags ok)</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e"> 36</a></span>&#160;<span class="keyword">static</span> <span class="keyword">enum</span> {<a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba2e804b7c8163d212e6231f5228f73ce9">init</a>, <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>, <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e">showlist</a>, <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a>, <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05">saving</a>, <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199">done</a>} <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a>; <span class="comment">//Current state of the screen state machine</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af"> 37</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a>; <span class="comment">//The space between one line of text to the next</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab"> 38</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a>; <span class="comment">//The y-Coordinate of the Start of the File-List</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e"> 39</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>; <span class="comment">//The filename picked by the user, to save the image to</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">//Linked list structure to save all files which are suitable for saving.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html"> 42</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY_S</a> {</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18"> 43</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">filename</a>; <span class="comment">//Name of the file</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8"> 44</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY_S</a>* <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a>; <span class="comment">//Pointer to the next entry in the list or NULL</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;} <a class="code" href="screen__photomode__save_8c.html#ad24f527173a4d19eccd1b85180436b29">FILE_LIST_ENTRY</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#ad03f8d4c2501ad76eb27c418b7c68d0a"> 47</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>* <a class="code" href="screen__photomode__save_8c.html#ad03f8d4c2501ad76eb27c418b7c68d0a">files_ok</a>; <span class="comment">//Pointer to the head of the list</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">//Callback for when the user selects a file to save the image into</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a3d1decbb81b0f181eb0561c0f5f8fe3c"> 50</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="screen__photomode__save_8c.html#a3d1decbb81b0f181eb0561c0f5f8fe3c">touchCB</a>(<span class="keywordtype">void</span>* touchArea, <a class="code" href="group__touch.html#gab6037f32eebdf297a7d601a1e6c87768">TOUCH_ACTION</a> triggeredAction)</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">int</span> y = <a class="code" href="group__touch.html#ga42b918ead4f536a63f79601ab2978227">touch_get_last_point</a>().<a class="code" href="struct_p_o_i_n_t___s_t_r_u_c_t.html#ab0580f504a7428539be299fa71565f30">y</a> - <a class="code" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a>; <span class="comment">//Calculate the y-Coordinate of the touch point relative to the start of the file-list</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">int</span> elem = y / <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a>; <span class="comment">//Calculate the file index</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (elem &lt; 0 | elem &gt;= <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a>) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span>; <span class="comment">//Check if the file index is valid (0,1,..,num_files_ok-1)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">//Search for the corresponding entry in the linked list</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>* current_entry = <a class="code" href="screen__photomode__save_8c.html#ad03f8d4c2501ad76eb27c418b7c68d0a">files_ok</a>; <span class="comment">//Start walking through the list, starting by the head of the list</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; elem; i++) { <span class="comment">//Until we have reached the file (index)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; current_entry = current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a>; <span class="comment">//traverse to the next file</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a> = current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">filename</a>; <span class="comment">//save the picked filename. It will be used by the statemachine in the main loop</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="group__touch.html#gaa7d6cd569335d0ddfc9eeab479f3a0a8">touch_unregister_area</a>(&amp;a_area); <span class="comment">//unregister the touch area, we no longer need it. No more interrupts will be fired.</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05">saving</a>; <span class="comment">//Change the state of the statemachine</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">//Text-Lines to show if we have no matching files (num_files_ok==0)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a30a7b9e347f9114242f4f4fffe2c9626"> 73</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="screen__photomode__save_8c.html#a30a7b9e347f9114242f4f4fffe2c9626">nomatch_text</a> [] = {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="stringliteral">&quot;Due to limitations of the filesystem&quot;</span>,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="stringliteral">&quot;implementation you can only write to&quot;</span>,</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="stringliteral">&quot;existing files.&quot;</span>,</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="stringliteral">&quot;The files need to have a .bmp&quot;</span>,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="stringliteral">&quot;extension and must be at least&quot;</span>,</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="stringliteral">&quot;189410 bytes (185kb) large.&quot;</span>,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="stringliteral">&quot;Unfortunately there were no such&quot;</span>,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="stringliteral">&quot;files found in the root directory.&quot;</span>,</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="stringliteral">&quot;Please create some files and come&quot;</span>,</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="stringliteral">&quot;back again.&quot;</span>,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; NULL</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">//Bitmap header for a 318x198x24bit windows bitmap. data starts at 0x7A (= after this header)</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">//This header has been taken from a white bitmap saved with gimp.</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">//Wikipedia has a pretty good description on the header: http://de.wikipedia.org/wiki/Windows_Bitmap</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#acd7de4ca4cce429ec77297ab370bb849"> 93</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="screen__photomode__save_8c.html#acd7de4ca4cce429ec77297ab370bb849">bmpheader_data</a>[0x7A] = {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; 0x42, 0x4d, 0xe2, 0xe3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0xc6, 0x00,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xe3,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; 0x02, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00,</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; 0x00, 0x00</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">//Callback for when the screen is entered/loaded</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a3017cd14eca2b9e67a69e7ea559b5eaa"> 108</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="screen__photomode__save_8c.html#a3017cd14eca2b9e67a69e7ea559b5eaa">enter</a>(<span class="keywordtype">void</span>* <a class="code" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a>)</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="group__tft.html#ga6a2e3b3878ae5eea184d4c3ffe091b78">tft_clear</a>(<a class="code" href="group__tft.html#ga87b537f5fa5c109d3c05c13d6b18f382">WHITE</a>);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#define X_OFS 5</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">//Back button</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adf10d197299522577e67d366877bdd3f">base</a>.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aedb5fdfe3c1d1a915b668ba7f3950753">x1</a> = <a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>; <span class="comment">//Start X of Button</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adf10d197299522577e67d366877bdd3f">base</a>.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a47ada631c22a9d40348069145654f255">y1</a> = 210; <span class="comment">//Start Y of Button</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adf10d197299522577e67d366877bdd3f">base</a>.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#ac5bc000f8954f38b7a641a485a26bae7">x2</a> = <a class="code" href="group__button.html#ga0cc6f7717df9fbdc0f33efb88720a639">AUTO</a>; <span class="comment">//Auto Calculate X2 with String Width</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adf10d197299522577e67d366877bdd3f">base</a>.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aa377184ba406b3f0c4ac18c935378204">y2</a> = <a class="code" href="group__button.html#ga0cc6f7717df9fbdc0f33efb88720a639">AUTO</a>; <span class="comment">//Auto Calculate Y2 with String Height</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#aaf5a5af411fa69950e0b4415c8089c8b">txtcolor</a> = <a class="code" href="group__tft.html#ga87b537f5fa5c109d3c05c13d6b18f382">WHITE</a>; <span class="comment">//Set foreground color</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#aebb27fad2492ea7aa81895d0ede61fcf">bgcolor</a> = <a class="code" href="group__tft.html#gacbaf0b6287f2d906af1e76051be37a87">HEX</a>(0xAE1010); <span class="comment">//Set background color (Don&#39;t take 255 or 0 on at least one channel, to make shadows possible)</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adeae49dfe3584e6df726fb4167cd1cf7">font</a> = 0; <span class="comment">//Select Font</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#a16343090e80c4472521560f30113d96c">text</a> = <span class="stringliteral">&quot;Back&quot;</span>; <span class="comment">//Set Text (For formatted strings take sprintf)</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; b_back.<a class="code" href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#a269d23c8a60f8acdf9279642999ee6a9">callback</a> = <a class="code" href="screen__photomode__save_8c.html#a26b5a87b61eb1cd0888fdfc12a91a6d7">b_back_cb</a>; <span class="comment">//Call b_back_cb as Callback</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="group__button.html#ga64d5d2aaff2c917e5d43e7ed849607de">gui_button_add</a>(&amp;b_back); <span class="comment">//Register Button (and run the callback from now on)</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba2e804b7c8163d212e6231f5228f73ce9">init</a>; <span class="comment">//Start with the init state</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a> = <a class="code" href="group__tft.html#gaea9f6a88da91949befe52cd4ed000c5d">tft_font_height</a>(0) + 2; <span class="comment">//Save the height of the used font, for fast access</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; files_ok = NULL; <span class="comment">//initialize the linked list with 0 elements</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a> = 0; <span class="comment">//we have zero! elements</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">//Callback for when the screen should be updated</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">//This is the main loop of the screen. This method will be called repeatedly</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a5e8f84ee8ff4bf827775c38ae6752509"> 135</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="screen__photomode__save_8c.html#a5e8f84ee8ff4bf827775c38ae6752509">update</a>(<span class="keywordtype">void</span>* <a class="code" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a>)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">switch</span> (<a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a>) {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba2e804b7c8163d212e6231f5228f73ce9">init</a>: { <span class="comment">//Init State: The user just entered the screen</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html">DIRECTORY_STRUCT</a>* dir = <a class="code" href="group__filesystem.html#ga8b1099cbd3464fbe64f2010f16d87101">filesystem_dir_open</a>(<span class="stringliteral">&quot;.&quot;</span>); <span class="comment">//open root directory</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (dir == NULL) { <span class="comment">//error while opening root directory</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="group__tft.html#gabf54943131990b366ce6875a0e1925f6">tft_print_line</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, 5, <a class="code" href="group__tft.html#ga7b3b25cba33b07c303f3060fe41887f6">BLACK</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Error accessing Filesystem&quot;</span>);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> nomatch = <span class="keyword">true</span>; <span class="comment">//whether or not we have zero files which are suitable for saving</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; dir-&gt;<a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a256a3eb1c4d0a61a23ff722736ed18df">num_files</a>; i++) { <span class="comment">//walk through all files in the directory</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html">FILE_STRUCT</a>* file = &amp;(dir-&gt;<a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a87f6b6d5b8df736e7d52923a19131f86">files</a>[i]); <span class="comment">//Pointer to the current file/subdirectory</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">//Ignore directories, archives, hidden files, system files and files we cannot write to</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a3eb7d979a8d987e842e3c06d08b345c0">fattrib</a> &amp; (<a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba4a52b8103f1c46e28720230e62cc18f0">F_SYS</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3baa87f9e9b73e66d81563fe63aba76cc7d">F_HID</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba68f4a0b4d65d116a6fe51978a608b79a">F_ARC</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba9d0e592d6c03a8ea881767c87935c790">F_DIR</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba56340dd998fe228468cb60406dc3f5df">F_RDO</a>)) {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">//ignore files which are not large enough</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#aa5092484dbc5fc29a229feee0eae1246">fsize</a> &lt; 189410) {</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">continue</span>; <span class="comment">//size taken from an example bitmap (318x198x24)</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; nomatch = <span class="keyword">false</span>; <span class="comment">//at least one file matches</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (nomatch) { <span class="comment">//not one file is suitable for writing</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">int</span> y = 5; <span class="comment">//y-Coordinate where to start writing the error text</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">while</span> (<a class="code" href="screen__photomode__save_8c.html#a30a7b9e347f9114242f4f4fffe2c9626">nomatch_text</a>[i] != NULL) { <span class="comment">//for every line in the big error array</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">//Write the line&#39;s text and go to the next line</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="group__tft.html#gabf54943131990b366ce6875a0e1925f6">tft_print_line</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, y + i * <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a>, <a class="code" href="group__tft.html#ga7b3b25cba33b07c303f3060fe41887f6">BLACK</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <a class="code" href="screen__photomode__save_8c.html#a30a7b9e347f9114242f4f4fffe2c9626">nomatch_text</a>[i]);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; i++;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">//we have a least one suitable file</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e">showlist</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="group__filesystem.html#gab8001e040f37dc57b18e4155532b59ce">filesystem_dir_close</a>(dir); <span class="comment">//free directory struct</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e">showlist</a>: { <span class="comment">//Show List State: Where we load and present the suitable file&#39;s to the user in a list</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html">DIRECTORY_STRUCT</a>* dir2 = <a class="code" href="group__filesystem.html#ga8b1099cbd3464fbe64f2010f16d87101">filesystem_dir_open</a>(<span class="stringliteral">&quot;.&quot;</span>); <span class="comment">//Open the directory again</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (dir2 == NULL) {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span>; <span class="comment">//Error on opening? This should never happen, since it&#39;s handled in the previous state</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">int</span> y = 5; <span class="comment">//y-Coordinate where to start drawing/writing text/list-elements</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="group__tft.html#gabf54943131990b366ce6875a0e1925f6">tft_print_line</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, y, <a class="code" href="group__tft.html#ga7b3b25cba33b07c303f3060fe41887f6">BLACK</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Pick a file to save the image to&quot;</span>);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; y += <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a> + 5;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="group__tft.html#gabf54943131990b366ce6875a0e1925f6">tft_print_line</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, y, <a class="code" href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Name Modified Size&quot;</span>);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; y += <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a> = y; <span class="comment">//store the y coordinate of the start of the list away (used in toucharea callback)</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a> = 0; <span class="comment">//we start with 0 matching files</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>* current_entry = NULL; <span class="comment">//We start with an empty list</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; dir2-&gt;<a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a256a3eb1c4d0a61a23ff722736ed18df">num_files</a> &amp;&amp; <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a> &lt; 10; i++) { <span class="comment">//go through all the files of the directory, abort if we have 10 matches</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html">FILE_STRUCT</a>* file = &amp;(dir2-&gt;<a class="code" href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a87f6b6d5b8df736e7d52923a19131f86">files</a>[i]);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">//Ignore directories, archives, hidden files, system files and files we cannot write to</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a3eb7d979a8d987e842e3c06d08b345c0">fattrib</a> &amp; (<a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba4a52b8103f1c46e28720230e62cc18f0">F_SYS</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3baa87f9e9b73e66d81563fe63aba76cc7d">F_HID</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba68f4a0b4d65d116a6fe51978a608b79a">F_ARC</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba9d0e592d6c03a8ea881767c87935c790">F_DIR</a> | <a class="code" href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba56340dd998fe228468cb60406dc3f5df">F_RDO</a>)) {</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">//ignore files which are not large enough</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#aa5092484dbc5fc29a229feee0eae1246">fsize</a> &lt; 189410) {</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">continue</span>; <span class="comment">//size taken from an example bitmap (318x198x24)</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">//Print out filename, modified date,time and file size</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, y, <a class="code" href="group__tft.html#ga7b3b25cba33b07c303f3060fe41887f6">BLACK</a>,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;%-16s %02u.%02u.%02u %02u:%02u:%02u %u&quot;</span>,</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#ae96bbe3347b319ee7bdbd1f2e2ba9f5b">fname</a>,</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a87b927c3a2b9093be39307d2f1d47b61">fdate</a>.<a class="code" href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a2ce67e633b6747257e9cfc74288fcc31">day</a>,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a87b927c3a2b9093be39307d2f1d47b61">fdate</a>.<a class="code" href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a1f902d56334cc3e0a86d4b08f34bfff6">month</a>,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; (file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a87b927c3a2b9093be39307d2f1d47b61">fdate</a>.<a class="code" href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a2a7fd6ec9f3bf84d7c564990dcf0bfb8">year</a> + 1980) % 100,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a708226ca737e39bed0dc978eb31e3730">ftime</a>.<a class="code" href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a7f39b6fc12f0b04a38625ff3040dd30c">hour</a>,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a708226ca737e39bed0dc978eb31e3730">ftime</a>.<a class="code" href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a3e054086f983d0603a8919338354951b">min</a>,</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#a708226ca737e39bed0dc978eb31e3730">ftime</a>.<a class="code" href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a1bcccadb3a5a1a832dfe835818015058">sec</a> * 2,</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#aa5092484dbc5fc29a229feee0eae1246">fsize</a>);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span> (current_entry == NULL) { <span class="comment">//The list is empty</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; current_entry = malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>)); <span class="comment">//create new entry</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; files_ok = current_entry; <span class="comment">//assign it to the list head</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">//there&#39;s a least one entry in the list</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a> = malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>)); <span class="comment">//append entry to previous entry</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; current_entry = current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a>; <span class="comment">//newly created entry is the current now.</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a> = NULL; <span class="comment">//we&#39;re at the end of the list (for now)</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">filename</a> = malloc(strlen(file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#ae96bbe3347b319ee7bdbd1f2e2ba9f5b">fname</a>) + 1); <span class="comment">//allocate space for the filename + zero-termination</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; strcpy(current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">filename</a>, file-&gt;<a class="code" href="struct_f_i_l_e___s_t_r_u_c_t.html#ae96bbe3347b319ee7bdbd1f2e2ba9f5b">fname</a>); <span class="comment">//copy filename (so that we can close the directory after scanning)</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">//since we have found a suitable file we need to increment the position in the list</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a>++;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; y += <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">//Touch area for file-selection (in the list)</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a4026095999c2fd7a91f9bb91390647a4">hookedActions</a> = <a class="code" href="group__touch.html#ggab6037f32eebdf297a7d601a1e6c87768a082df10a24f2cb7c2a8098c0df591810">PEN_UP</a>; <span class="comment">//we&#39;re only interested in PEN_UP events</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aedb5fdfe3c1d1a915b668ba7f3950753">x1</a> = <a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>; <span class="comment">//Left border</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a47ada631c22a9d40348069145654f255">y1</a> = <a class="code" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a>; <span class="comment">//Start where the list started</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#ac5bc000f8954f38b7a641a485a26bae7">x2</a> = 320 - <a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>; <span class="comment">//Right border</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aa377184ba406b3f0c4ac18c935378204">y2</a> = <a class="code" href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a> + <a class="code" href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a> * <a class="code" href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a>; <span class="comment">//stop at the end of the list</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; a_area.<a class="code" href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a4b44f431c154678005298b0f0618cd37">callback</a> = <a class="code" href="screen__photomode__save_8c.html#a3d1decbb81b0f181eb0561c0f5f8fe3c">touchCB</a>; <span class="comment">//execute our callback when PEN_UP occurs</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="group__touch.html#ga3adc36f55b7475b3f652c38c0e23d741">touch_register_area</a>(&amp;a_area); <span class="comment">//register the touch area and receive events from now on</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="group__filesystem.html#gab8001e040f37dc57b18e4155532b59ce">filesystem_dir_close</a>(dir2); <span class="comment">//we no longer need the directory struct, since we have our own linked list now</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a>: <span class="comment">//Picking State: Where we wait on the users file choice</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="group__pixy.html#ga72a2cd126f6a5f67842e5ff66424ccb0">pixy_service</a>(); <span class="comment">//Handle pending pixy events</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">//do nothing and wait on user to pick a file</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05">saving</a>: { <span class="comment">//Saving State: Where we save the image to the selected file</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="struct_f_i_l_e___h_a_n_d_l_e.html">FILE_HANDLE</a>* file = <a class="code" href="group__filesystem.html#gabd043128e80a4f0573b1360d921b046c">filesystem_file_open</a>(<a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>); <span class="comment">//try to open the selected file</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (file == NULL) { <span class="comment">//opening the file failed</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, 190, <a class="code" href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Could not open %s&quot;</span>, <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="group__filesystem.html#gac447af479c334caa207d6c279571d8a2">filesystem_file_seek</a>(file, 0); <span class="comment">//seek to the start of the file (optional?)</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="group__filesystem.html#gae7124857f3ab32f6032ef129f2a80000">filesystem_file_write</a>(file, <a class="code" href="screen__photomode__save_8c.html#acd7de4ca4cce429ec77297ab370bb849">bmpheader_data</a>, 0x7A) != <a class="code" href="group__filesystem.html#ggab08f51089a5ddbb470a1a36a9478dda4ab16a72615f8613168ea14797c243fdfd">F_OK</a>) { <span class="comment">//Writing the header failed</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, 190, <a class="code" href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Error while writing to %s&quot;</span>, <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="group__filesystem.html#ga0e6cc31bf4c889249e13254306994c2f">filesystem_file_close</a>(file);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="group__pixy__helper.html#gaeb47b641ad8f8cb10c26debb27c7dead">pixy_save_full_frame</a>(file) != 0) { <span class="comment">//Writing the imagedata failed</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, 190, <a class="code" href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Error while writing to %s&quot;</span>, <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="group__filesystem.html#ga0e6cc31bf4c889249e13254306994c2f">filesystem_file_close</a>(file);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">//if we reach this point, we have written all data out successfully</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="group__filesystem.html#ga0e6cc31bf4c889249e13254306994c2f">filesystem_file_close</a>(file); <span class="comment">//close/finalize the file</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a>(<a class="code" href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a>, 190, <a class="code" href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a>, <a class="code" href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a>, 0, <span class="stringliteral">&quot;Image saved to %s&quot;</span>, <a class="code" href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a>);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> = <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199">done</a>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a>: <span class="comment">//Error State: Where we show an error message and leave the user no other choice than to click the backbutton</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199">done</a>: <span class="comment">//Done State: When saving the file was successful</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="group__pixy.html#ga72a2cd126f6a5f67842e5ff66424ccb0">pixy_service</a>(); <span class="comment">//Handle pending pixy events</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">//wait on user to click the back button</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">//Callback for when the screen is left/unloaded</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#acd1409088e83cf2a8ba2cf96dd9b52f8"> 310</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="screen__photomode__save_8c.html#acd1409088e83cf2a8ba2cf96dd9b52f8">leave</a>(<span class="keywordtype">void</span>* <a class="code" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a>)</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="group__button.html#ga39e6ec07616381a15f276cd821dad4fd">gui_button_remove</a>(&amp;b_back); <span class="comment">//Remove/Free the back button</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> == <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a>) { <span class="comment">//The user left the screen in the &quot;picking&quot;-phase</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="group__touch.html#gaa7d6cd569335d0ddfc9eeab479f3a0a8">touch_unregister_area</a>(&amp;a_area); <span class="comment">//remove the touch area (for the list)</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> == <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a> || <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> == <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05">saving</a> || <a class="code" href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a> == <a class="code" href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199">done</a>) { <span class="comment">//the user left the screen after we created the linked list</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">//Iterate through the linked list and free all resources</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>* current_entry = <a class="code" href="screen__photomode__save_8c.html#ad03f8d4c2501ad76eb27c418b7c68d0a">files_ok</a>; <span class="comment">//start with the list head</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">while</span> (current_entry != NULL) { <span class="comment">//while we&#39;re not at the end</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY</a>* temp = current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">next</a>; <span class="comment">//save the next pointer because we free the current element on the next line</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; free((<span class="keywordtype">void</span>*)(current_entry-&gt;<a class="code" href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">filename</a>)); <span class="comment">//free filename</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; free(current_entry); <span class="comment">//free element itself</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; current_entry = temp; <span class="comment">//advance</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">//Declare screen callbacks</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d"> 332</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct_s_c_r_e_e_n___s.html">SCREEN_STRUCT</a> <a class="code" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a> = {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a3017cd14eca2b9e67a69e7ea559b5eaa">enter</a>,</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="screen__photomode__save_8c.html#acd1409088e83cf2a8ba2cf96dd9b52f8">leave</a>,</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="screen__photomode__save_8c.html#a5e8f84ee8ff4bf827775c38ae6752509">update</a></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;};</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="group__photomodesave.html#ga151b30d2b85d5e9fdab4abecdb165207"> 338</a></span>&#160;<a class="code" href="struct_s_c_r_e_e_n___s.html">SCREEN_STRUCT</a>* <a class="code" href="group__photomodesave.html#ga151b30d2b85d5e9fdab4abecdb165207">get_screen_photomodesave</a>()</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;{</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> &amp;<a class="code" href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a>;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div>
<div class="ttc" id="group__touch_html_gab6037f32eebdf297a7d601a1e6c87768"><div class="ttname"><a href="group__touch.html#gab6037f32eebdf297a7d601a1e6c87768">TOUCH_ACTION</a></div><div class="ttdeci">TOUCH_ACTION</div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00052">touch.h:52</a></div></div>
<div class="ttc" id="group__tft_html_gaea9f6a88da91949befe52cd4ed000c5d"><div class="ttname"><a href="group__tft.html#gaea9f6a88da91949befe52cd4ed000c5d">tft_font_height</a></div><div class="ttdeci">uint8_t tft_font_height(uint8_t fontnum)</div><div class="ttdef"><b>Definition:</b> <a href="tft_8c_source.html#l00087">tft.c:87</a></div></div>
<div class="ttc" id="group__touch_html_ga3adc36f55b7475b3f652c38c0e23d741"><div class="ttname"><a href="group__touch.html#ga3adc36f55b7475b3f652c38c0e23d741">touch_register_area</a></div><div class="ttdeci">bool touch_register_area(TOUCH_AREA_STRUCT *area)</div><div class="ttdef"><b>Definition:</b> <a href="touch_8c_source.html#l00181">touch.c:181</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_acd7de4ca4cce429ec77297ab370bb849"><div class="ttname"><a href="screen__photomode__save_8c.html#acd7de4ca4cce429ec77297ab370bb849">bmpheader_data</a></div><div class="ttdeci">static unsigned char bmpheader_data[0x7A]</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00093">screen_photomode_save.c:93</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_a16343090e80c4472521560f30113d96c"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#a16343090e80c4472521560f30113d96c">BUTTON_STRUCT::text</a></div><div class="ttdeci">const char * text</div><div class="ttdoc">The label of the button. </div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00061">button.h:61</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_aaf5a5af411fa69950e0b4415c8089c8b"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#aaf5a5af411fa69950e0b4415c8089c8b">BUTTON_STRUCT::txtcolor</a></div><div class="ttdeci">uint16_t txtcolor</div><div class="ttdoc">The 16-bit text color. </div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00059">button.h:59</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba222b1a42a2963ceeb4328fb55c40f37e">showlist</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="group__button_html_ga0cc6f7717df9fbdc0f33efb88720a639"><div class="ttname"><a href="group__button.html#ga0cc6f7717df9fbdc0f33efb88720a639">AUTO</a></div><div class="ttdeci">#define AUTO</div><div class="ttdoc">Use this value instead of x2, y2 in the BUTTON_STRUCT to autocalculate the button width/height...</div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00065">button.h:65</a></div></div>
<div class="ttc" id="group__filesystem_html_gac447af479c334caa207d6c279571d8a2"><div class="ttname"><a href="group__filesystem.html#gac447af479c334caa207d6c279571d8a2">filesystem_file_seek</a></div><div class="ttdeci">FILE_STATUS filesystem_file_seek(FILE_HANDLE *handle, uint32_t offset)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00043">filesystem.c:43</a></div></div>
<div class="ttc" id="group__touch_html_ggab6037f32eebdf297a7d601a1e6c87768a082df10a24f2cb7c2a8098c0df591810"><div class="ttname"><a href="group__touch.html#ggab6037f32eebdf297a7d601a1e6c87768a082df10a24f2cb7c2a8098c0df591810">PEN_UP</a></div><div class="ttdoc">Receive an event when the pen goes up inside the region. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00055">touch.h:55</a></div></div>
<div class="ttc" id="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s_html_aeac90097f29f7529968697163cea5c18"><div class="ttname"><a href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#aeac90097f29f7529968697163cea5c18">FILE_LIST_ENTRY_S::filename</a></div><div class="ttdeci">char * filename</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00043">screen_photomode_save.c:43</a></div></div>
<div class="ttc" id="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t_html_a1bcccadb3a5a1a832dfe835818015058"><div class="ttname"><a href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a1bcccadb3a5a1a832dfe835818015058">FILE_TIME_STRUCT::sec</a></div><div class="ttdeci">unsigned sec</div><div class="ttdoc">second/2 (0..29) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00055">filesystem.h:55</a></div></div>
<div class="ttc" id="group__photomodesave_html_ga151b30d2b85d5e9fdab4abecdb165207"><div class="ttname"><a href="group__photomodesave.html#ga151b30d2b85d5e9fdab4abecdb165207">get_screen_photomodesave</a></div><div class="ttdeci">SCREEN_STRUCT * get_screen_photomodesave()</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00338">screen_photomode_save.c:338</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_a47ada631c22a9d40348069145654f255"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a47ada631c22a9d40348069145654f255">TOUCH_AREA_STRUCT::y1</a></div><div class="ttdeci">uint16_t y1</div><div class="ttdoc">Top Left Y-Coordinate of Area. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00075">touch.h:75</a></div></div>
<div class="ttc" id="group__tft_html_ga765c521ee1b01ab0c34449936500291b"><div class="ttname"><a href="group__tft.html#ga765c521ee1b01ab0c34449936500291b">tft_print_formatted</a></div><div class="ttdeci">void tft_print_formatted(uint16_t x, uint16_t y, uint16_t color, uint16_t bgcolor, uint8_t font, const char *format,...)</div><div class="ttdef"><b>Definition:</b> <a href="tft_8c_source.html#l00111">tft.c:111</a></div></div>
<div class="ttc" id="struct_p_o_i_n_t___s_t_r_u_c_t_html_ab0580f504a7428539be299fa71565f30"><div class="ttname"><a href="struct_p_o_i_n_t___s_t_r_u_c_t.html#ab0580f504a7428539be299fa71565f30">POINT_STRUCT::y</a></div><div class="ttdeci">uint16_t y</div><div class="ttdoc">The Y-Coordinate of the point. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00088">touch.h:88</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a2877431286fdd28a2ecd4ca764565c15"><div class="ttname"><a href="screen__photomode__save_8c.html#a2877431286fdd28a2ecd4ca764565c15">X_OFS</a></div><div class="ttdeci">#define X_OFS</div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html">BUTTON_STRUCT</a></div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00055">button.h:55</a></div></div>
<div class="ttc" id="group__button_html_ga64d5d2aaff2c917e5d43e7ed849607de"><div class="ttname"><a href="group__button.html#ga64d5d2aaff2c917e5d43e7ed849607de">gui_button_add</a></div><div class="ttdeci">bool gui_button_add(BUTTON_STRUCT *button)</div><div class="ttdef"><b>Definition:</b> <a href="button_8c_source.html#l00133">button.c:133</a></div></div>
<div class="ttc" id="group__tft_html_gabf54943131990b366ce6875a0e1925f6"><div class="ttname"><a href="group__tft.html#gabf54943131990b366ce6875a0e1925f6">tft_print_line</a></div><div class="ttdeci">void tft_print_line(uint16_t x, uint16_t y, uint16_t color, uint16_t bgcolor, uint8_t font, const char *text)</div><div class="ttdef"><b>Definition:</b> <a href="tft_8c_source.html#l00098">tft.c:98</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html_a87b927c3a2b9093be39307d2f1d47b61"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html#a87b927c3a2b9093be39307d2f1d47b61">FILE_STRUCT::fdate</a></div><div class="ttdeci">FILE_DATE_STRUCT fdate</div><div class="ttdoc">Last modified date. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00063">filesystem.h:63</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55babf49c9324fed2b744a4bb1a07e123543">picking</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t_html_a2ce67e633b6747257e9cfc74288fcc31"><div class="ttname"><a href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a2ce67e633b6747257e9cfc74288fcc31">FILE_DATE_STRUCT::day</a></div><div class="ttdeci">unsigned day</div><div class="ttdoc">day (1..31) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00046">filesystem.h:46</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html_a3eb7d979a8d987e842e3c06d08b345c0"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html#a3eb7d979a8d987e842e3c06d08b345c0">FILE_STRUCT::fattrib</a></div><div class="ttdeci">uint8_t fattrib</div><div class="ttdoc">File/Directory Attributes. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00065">filesystem.h:65</a></div></div>
<div class="ttc" id="struct_f_i_l_e___h_a_n_d_l_e_html"><div class="ttname"><a href="struct_f_i_l_e___h_a_n_d_l_e.html">FILE_HANDLE</a></div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00081">filesystem.h:81</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_aedb5fdfe3c1d1a915b668ba7f3950753"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aedb5fdfe3c1d1a915b668ba7f3950753">TOUCH_AREA_STRUCT::x1</a></div><div class="ttdeci">uint16_t x1</div><div class="ttdoc">Top Left X-Coordinate of Area. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00074">touch.h:74</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a26b5a87b61eb1cd0888fdfc12a91a6d7"><div class="ttname"><a href="screen__photomode__save_8c.html#a26b5a87b61eb1cd0888fdfc12a91a6d7">b_back_cb</a></div><div class="ttdeci">static void b_back_cb(void *button)</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00030">screen_photomode_save.c:30</a></div></div>
<div class="ttc" id="screen__photomode__save_8h_html"><div class="ttname"><a href="screen__photomode__save_8h.html">screen_photomode_save.h</a></div></div>
<div class="ttc" id="group__tft_html_ga6c54e72c6142d317114a29adbcbb24b6"><div class="ttname"><a href="group__tft.html#ga6c54e72c6142d317114a29adbcbb24b6">TRANSPARENT</a></div><div class="ttdeci">#define TRANSPARENT</div><div class="ttdef"><b>Definition:</b> <a href="tft_8h_source.html#l00066">tft.h:66</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55bad606e435413ea0944dd00d49e901e4ed">error</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="group__pixy__helper_html_gaeb47b641ad8f8cb10c26debb27c7dead"><div class="ttname"><a href="group__pixy__helper.html#gaeb47b641ad8f8cb10c26debb27c7dead">pixy_save_full_frame</a></div><div class="ttdeci">int pixy_save_full_frame(FILE_HANDLE *handle)</div><div class="ttdef"><b>Definition:</b> <a href="pixy__frame_8c_source.html#l00065">pixy_frame.c:65</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_aebb27fad2492ea7aa81895d0ede61fcf"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#aebb27fad2492ea7aa81895d0ede61fcf">BUTTON_STRUCT::bgcolor</a></div><div class="ttdeci">uint16_t bgcolor</div><div class="ttdoc">The 16-bit background color of the button. </div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00057">button.h:57</a></div></div>
<div class="ttc" id="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s_html"><div class="ttname"><a href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html">FILE_LIST_ENTRY_S</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00042">screen_photomode_save.c:42</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a77e479b1ae98529fa834688a147ca5af"><div class="ttname"><a href="screen__photomode__save_8c.html#a77e479b1ae98529fa834688a147ca5af">fontheight</a></div><div class="ttdeci">static int fontheight</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00037">screen_photomode_save.c:37</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba39ecd2c0ac98899231edab64bf304e05">saving</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_adf10d197299522577e67d366877bdd3f"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adf10d197299522577e67d366877bdd3f">BUTTON_STRUCT::base</a></div><div class="ttdeci">TOUCH_AREA_STRUCT base</div><div class="ttdoc">Basic geometry of the button. You only need to set the x1, y1, x2, y2 members of this struct...</div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00056">button.h:56</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a969b249abfb1776e2cc9567db889b83f"><div class="ttname"><a href="screen__photomode__save_8c.html#a969b249abfb1776e2cc9567db889b83f">a_area</a></div><div class="ttdeci">static TOUCH_AREA_STRUCT a_area</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00027">screen_photomode_save.c:27</a></div></div>
<div class="ttc" id="group__touch_html_gaa7d6cd569335d0ddfc9eeab479f3a0a8"><div class="ttname"><a href="group__touch.html#gaa7d6cd569335d0ddfc9eeab479f3a0a8">touch_unregister_area</a></div><div class="ttdeci">void touch_unregister_area(TOUCH_AREA_STRUCT *area)</div><div class="ttdef"><b>Definition:</b> <a href="touch_8c_source.html#l00195">touch.c:195</a></div></div>
<div class="ttc" id="group__tft_html_gacbaf0b6287f2d906af1e76051be37a87"><div class="ttname"><a href="group__tft.html#gacbaf0b6287f2d906af1e76051be37a87">HEX</a></div><div class="ttdeci">#define HEX(h)</div><div class="ttdef"><b>Definition:</b> <a href="tft_8h_source.html#l00060">tft.h:60</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html">TOUCH_AREA_STRUCT</a></div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00072">touch.h:72</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_aa377184ba406b3f0c4ac18c935378204"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#aa377184ba406b3f0c4ac18c935378204">TOUCH_AREA_STRUCT::y2</a></div><div class="ttdeci">uint16_t y2</div><div class="ttdoc">Bottom Right Y-Coordinate of Area. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00077">touch.h:77</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_ad24f527173a4d19eccd1b85180436b29"><div class="ttname"><a href="screen__photomode__save_8c.html#ad24f527173a4d19eccd1b85180436b29">FILE_LIST_ENTRY</a></div><div class="ttdeci">struct FILE_LIST_ENTRY_S FILE_LIST_ENTRY</div></div>
<div class="ttc" id="group__pixy_html_ga72a2cd126f6a5f67842e5ff66424ccb0"><div class="ttname"><a href="group__pixy.html#ga72a2cd126f6a5f67842e5ff66424ccb0">pixy_service</a></div><div class="ttdeci">int pixy_service()</div></div>
<div class="ttc" id="button_8h_html"><div class="ttname"><a href="button_8h.html">button.h</a></div></div>
<div class="ttc" id="group__filesystem_html_gabd043128e80a4f0573b1360d921b046c"><div class="ttname"><a href="group__filesystem.html#gabd043128e80a4f0573b1360d921b046c">filesystem_file_open</a></div><div class="ttdeci">FILE_HANDLE * filesystem_file_open(const char *filename)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00033">filesystem.c:33</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a5b355141d49e5da4140613bd88d73549"><div class="ttname"><a href="screen__photomode__save_8c.html#a5b355141d49e5da4140613bd88d73549">state</a></div><div class="ttdeci">static enum @0 state</div></div>
<div class="ttc" id="group__filesystem_html_ga0e6cc31bf4c889249e13254306994c2f"><div class="ttname"><a href="group__filesystem.html#ga0e6cc31bf4c889249e13254306994c2f">filesystem_file_close</a></div><div class="ttdeci">void filesystem_file_close(FILE_HANDLE *handle)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00038">filesystem.c:38</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55ba2e804b7c8163d212e6231f5228f73ce9"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba2e804b7c8163d212e6231f5228f73ce9">init</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="tft_8h_html"><div class="ttname"><a href="tft_8h.html">tft.h</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_a4b44f431c154678005298b0f0618cd37"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a4b44f431c154678005298b0f0618cd37">TOUCH_AREA_STRUCT::callback</a></div><div class="ttdeci">TOUCH_CALLBACK callback</div><div class="ttdoc">Callback which is executed when an event occurred in this Area. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00078">touch.h:78</a></div></div>
<div class="ttc" id="group__filesystem_html_gga07e357318d9528f9d2df7e5c86c81a3ba68f4a0b4d65d116a6fe51978a608b79a"><div class="ttname"><a href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba68f4a0b4d65d116a6fe51978a608b79a">F_ARC</a></div><div class="ttdoc">File has the archive flag set (probably unused) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00037">filesystem.h:37</a></div></div>
<div class="ttc" id="touch_8h_html"><div class="ttname"><a href="touch_8h.html">touch.h</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html_ae96bbe3347b319ee7bdbd1f2e2ba9f5b"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html#ae96bbe3347b319ee7bdbd1f2e2ba9f5b">FILE_STRUCT::fname</a></div><div class="ttdeci">char * fname</div><div class="ttdoc">File/Directory name. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00066">filesystem.h:66</a></div></div>
<div class="ttc" id="group__tft_html_ga6a2e3b3878ae5eea184d4c3ffe091b78"><div class="ttname"><a href="group__tft.html#ga6a2e3b3878ae5eea184d4c3ffe091b78">tft_clear</a></div><div class="ttdeci">void tft_clear(uint16_t color)</div><div class="ttdef"><b>Definition:</b> <a href="tft_8c_source.html#l00045">tft.c:45</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_ae5d8f6a72bbdbe109bc151bfef8ac9a6"><div class="ttname"><a href="screen__photomode__save_8c.html#ae5d8f6a72bbdbe109bc151bfef8ac9a6">b_back</a></div><div class="ttdeci">static BUTTON_STRUCT b_back</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00026">screen_photomode_save.c:26</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_ac5bc000f8954f38b7a641a485a26bae7"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#ac5bc000f8954f38b7a641a485a26bae7">TOUCH_AREA_STRUCT::x2</a></div><div class="ttdeci">uint16_t x2</div><div class="ttdoc">Bottom Right X-Coordinate of Area. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00076">touch.h:76</a></div></div>
<div class="ttc" id="pixy_8h_html"><div class="ttname"><a href="pixy_8h.html">pixy.h</a></div></div>
<div class="ttc" id="filesystem_8h_html"><div class="ttname"><a href="filesystem_8h.html">filesystem.h</a></div></div>
<div class="ttc" id="group__filesystem_html_gga07e357318d9528f9d2df7e5c86c81a3ba4a52b8103f1c46e28720230e62cc18f0"><div class="ttname"><a href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba4a52b8103f1c46e28720230e62cc18f0">F_SYS</a></div><div class="ttdoc">File is a system file. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00035">filesystem.h:35</a></div></div>
<div class="ttc" id="group__button_html_ga39e6ec07616381a15f276cd821dad4fd"><div class="ttname"><a href="group__button.html#ga39e6ec07616381a15f276cd821dad4fd">gui_button_remove</a></div><div class="ttdeci">void gui_button_remove(BUTTON_STRUCT *button)</div><div class="ttdef"><b>Definition:</b> <a href="button_8c_source.html#l00184">button.c:184</a></div></div>
<div class="ttc" id="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t_html_a2a7fd6ec9f3bf84d7c564990dcf0bfb8"><div class="ttname"><a href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a2a7fd6ec9f3bf84d7c564990dcf0bfb8">FILE_DATE_STRUCT::year</a></div><div class="ttdeci">unsigned year</div><div class="ttdoc">year from 1980 (0..127) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00044">filesystem.h:44</a></div></div>
<div class="ttc" id="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t_html_a256a3eb1c4d0a61a23ff722736ed18df"><div class="ttname"><a href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a256a3eb1c4d0a61a23ff722736ed18df">DIRECTORY_STRUCT::num_files</a></div><div class="ttdeci">uint16_t num_files</div><div class="ttdoc">Number of files/directories in this directory. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00074">filesystem.h:74</a></div></div>
<div class="ttc" id="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t_html_a1f902d56334cc3e0a86d4b08f34bfff6"><div class="ttname"><a href="struct_f_i_l_e___d_a_t_e___s_t_r_u_c_t.html#a1f902d56334cc3e0a86d4b08f34bfff6">FILE_DATE_STRUCT::month</a></div><div class="ttdeci">unsigned month</div><div class="ttdoc">month (1..12) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00045">filesystem.h:45</a></div></div>
<div class="ttc" id="group__filesystem_html_gae7124857f3ab32f6032ef129f2a80000"><div class="ttname"><a href="group__filesystem.html#gae7124857f3ab32f6032ef129f2a80000">filesystem_file_write</a></div><div class="ttdeci">FILE_STATUS filesystem_file_write(FILE_HANDLE *handle, uint8_t *buf, uint32_t size)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00053">filesystem.c:53</a></div></div>
<div class="ttc" id="struct_s_c_r_e_e_n___s_html"><div class="ttname"><a href="struct_s_c_r_e_e_n___s.html">SCREEN_S</a></div><div class="ttdef"><b>Definition:</b> <a href="screen_8h_source.html#l00052">screen.h:52</a></div></div>
<div class="ttc" id="group__tft_html_ga87b537f5fa5c109d3c05c13d6b18f382"><div class="ttname"><a href="group__tft.html#ga87b537f5fa5c109d3c05c13d6b18f382">WHITE</a></div><div class="ttdeci">#define WHITE</div><div class="ttdef"><b>Definition:</b> <a href="tft_8h_source.html#l00053">tft.h:53</a></div></div>
<div class="ttc" id="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t_html_a3e054086f983d0603a8919338354951b"><div class="ttname"><a href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a3e054086f983d0603a8919338354951b">FILE_TIME_STRUCT::min</a></div><div class="ttdeci">unsigned min</div><div class="ttdoc">minute (0..59 </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00054">filesystem.h:54</a></div></div>
<div class="ttc" id="group__touch_html_ga42b918ead4f536a63f79601ab2978227"><div class="ttname"><a href="group__touch.html#ga42b918ead4f536a63f79601ab2978227">touch_get_last_point</a></div><div class="ttdeci">POINT_STRUCT touch_get_last_point()</div><div class="ttdef"><b>Definition:</b> <a href="touch_8c_source.html#l00211">touch.c:211</a></div></div>
<div class="ttc" id="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t_html"><div class="ttname"><a href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html">DIRECTORY_STRUCT</a></div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00072">filesystem.h:72</a></div></div>
<div class="ttc" id="group__filesystem_html_gga07e357318d9528f9d2df7e5c86c81a3baa87f9e9b73e66d81563fe63aba76cc7d"><div class="ttname"><a href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3baa87f9e9b73e66d81563fe63aba76cc7d">F_HID</a></div><div class="ttdoc">File is hidden. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00034">filesystem.h:34</a></div></div>
<div class="ttc" id="pixy__frame_8h_html"><div class="ttname"><a href="pixy__frame_8h.html">pixy_frame.h</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a939fdd806f427cc8505ed817e28cce9d"><div class="ttname"><a href="screen__photomode__save_8c.html#a939fdd806f427cc8505ed817e28cce9d">screen</a></div><div class="ttdeci">static SCREEN_STRUCT screen</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00332">screen_photomode_save.c:332</a></div></div>
<div class="ttc" id="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s_html_acfb6005bc1c45e31b1cb133feea8edb8"><div class="ttname"><a href="struct_f_i_l_e___l_i_s_t___e_n_t_r_y___s.html#acfb6005bc1c45e31b1cb133feea8edb8">FILE_LIST_ENTRY_S::next</a></div><div class="ttdeci">struct FILE_LIST_ENTRY_S * next</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00044">screen_photomode_save.c:44</a></div></div>
<div class="ttc" id="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t_html_a7f39b6fc12f0b04a38625ff3040dd30c"><div class="ttname"><a href="struct_f_i_l_e___t_i_m_e___s_t_r_u_c_t.html#a7f39b6fc12f0b04a38625ff3040dd30c">FILE_TIME_STRUCT::hour</a></div><div class="ttdeci">unsigned hour</div><div class="ttdoc">hour (0..23) </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00053">filesystem.h:53</a></div></div>
<div class="ttc" id="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t_html_a4026095999c2fd7a91f9bb91390647a4"><div class="ttname"><a href="struct_t_o_u_c_h___a_r_e_a___s_t_r_u_c_t.html#a4026095999c2fd7a91f9bb91390647a4">TOUCH_AREA_STRUCT::hookedActions</a></div><div class="ttdeci">TOUCH_ACTION hookedActions</div><div class="ttdoc">Actions to listen to. </div><div class="ttdef"><b>Definition:</b> <a href="touch_8h_source.html#l00073">touch.h:73</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a5e8f84ee8ff4bf827775c38ae6752509"><div class="ttname"><a href="screen__photomode__save_8c.html#a5e8f84ee8ff4bf827775c38ae6752509">update</a></div><div class="ttdeci">static void update(void *screen)</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00135">screen_photomode_save.c:135</a></div></div>
<div class="ttc" id="group__filesystem_html_ggab08f51089a5ddbb470a1a36a9478dda4ab16a72615f8613168ea14797c243fdfd"><div class="ttname"><a href="group__filesystem.html#ggab08f51089a5ddbb470a1a36a9478dda4ab16a72615f8613168ea14797c243fdfd">F_OK</a></div><div class="ttdoc">Everything ok. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00091">filesystem.h:91</a></div></div>
<div class="ttc" id="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t_html_a87f6b6d5b8df736e7d52923a19131f86"><div class="ttname"><a href="struct_d_i_r_e_c_t_o_r_y___s_t_r_u_c_t.html#a87f6b6d5b8df736e7d52923a19131f86">DIRECTORY_STRUCT::files</a></div><div class="ttdeci">FILE_STRUCT * files</div><div class="ttdoc">An array with num_files FILE_STRUCT entries. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00075">filesystem.h:75</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html">FILE_STRUCT</a></div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00061">filesystem.h:61</a></div></div>
<div class="ttc" id="group__filesystem_html_ga8b1099cbd3464fbe64f2010f16d87101"><div class="ttname"><a href="group__filesystem.html#ga8b1099cbd3464fbe64f2010f16d87101">filesystem_dir_open</a></div><div class="ttdeci">DIRECTORY_STRUCT * filesystem_dir_open(const char *path)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00023">filesystem.c:23</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a3017cd14eca2b9e67a69e7ea559b5eaa"><div class="ttname"><a href="screen__photomode__save_8c.html#a3017cd14eca2b9e67a69e7ea559b5eaa">enter</a></div><div class="ttdeci">static void enter(void *screen)</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00108">screen_photomode_save.c:108</a></div></div>
<div class="ttc" id="group__tft_html_ga79d10e672abb49ad63eeaa8aaef57c38"><div class="ttname"><a href="group__tft.html#ga79d10e672abb49ad63eeaa8aaef57c38">BLUE</a></div><div class="ttdeci">#define BLUE</div><div class="ttdef"><b>Definition:</b> <a href="tft_8h_source.html#l00052">tft.h:52</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a2e097772251828c6d76b32677269b7ab"><div class="ttname"><a href="screen__photomode__save_8c.html#a2e097772251828c6d76b32677269b7ab">liststart</a></div><div class="ttdeci">static int liststart</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00038">screen_photomode_save.c:38</a></div></div>
<div class="ttc" id="group__filesystem_html_gga07e357318d9528f9d2df7e5c86c81a3ba9d0e592d6c03a8ea881767c87935c790"><div class="ttname"><a href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba9d0e592d6c03a8ea881767c87935c790">F_DIR</a></div><div class="ttdoc">It&#39;s a directory and not a file. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00036">filesystem.h:36</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a18f32ab8e9f73f5ff658f876ba7cb95f"><div class="ttname"><a href="screen__photomode__save_8c.html#a18f32ab8e9f73f5ff658f876ba7cb95f">num_files_ok</a></div><div class="ttdeci">static int num_files_ok</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00035">screen_photomode_save.c:35</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199"><div class="ttname"><a href="screen__photomode__save_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba9041c40ebd1ff09fe453b594ad748199">done</a></div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00036">screen_photomode_save.c:36</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_ad03f8d4c2501ad76eb27c418b7c68d0a"><div class="ttname"><a href="screen__photomode__save_8c.html#ad03f8d4c2501ad76eb27c418b7c68d0a">files_ok</a></div><div class="ttdeci">static FILE_LIST_ENTRY * files_ok</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00047">screen_photomode_save.c:47</a></div></div>
<div class="ttc" id="group__filesystem_html_gga07e357318d9528f9d2df7e5c86c81a3ba56340dd998fe228468cb60406dc3f5df"><div class="ttname"><a href="group__filesystem.html#gga07e357318d9528f9d2df7e5c86c81a3ba56340dd998fe228468cb60406dc3f5df">F_RDO</a></div><div class="ttdoc">File is readonly. You cannot write to it. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00033">filesystem.h:33</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_acd1409088e83cf2a8ba2cf96dd9b52f8"><div class="ttname"><a href="screen__photomode__save_8c.html#acd1409088e83cf2a8ba2cf96dd9b52f8">leave</a></div><div class="ttdeci">static void leave(void *screen)</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00310">screen_photomode_save.c:310</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_a269d23c8a60f8acdf9279642999ee6a9"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#a269d23c8a60f8acdf9279642999ee6a9">BUTTON_STRUCT::callback</a></div><div class="ttdeci">BUTTON_CALLBACK callback</div><div class="ttdoc">Callback which is executed when the button is pressed. </div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00058">button.h:58</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a3d1decbb81b0f181eb0561c0f5f8fe3c"><div class="ttname"><a href="screen__photomode__save_8c.html#a3d1decbb81b0f181eb0561c0f5f8fe3c">touchCB</a></div><div class="ttdeci">static void touchCB(void *touchArea, TOUCH_ACTION triggeredAction)</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00050">screen_photomode_save.c:50</a></div></div>
<div class="ttc" id="group__screen_html_ga8e14bc7ee0214e2926965f9bdb54a866"><div class="ttname"><a href="group__screen.html#ga8e14bc7ee0214e2926965f9bdb54a866">gui_screen_back</a></div><div class="ttdeci">bool gui_screen_back()</div><div class="ttdef"><b>Definition:</b> <a href="screen_8c_source.html#l00085">screen.c:85</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a948204bf251793107f9095a4235f9c1e"><div class="ttname"><a href="screen__photomode__save_8c.html#a948204bf251793107f9095a4235f9c1e">picked_file</a></div><div class="ttdeci">static const char * picked_file</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00039">screen_photomode_save.c:39</a></div></div>
<div class="ttc" id="struct_b_u_t_t_o_n___s_t_r_u_c_t_html_adeae49dfe3584e6df726fb4167cd1cf7"><div class="ttname"><a href="struct_b_u_t_t_o_n___s_t_r_u_c_t.html#adeae49dfe3584e6df726fb4167cd1cf7">BUTTON_STRUCT::font</a></div><div class="ttdeci">uint8_t font</div><div class="ttdoc">The number of the font to use. </div><div class="ttdef"><b>Definition:</b> <a href="button_8h_source.html#l00060">button.h:60</a></div></div>
<div class="ttc" id="screen__photomode__save_8c_html_a30a7b9e347f9114242f4f4fffe2c9626"><div class="ttname"><a href="screen__photomode__save_8c.html#a30a7b9e347f9114242f4f4fffe2c9626">nomatch_text</a></div><div class="ttdeci">static const char * nomatch_text[]</div><div class="ttdef"><b>Definition:</b> <a href="screen__photomode__save_8c_source.html#l00073">screen_photomode_save.c:73</a></div></div>
<div class="ttc" id="group__filesystem_html_gab8001e040f37dc57b18e4155532b59ce"><div class="ttname"><a href="group__filesystem.html#gab8001e040f37dc57b18e4155532b59ce">filesystem_dir_close</a></div><div class="ttdeci">void filesystem_dir_close(DIRECTORY_STRUCT *dir)</div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8c_source.html#l00028">filesystem.c:28</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html_a708226ca737e39bed0dc978eb31e3730"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html#a708226ca737e39bed0dc978eb31e3730">FILE_STRUCT::ftime</a></div><div class="ttdeci">FILE_TIME_STRUCT ftime</div><div class="ttdoc">Last modified time. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00064">filesystem.h:64</a></div></div>
<div class="ttc" id="group__tft_html_ga7b3b25cba33b07c303f3060fe41887f6"><div class="ttname"><a href="group__tft.html#ga7b3b25cba33b07c303f3060fe41887f6">BLACK</a></div><div class="ttdeci">#define BLACK</div><div class="ttdef"><b>Definition:</b> <a href="tft_8h_source.html#l00054">tft.h:54</a></div></div>
<div class="ttc" id="struct_f_i_l_e___s_t_r_u_c_t_html_aa5092484dbc5fc29a229feee0eae1246"><div class="ttname"><a href="struct_f_i_l_e___s_t_r_u_c_t.html#aa5092484dbc5fc29a229feee0eae1246">FILE_STRUCT::fsize</a></div><div class="ttdeci">uint32_t fsize</div><div class="ttdoc">File size in bytes. 0 for directories. </div><div class="ttdef"><b>Definition:</b> <a href="filesystem_8h_source.html#l00062">filesystem.h:62</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 8 2015 11:01:18 for discoverpixy by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>