Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ShowCamWxFormat7Frame.cpp
1 /*
2 This file is part of the BIAS library (Basic ImageAlgorithmS).
3 
4 Copyright (C) 2003-2009 (see file CONTACT for details)
5  Multimediale Systeme der Informationsverarbeitung
6  Institut fuer Informatik
7  Christian-Albrechts-Universitaet Kiel
8 
9 
10 BIAS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14 
15 BIAS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License for more details.
19 
20 You should have received a copy of the GNU Lesser General Public License
21 along with BIAS; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 
26 #include <wx/wxprec.h>
27 
28 #include "ShowCamWxFormat7Frame.hh"
29 #include "ShowCamWxFrame.hh"
30 #include <Gui/StringConv.hh>
31 #include <Base/Common/FileHandling.hh>
32 #include <wx/wx.h>
33 #include <wx/utils.h>
34 #include <wx/choicdlg.h>
35 
36 using namespace BIAS;
37 using namespace std;
38 
39 IMPLEMENT_CLASS( ShowCamWxFormat7Frame, wxFrame )
40 
41 BEGIN_EVENT_TABLE( ShowCamWxFormat7Frame, wxDialog )
42  EVT_CLOSE( ShowCamWxFormat7Frame::OnCloseWindow )
43  EVT_BUTTON( ID_BUTTON_OK,ShowCamWxFormat7Frame::OnButtonOK )
44  EVT_BUTTON( ID_BUTTON_CANCEL,ShowCamWxFormat7Frame::OnButtonCancel)
45  EVT_BUTTON( ID_BUTTON_CHECK,ShowCamWxFormat7Frame::OnButtonCheck)
46  EVT_SCROLL_CHANGED(ShowCamWxFormat7Frame::OnScrollSlider)
47  EVT_SCROLL(ShowCamWxFormat7Frame::OnSlide)
48  EVT_TEXT(ID_TEXT_DA_XOFFSET, ShowCamWxFormat7Frame::OnTextChange)
49  EVT_TEXT(ID_TEXT_DA_YOFFSET, ShowCamWxFormat7Frame::OnTextChange)
50  EVT_TEXT(ID_TEXT_DA_XSIZE, ShowCamWxFormat7Frame::OnTextChange)
51  EVT_TEXT(ID_TEXT_DA_YSIZE, ShowCamWxFormat7Frame::OnTextChange)
52 END_EVENT_TABLE()
53 
54 
55 //had to declare here because of conflicts
56 BIAS::ShowCamWxFrame *parentFrame_;
57 
58 /*!
59  * ShowCamWxFormat7Frame constructors
60  */
61 
62 ShowCamWxFormat7Frame::
63 ShowCamWxFormat7Frame(wxFrame* parent,const wxString& title, const wxPoint& pos,
64  const wxSize& size)
65  : wxDialog(parent, -1, title, pos, size, wxSTAY_ON_TOP|wxCAPTION|wxRESIZE_BORDER)
66 {
67  parentFrame_= NULL;
68  if(dynamic_cast< ShowCamWxFrame*>(parent) != NULL){
69  parentFrame_ = (ShowCamWxFrame *)parent;
70  }
71 
72  Init();
73  CreateControls();
74  Centre();
75 #ifdef BIAS_HAVE_DCAM
76  dcam = new VideoSource_DCAM();
77 #endif
78 }
79 
80 
81 /*!
82  * ShowCamWxFormat7Frame destructor
83  */
85 {
86 
87 }
88 
89 /*!
90  * Member initialisation
91  */
93 {
94 
95  yOffsetMin_ = xSizeMin_ = ySizeMin_ = xOffsetMin_=0;
96  yOffsetMax_ = xSizeMax_ = ySizeMax_ = xOffsetMax_ = 1024;
97  bppMin_ = 100;
98  bppMax_= 7000;
99 
100 }
101 
102 /*!
103  * Control creation for ProjectDefinitionFrame
104  */
105 
107 {
108  // ccd button
109  itemButtonOK=new wxButton( this, ID_BUTTON_OK,
110  _("OK"), wxDefaultPosition,
111  wxDefaultSize, 0 );
112 
113  itemButtonCancel=new wxButton( this, ID_BUTTON_CANCEL,
114  _("Cancel"), wxDefaultPosition,
115  wxDefaultSize, 0 );itemButtonCheck=new wxButton( this, ID_BUTTON_CHECK,
116  _("Check"), wxDefaultPosition,
117  wxDefaultSize, 0 );
118  itemButtonCheck->Disable();
119 
120  // the sizer
121  wxFlexGridSizer* itemFlexGridSizer = new wxFlexGridSizer(11, 3, 0, 0);
122  this->SetSizer(itemFlexGridSizer);
123 
124  wxSize sliderSize(300,45);
125 
126  xSizeSB = new wxSlider(this, ID_SB_XSIZE, 20, xSizeMin_, xSizeMax_,
127  wxDefaultPosition,sliderSize,
128  wxSL_HORIZONTAL | wxSL_LABELS | wxSL_AUTOTICKS,
129  wxDefaultValidator, wxT("XSize"));
130 
131  ySizeSB = new wxSlider(this, ID_SB_YSIZE,20, ySizeMin_, ySizeMax_,
132  wxDefaultPosition,sliderSize,
133  wxSL_HORIZONTAL | wxSL_LABELS | wxSL_AUTOTICKS,
134  wxDefaultValidator, wxT("YSize"));
135 
136  xOffsetSB = new wxSlider(this, ID_SB_XOFFSET,20, xOffsetMin_, xOffsetMax_,
137  wxDefaultPosition,sliderSize,
138  wxSL_HORIZONTAL | wxSL_LABELS | wxSL_AUTOTICKS,
139  wxDefaultValidator, wxT("XOffset"));
140 
141  yOffsetSB = new wxSlider(this, ID_SB_YOFFSET,20, yOffsetMin_, yOffsetMax_,
142  wxDefaultPosition,sliderSize,
143  wxSL_HORIZONTAL | wxSL_LABELS |wxSL_AUTOTICKS,
144  wxDefaultValidator, wxT("YOffset"));
145 
146  wxString cm_choices[8];
147  cm_choices[0] = wxT("Mono 8bpp");
148  cm_choices[1] = wxT("YUV 4:1:1");
149  cm_choices[2] = wxT("YUV 4:2:2");
150  cm_choices[3] = wxT("YUV 4:4:4");
151  cm_choices[4] = wxT("RGB 24bpp");
152  cm_choices[5] = wxT("Mono 16bpp");
153  cm_choices[6] = wxT("Raw 8bpp");
154  cm_choices[7] = wxT("Raw 16bpp");
155 
156  colorModeCB = new wxChoice(this, ID_CB_COLORMODE, wxDefaultPosition, wxDefaultSize, 8, cm_choices, 0, wxDefaultValidator, wxT("Color Mode for Cam"));
157 
158  wxString cmv_choices[6];
159  cmv_choices[0] = wxT("Same as Cam");
160  cmv_choices[1] = wxT("Grey");
161  cmv_choices[2] = wxT("Bayer BGGR");
162  cmv_choices[3] = wxT("Bayer GBRG");
163  cmv_choices[4] = wxT("Bayer GRBG");
164  cmv_choices[5] = wxT("Bayer RGGB");
165 
166  colorModeViewCB = new wxChoice(this,ID_CB_COLORMODEVIEW, wxDefaultPosition, wxDefaultSize, 6, cmv_choices, 0, wxDefaultValidator, wxT("Color Mode for Viewing"));
167  BpPSB = new wxSlider(this, ID_SB_BPP,20, bppMin_, bppMax_,
168  wxDefaultPosition,sliderSize,
169  wxSL_HORIZONTAL | wxSL_LABELS | wxSL_AUTOTICKS,
170  wxDefaultValidator, wxT("Bits per packet"));
171 
172  directAccessXSize = new wxTextCtrl(this,ID_TEXT_DA_XSIZE, _("0"),
173  wxDefaultPosition,wxDefaultSize, 0);
174  directAccessYSize = new wxTextCtrl(this,ID_TEXT_DA_YSIZE, _("0"),
175  wxDefaultPosition,wxDefaultSize, 0);
176  directAccessXOffset = new wxTextCtrl(this,ID_TEXT_DA_XOFFSET, _("0"),
177  wxDefaultPosition,wxDefaultSize, 0);
178  directAccessYOffset = new wxTextCtrl(this,ID_TEXT_DA_YOFFSET, _("0"),
179  wxDefaultPosition,wxDefaultSize, 0);
180 
181 
182  wxStaticText* itemStaticText1 =
183  new wxStaticText( this, wxID_STATIC, _("XSize"),
184  wxDefaultPosition, wxDefaultSize, 0 );
185  itemFlexGridSizer->Add(itemStaticText1, 0,
186  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
187  itemFlexGridSizer->Add(xSizeSB, 0,
188  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
189  itemFlexGridSizer->Add(directAccessXSize,0,wxALIGN_CENTER|wxALL,5);
190 
191  wxStaticText* itemStaticText2 =
192  new wxStaticText( this, wxID_STATIC, _("YSize"),
193  wxDefaultPosition, wxDefaultSize, 0 );
194  itemFlexGridSizer->Add(itemStaticText2, 0,
195  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
196  itemFlexGridSizer->Add(ySizeSB, 0,
197  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
198  itemFlexGridSizer->Add(directAccessYSize,0,wxALIGN_CENTER|wxALL,5);
199 
200  wxStaticText* itemStaticText3 =
201  new wxStaticText( this, wxID_STATIC, _("XOffset"),
202  wxDefaultPosition, wxDefaultSize, 0 );
203 
204  itemFlexGridSizer->Add(itemStaticText3, 0,
205  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
206  itemFlexGridSizer->Add(xOffsetSB, 0,
207  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
208 
209  itemFlexGridSizer->Add(directAccessXOffset,0,wxALIGN_CENTER|wxALL,5);
210 
211  wxStaticText* itemStaticText4 =
212  new wxStaticText( this, wxID_STATIC, _("YOffset"),
213  wxDefaultPosition, wxDefaultSize, 0 );
214  itemFlexGridSizer->Add(itemStaticText4, 0,
215  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
216  itemFlexGridSizer->Add(yOffsetSB, 0,
217  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
218  itemFlexGridSizer->Add(directAccessYOffset,0,wxALIGN_CENTER|wxALL,5);
219 
220  wxStaticText* itemStaticText5 =
221  new wxStaticText( this, wxID_STATIC, _("Color Mode for cam"),
222  wxDefaultPosition, wxDefaultSize, 0 );
223  itemFlexGridSizer->Add(itemStaticText5, 0,
224  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
225  itemFlexGridSizer->Add(colorModeCB, 0,
226  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
227  itemFlexGridSizer->Add(itemButtonCheck,0,wxALIGN_CENTER|wxALL,5);
228 
229  wxStaticText* itemStaticText51 =
230  new wxStaticText( this, wxID_STATIC, _("Color Mode for view"),
231  wxDefaultPosition, wxDefaultSize, 0 );
232  itemFlexGridSizer->Add(itemStaticText51, 0,
233  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
234  itemFlexGridSizer->Add(colorModeViewCB, 0,
235  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
236  itemFlexGridSizer->AddSpacer(10);
237 
238  wxStaticText* itemStaticText6 =
239  new wxStaticText( this, wxID_STATIC, _("Bits per packet"),
240  wxDefaultPosition, wxDefaultSize, 0 );
241  itemFlexGridSizer->Add(itemStaticText6, 0,
242  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
243  itemFlexGridSizer->Add(BpPSB, 0,
244  wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
245  itemStaticTextFPS = new wxTextCtrl(this,ID_TEXT_FPS, _("= 0.0 FPS"),
246  wxDefaultPosition,wxDefaultSize, 0);
247  itemFlexGridSizer->Add(itemStaticTextFPS,0,wxALIGN_CENTER|wxALL,5);
248 
249 
250 
251 
252  wxBoxSizer *boxSizerCCD = new wxBoxSizer(wxHORIZONTAL);
253  boxSizerCCD->Add(itemButtonOK, 1,wxEXPAND|wxALL,2);
254  boxSizerCCD->Add(itemButtonCancel, 1,wxEXPAND|wxALL,2);
255  itemFlexGridSizer->Add(5, 5, 0,
256  wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
257  itemFlexGridSizer->Add(boxSizerCCD, 0,
258  wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
259 
260 }
261 
262 /*!
263  * wxEVT_CLOSE_WINDOW event handler for ID_PROJECTDEFINITIONFRAME
264  */
265 void ShowCamWxFormat7Frame::OnCloseWindow( wxCloseEvent& event )
266 {
267  // event.skip();
268  this->Destroy();
269 }
270 
271 /*!
272  * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_OK
273  */
274 
275 void ShowCamWxFormat7Frame::OnButtonOK( wxCommandEvent& event )
276 {
277  // check if y value is even
278  if((ySizeSB->GetValue() % 2) != 0){
279  wxMessageDialog* dialog = new wxMessageDialog(this, wxT("Y-Size has to be an even value"),wxT("Message box"),wxOK,wxDefaultPosition);
280  dialog->ShowModal();
281  }else{
282 
283  // cout << "button OK! "
284  // << xSizeSB->GetValue() << endl;
285  xSize = xSizeSB->GetValue();
286  ySize = ySizeSB->GetValue();
287  xOffset = xOffsetSB->GetValue();
288  yOffset = yOffsetSB->GetValue();
289  bpp = BpPSB->GetValue();
290 #ifdef BIAS_HAVE_DCAM
291  switch (colorModeCB->GetSelection()) {
292  case 0:
293  colorMode = DC1394_COLOR_CODING_MONO8;
294  break;
295  case 1:
296  colorMode = DC1394_COLOR_CODING_YUV411;
297  break;
298  case 2:
299  colorMode = DC1394_COLOR_CODING_YUV422;
300  break;
301  case 3:
302  colorMode = DC1394_COLOR_CODING_YUV444;
303  break;
304  case 4:
305  colorMode = DC1394_COLOR_CODING_RGB8;
306  break;
307  case 5:
308  colorMode = DC1394_COLOR_CODING_MONO16;
309  break;
310  case 6:
311  colorMode = DC1394_COLOR_CODING_RAW8;
312  break;
313  case 7:
314  colorMode = DC1394_COLOR_CODING_RAW16;
315  break;
316  default:
317  colorMode = DC1394_COLOR_CODING_MONO8;
318  break;
319  }
320 
321  switch(colorModeViewCB->GetSelection()){
322  case 0: colorModeView = ImageBase::CM_invalid;
323  break;
324  case 1: colorModeView = ImageBase::CM_Grey;
325  break;
326  case 2: colorModeView = ImageBase::CM_Bayer_BGGR;
327  break;
328  case 3: colorModeView = ImageBase::CM_Bayer_GBRG;
329  break;
330  case 4: colorModeView = ImageBase::CM_Bayer_GRBG;
331  break;
332  case 5: colorModeView = ImageBase::CM_Bayer_RGGB;
333  break;
334  default: colorModeView = ImageBase::CM_invalid;
335  break;
336  }
337 
338 #endif // BIAS_HAVE_DCAM
339 
340  #if wxCHECK_VERSION(2, 9, 0)
341  // Make Modal is depracted in > wx2.9 (and it shouldn't be needed here anyway)
342  #else
343  this->MakeModal(false);
344  #endif
345 
346  this->Close();
347  this->SetReturnCode(wxID_OK);
348  }
349 }
350 
351 void ShowCamWxFormat7Frame::OnButtonCancel( wxCommandEvent& event ){
352  #if wxCHECK_VERSION(2, 9, 0)
353  // Make Modal is depracted in > wx2.9 (and it shouldn't be needed here anyway)
354  #else
355  this->MakeModal(false);
356  #endif
357  this->Close();
358 }
359 
360 void ShowCamWxFormat7Frame::OnButtonCheck( wxCommandEvent& event )
361 {
362  // Feld 1 pruefen
363  if(wxAtoi(directAccessXSize->GetValue()) != xSizeSB->GetValue()){
364  xSizeSB->SetValue(wxAtoi(directAccessXSize->GetValue()));
365  ScrollSliderHelper(xSizeSB,xSize,xSizeMin_);
366  }
367 
368  if(wxAtoi(directAccessYSize->GetValue()) != ySizeSB->GetValue()){
369  ySizeSB->SetValue(wxAtoi(directAccessYSize->GetValue()));
370  ScrollSliderHelper(ySizeSB,ySize,ySizeMin_);
371  }
372 
373  if(wxAtoi(directAccessXOffset->GetValue()) != xOffsetSB->GetValue()){
374  xOffsetSB->SetValue(wxAtoi(directAccessXOffset->GetValue()));
375  ScrollSliderHelper(xOffsetSB,xSize,xSizeMin_,xSizeMax_,xSizeSB,true);
376  }
377 
378  if(wxAtoi(directAccessYOffset->GetValue()) != yOffsetSB->GetValue()){
379  yOffsetSB->SetValue(wxAtoi(directAccessYOffset->GetValue()));
380  ScrollSliderHelper(yOffsetSB,ySize,ySizeMin_,ySizeMax_,ySizeSB,true);
381  }
382 
383  AdjustBytesPerPacket();
384  CalcFPS();
385 
386  // itemButtonCheck->Disable();
387  itemButtonOK->Enable();
388 
389 }
390 
391 void ShowCamWxFormat7Frame::OnTextChange( wxCommandEvent& event )
392 {
393  itemButtonOK->Disable();
394  itemButtonCheck->Enable();
395 
396 }
397 
398 void ShowCamWxFormat7Frame::ScrollSliderHelper(wxSlider* slider, int& size, int& sizeMin, int sizeMax, wxSlider* sliderSize, bool isOffset){
399 
400  int value = slider->GetValue();
401  int diff = abs(size -value);
402 
403  if(diff > sizeMin/2){
404  int mod = value % sizeMin;
405  if(mod != 0){
406  if(mod > (sizeMin/2))
407  value = value + (sizeMin - mod);
408  else
409  value = value - mod;
410 
411  slider->SetValue(value);
412  size = value;
413  }
414  }else if(diff < sizeMin/2){
415  if(size -value > 0){
416  value = size - sizeMin;
417  }else if(size -value < 0){
418  value = size + sizeMin;
419  }
420  slider->SetValue(value);
421  size = value;
422  if(isOffset)
423  sliderSize->SetMax(sizeMax - slider->GetValue());
424  }
425 
426  if(slider->GetId() == ID_SB_XSIZE) directAccessXSize->SetValue(wxString::Format(wxT("%d"), value));
427  if(slider->GetId() == ID_SB_YSIZE) directAccessYSize->SetValue(wxString::Format(wxT("%d"), value));
428  if(slider->GetId() == ID_SB_XOFFSET) directAccessXOffset->SetValue(wxString::Format(wxT("%d"), value));
429  if(slider->GetId() == ID_SB_YOFFSET) directAccessYOffset->SetValue(wxString::Format(wxT("%d"), value));
430 
431  CalcFPS();
432 }
434 #ifdef BIAS_HAVE_DCAM
435  unsigned int minbpp, maxbpp;
436  dcam->GetBytesPerPacketForFormat7(CamID_, Mode_,xSizeSB->GetValue(), ySizeSB->GetValue(), minbpp, maxbpp);
437  //cout << "Min: " << minbpp << " Max: " << maxbpp << endl;
438  BpPSB->SetRange(minbpp,maxbpp);
439  bppMin_ = minbpp;
440  bppMax_ = maxbpp;
441 #endif
442 }
443 
444 void ShowCamWxFormat7Frame::OnScrollSlider( wxScrollEvent& event ){
445  int id = event.GetId();
446  //cout << "slide..." << id << endl;
447 
448  // check if the slider has a multiple of unit size
449  if(id == ID_SB_XSIZE){ // X value
450  ScrollSliderHelper(xSizeSB,xSize,xSizeMin_);
451  AdjustBytesPerPacket();
452  }
453 
454  if(id == ID_SB_XOFFSET){ // X value
455  ScrollSliderHelper(xOffsetSB,xSize,xSizeMin_,xSizeMax_,xSizeSB,true);
456  }
457 
458  if(id == ID_SB_YSIZE){ // Y Value
459  ScrollSliderHelper(ySizeSB,ySize,ySizeMin_);
460  AdjustBytesPerPacket();
461  }
462 
463  if(id == ID_SB_YOFFSET){ // Y Value
464  ScrollSliderHelper(yOffsetSB,ySize,ySizeMin_,ySizeMax_,ySizeSB,true);
465  }
466 
467  if(id == ID_SB_BPP){ // Y Value
468  int value = BpPSB->GetValue();
469  int mod = value % bppMin_;
470  if(mod != 0){
471  if(mod > (bppMin_/2))
472  value = value + (bppMin_ - mod);
473  else
474  value = value - mod;
475 
476  BpPSB->SetValue(value);
477 
478  }
479  }
480  CalcFPS();
481 }
482 
483 void ShowCamWxFormat7Frame::OnSlide( wxScrollEvent& event ){
484  if(event.GetId() == ID_SB_BPP){
485  CalcFPS();
486  }
487 
488  if(event.GetId() == ID_SB_XOFFSET){
489  // we have to adjust the max of sliders x and y
490  xSizeSB->SetMax(xSizeMax_ - xOffsetSB->GetValue());
491  xSizeSB->Update();
492  }
493 
494  if (event.GetId() == ID_SB_YOFFSET){
495  ySizeSB->SetMax(ySizeMax_ - yOffsetSB->GetValue());
496  //ySizeSB->Update();
497  ySizeSB->Validate();
498  }
499 }
500 
502 
503  int depth = 8;
504 
505  switch (colorModeCB->GetSelection()) {
506  case 0:
507  case 4:
508  case 6:
509  depth = 8;
510  break;
511  case 1:
512  depth = 12;
513  break;
514  case 3:
515  depth = 24;
516  break;
517  case 2:
518  case 5:
519  case 7:
520  depth = 16;
521  break;
522  }
523 
524  int denom = 8 * BpPSB->GetValue();
525  //cout << "denom" << denom << endl;
526 
527  int num_packets = (xSizeSB->GetValue() * ySizeSB->GetValue() * depth + denom -1)/denom;
528  //cout << "num_packets" << num_packets << endl;
529  int fps = 1.0/((double)0.000125 * (double)num_packets);
530  //cout << fps << endl;
531  wxString stringnumber = wxString::Format(wxT(" = %d fps"), (int)fps);
532  //itemStaticTextFPS->ChangeValue(stringnumber);
533  itemStaticTextFPS->SetValue(stringnumber);
534 
535 }
Bayer_GRBG, 1 channel RGB image Bayer tile.
Definition: ImageBase.hh:145
void OnButtonCheck(wxCommandEvent &event)
void OnButtonOK(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_ADDCCD
gray values, 1 channel
Definition: ImageBase.hh:130
void OnScrollSlider(wxScrollEvent &event)
Bayer_RGGB, 1 channel RGB image Bayer tile.
Definition: ImageBase.hh:143
void OnCloseWindow(wxCloseEvent &event)
wxEVT_CLOSE_WINDOW event handler for ID_PROJECTDEFINITIONFRAME
This class VideoSource_DCAM implements access to IEEE1394 (Firewire, iLink) cameras following the DCa...
void OnTextChange(wxCommandEvent &event)
Bayer_BGGR, 1 channel RGB image Bayer tile.
Definition: ImageBase.hh:146
void OnButtonCancel(wxCommandEvent &event)
Bayer_GBRG, 1 channel RGB image Bayer tile.
Definition: ImageBase.hh:144
void ScrollSliderHelper(wxSlider *slider, int &size, int &sizeMin, int sizeMax=0, wxSlider *sliderSize=NULL, bool isOffset=false)
void CreateControls()
Creates the controls and sizers.
invalid (not set) image format
Definition: ImageBase.hh:129
void OnSlide(wxScrollEvent &event)
void Init()
Initialises member variables.