refdes_renum: warn of possible number clash with non-conforming values
[geda-gaf/whiteaudio.git] / docs / wiki / gwave-projects.html
blob59438fe20ecbf6b8e8c29139116875a5540d3cb4
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html>
4 <head>
5 <title></title>
6 <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
7 <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
8 <link rel="stylesheet" media="print" type="text/css" href="./print.css" />
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 </head>
12 <body>
15 <h3 class="sectionedit1563"><a name="gwave_--_analog_waveform_viewer" id="gwave_--_analog_waveform_viewer">Gwave -- analog waveform viewer</a></h3>
16 <div class="level3">
18 <p>
20 Gwave is an analog waveform viewer which is used to view the output files produced by ngspice or gnucap. Here are some feature suggestions. You might choose a large handful of features to implement as your GSoC project.
21 </p>
23 </div>
25 <h5><a name="geda_integration" id="geda_integration">gEDA integration</a></h5>
26 <div class="level5">
28 <p>
30 This project involves improving the integration of gwave into the
31 interprocess-communication to and from the other tools, especialy gschem
32 and gnucap. While gwave has an X11-based remote mechanism, Dbus is now the
33 standard, and should probably be used instead.
34 </p>
36 </div>
38 <h5><a name="developing_unit_tests_for_gtk_-20" id="developing_unit_tests_for_gtk_-20">Developing unit tests for GTK+-2.0</a></h5>
39 <div class="level5">
41 <p>
43 Gwave has been ported to Gtk2. As part of this effort, developing a battery of unit tests for gwave would be useful. The idea is to create a variety of different input files which exercise gwave&#039;s ability to import and display waveforms. An important feature for testing will be to compare the displayed waveform against a “golden” waveform to verify rendering correctness.
44 </p>
46 </div>
48 <h5><a name="user_interface" id="user_interface">User Interface</a></h5>
49 <div class="level5">
50 <ul>
51 <li class="level1"><div class="li"> Replace the existing variable-list with a tree-style variable-selector. allow multiple ways of organizing the tree: file/sweep/variable vs. file/variable/sweep, extract circuit heirarchy from variable names, etc. Perhaps a two-pane tree browser, with the internal nodes of the tree in one pane, and the leaf nodes (variables that can be displayed) in another.</div>
52 </li>
53 <li class="level1"><div class="li"> Add icons to the toolbar elements</div>
54 </li>
55 <li class="level1"><div class="li"> Enhance use of Gtk2.0 file chooser: wildcards for selecting particular types of files,</div>
56 </li>
57 <li class="level1"><div class="li"> Accept drag-and-drop from a file manager to add files, run scripts </div>
58 </li>
59 <li class="level1"><div class="li"> Allow drag-and-drop from one wavepanel to another to move wave</div>
60 </li>
61 <li class="level1"><div class="li"> Remember/restore the position of the windows, both most-recent-session, and also save it in the scripts.</div>
62 </li>
63 <li class="level1"><div class="li"> Add keybinding mechanism</div>
64 </li>
65 <li class="level1"><div class="li"> An undo stack for operations that change the view</div>
66 </li>
67 <li class="level1"><div class="li"> Add a guile console window, where expressions can be typed to query/manipulate/debug gwave objects and variable data.</div>
68 </li>
69 </ul>
71 </div>
73 <h5><a name="data_visualization_and_analysis" id="data_visualization_and_analysis">Data visualization and analysis</a></h5>
74 <div class="level5">
75 <ul>
76 <li class="level1"><div class="li"> Draw a real graticule in wave panels, including a grid of faint/dotted lines and numeric scales</div>
77 </li>
78 <li class="level1"><div class="li"> Add ability to customize measurements</div>
79 </li>
80 <li class="level1"><div class="li"> Add additional drawing styles: dotted/dashed lines, symbols showing actual datapoints, </div>
81 </li>
82 <li class="level1"><div class="li"> Add user-configurable colors</div>
83 </li>
84 <li class="level1"><div class="li"> waveform calculations (Requires some of the infrastructure work below)</div>
85 <ul>
86 <li class="level2"><div class="li"> display-functions of a single wavevar and scalars</div>
87 </li>
88 <li class="level2"><div class="li"> display-functions of wavevars sharing the same independent var</div>
89 </li>
90 <li class="level2"><div class="li"> more general stuff that computes a new wavevar</div>
91 </li>
92 </ul>
93 </li>
94 <li class="level1"><div class="li"> Additional types of wavepanels for different types of viewing/analsis. (best done after refactoring the wavepanel UI elements into a class heirarchy of proper Gtk widgets)</div>
95 </li>
96 </ul>
98 </div>
100 <h5><a name="datafile_variable_infrastructure" id="datafile_variable_infrastructure">Datafile/Variable Infrastructure</a></h5>
101 <div class="level5">
102 <ul>
103 <li class="level1"><div class="li"> Readers for additional file-formats: wdf, sst2, psf have been mentioned</div>
104 </li>
105 </ul>
106 <ul>
107 <li class="level1"><div class="li"> Convert from ad-hoc data structures to a glib/GObject class heirarchy</div>
108 </li>
109 </ul>
110 <ul>
111 <li class="level1"><div class="li"> Ability to add a variable to a file after it is read in, to support computing a new variable as a function of existing ones</div>
112 </li>
113 </ul>
114 <ul>
115 <li class="level1"><div class="li"> Deferred read: initialy read only the independent variable from a datafile, then read the others when they are first displayed.</div>
116 </li>
117 </ul>
118 <ul>
119 <li class="level1"><div class="li"> Add a new class of variable, which is a function of other variables and constants to computed on the fly as it is displayed</div>
120 </li>
121 </ul>
122 <ul>
123 <li class="level1"><div class="li"> New class of variable for digital data; reader and display capability for verilog vcd</div>
124 </li>
125 </ul>
126 <ul>
127 <li class="level1"><div class="li"> Ability to create new datafile-like constructs programaticly, to hold the result of computations involving variables in two or more exisiting files. </div>
128 </li>
129 </ul>
130 <ul>
131 <li class="level1"><div class="li"> Handle creation of the independent-variable intelligently.</div>
132 </li>
133 </ul>
135 </div>
137 <h5><a name="other_infrastructure" id="other_infrastructure">Other infrastructure</a></h5>
138 <div class="level5">
139 <ul>
140 <li class="level1"><div class="li"> convert other data structure from ad-hoc structures wrapped as custom SMOBs to GObject wrapped with guile-gobject.</div>
141 </li>
142 </ul>
143 <ul>
144 <li class="level1"><div class="li"> Convert the wavepanel drawing-area code into a new Gtk widget type</div>
145 </li>
146 </ul>
148 </div>
149 </body>
150 </html>