Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

ia.cpp

Go to the documentation of this file.
00001 
00002 // Name:        ia.cpp
00003 // Purpose:     wxIA - Image Acquisition Classes
00004 // Author:      Derry Bryson, Technology Associates, Inc.
00005 // Modified by:
00006 // Created:     01/23/2003
00007 // RCS-ID:      $Id: ia.cpp,v 1.1.1.1 2003/04/01 20:32:35 dbryson Exp $
00008 // Copyright:   (c) 2003 Derry Bryson
00009 // Licence:     wxWindows license
00011 
00012 // ===========================================================================
00013 // declarations
00014 // ===========================================================================
00015 
00016 // ---------------------------------------------------------------------------
00017 // headers
00018 // ---------------------------------------------------------------------------
00019 
00020 #ifdef __GNUG__
00021     #pragma implementation "ia.h"
00022 #endif
00023 
00024 // For compilers that support precompilation, includes "wx.h".
00025 #include "wx/wxprec.h"
00026 
00027 #if defined(__BORLANDC__)
00028     #pragma hdrstop
00029 #endif
00030 
00031 #ifndef WX_PRECOMP
00032 #include "wx/wx.h"
00033 #endif
00034 
00035 #include "wx/image.h"
00036 
00037 #include "wx/ia/ia.h"
00038 
00039 #ifdef __WXMSW__
00040 #include "wx/ia/twainbase.h"
00041 #include "wx/ia/twainmsw.h"
00042 #include "wx/ia/iatwainmsw.h"
00043 #endif
00044 
00045 #ifdef __WXGTK__
00046 #include "wx/ia/sane.h"
00047 #include "wx/ia/iasane.h"
00048 #endif
00049 
00050 //
00051 //  wxIASourceInfo - Descriptive information about a source.
00052 //
00053 
00054 wxIASourceInfo::wxIASourceInfo()
00055 {
00056     m_type = wxIA_SOURCE_UNKNOWN;
00057 }
00058 
00059 wxIASourceInfo::wxIASourceInfo(const wxString& name, const wxString& model,
00060                                const wxString& vendor, wxIASourceType type)
00061 {
00062     m_name = name;
00063     m_model = model;
00064     m_vendor = vendor;
00065     m_type = type;
00066 }
00067 
00068 void
00069 wxIASourceInfo::SetName(const wxString& name)
00070 {
00071     m_name = name;
00072 }
00073 
00074 wxString
00075 wxIASourceInfo::GetName() const
00076 {
00077     return m_name;
00078 }
00079 
00080 void
00081 wxIASourceInfo::SetModel(const wxString& model)
00082 {
00083     m_model = model;
00084 }
00085 
00086 wxString 
00087 wxIASourceInfo::GetModel() const
00088 {
00089     return m_model;
00090 }
00091 
00092 void 
00093 wxIASourceInfo::SetVendor(const wxString& vendor)
00094 {
00095     m_vendor = vendor;
00096 }
00097 
00098 wxString 
00099 wxIASourceInfo::GetVendor() const
00100 {
00101     return m_vendor;
00102 }
00103 
00104 void 
00105 wxIASourceInfo::SetType(wxIASourceType type)
00106 {
00107     m_type = type;
00108 }
00109 
00110 wxIASourceType
00111 wxIASourceInfo::GetType() const
00112 {
00113     return m_type;
00114 }
00115 
00116 wxIASourceInfo wxNullIASourceInfo;
00117 
00118 IMPLEMENT_CLASS(wxIAProvider, wxObject)
00119 
00120 wxIAProvider::wxIAProvider()
00121 {
00122     m_evtHandler = NULL;
00123     m_transferMode = wxIA_TRANSFERMODE_NATIVE;
00124     m_transferFileType = wxIA_FILETYPE_TIFF;
00125 }
00126 
00127 wxIAProvider::~wxIAProvider()
00128 {
00129 }
00130 
00131 bool
00132 wxIAProvider::Ok()
00133 {
00134     return FALSE;
00135 }
00136 
00137 wxString
00138 wxIAProvider::GetName()
00139 {
00140     return _T("");
00141 }
00142 
00143 int
00144 wxIAProvider::GetSourceCount()
00145 {
00146     return 0;
00147 }
00148 
00149 wxIASourceInfo
00150 wxIAProvider::GetSourceInfo(int i)
00151 {
00152     return wxNullIASourceInfo;
00153 }
00154 
00155 wxIAReturnCode
00156 wxIAProvider::SelectSource(const wxString& name, wxIAUIMode uiMode,
00157                            wxWindow* parent)
00158 {
00159     return wxIA_RC_NOTSUPPORTED;
00160 }
00161 
00162 wxIAReturnCode
00163 wxIAProvider::SelectDefaultSource()
00164 {
00165     return wxIA_RC_NOTSUPPORTED;
00166 }
00167 
00168 bool
00169 wxIAProvider::IsSourceSelected()
00170 {
00171     return FALSE;
00172 }
00173 
00174 wxIASourceInfo
00175 wxIAProvider::GetSelSourceInfo()
00176 {
00177     return wxNullIASourceInfo;
00178 }
00179 
00180 wxIAReturnCode
00181 wxIAProvider::SetSelSourceConfig(const wxString& configString)
00182 {
00183     return wxIA_RC_NOTSUPPORTED;
00184 }
00185 
00186 wxString
00187 wxIAProvider::GetSelSourceConfig()
00188 {
00189     return _T("");
00190 }
00191 
00192 wxIAReturnCode
00193 wxIAProvider::AcquireImage(wxIAUIMode uiMode, wxWindow* parent,
00194                            wxIAMonitor *mon)
00195 {
00196     return AcquireImages(1, uiMode, parent, mon);
00197 }
00198 
00199 wxIAReturnCode
00200 wxIAProvider::AcquireImages(int numImages, wxIAUIMode uiMode, wxWindow *parent,
00201                             wxIAMonitor* mon)
00202 {
00203     return wxIA_RC_NOTSUPPORTED;
00204 }
00205 
00206 void
00207 wxIAProvider::SetEvtHandler(wxEvtHandler* evtHandler)
00208 {
00209     m_evtHandler = evtHandler;
00210 }
00211 
00212 wxEvtHandler*
00213 wxIAProvider::GetEvtHandler()
00214 {
00215     return m_evtHandler;
00216 }
00217 
00218 wxImage
00219 wxIAProvider::GetImage()
00220 {
00221     return wxNullImage;
00222 }
00223 
00224 wxBitmap
00225 wxIAProvider::GetBitmap()
00226 {
00227     return wxNullBitmap;
00228 }
00229 
00230 bool
00231 wxIAProvider::SaveSettings(wxConfigBase* config)
00232 {
00233     return TRUE;
00234 }
00235 
00236 bool
00237 wxIAProvider::LoadSettings(wxConfigBase* config)
00238 {
00239     return TRUE;
00240 }
00241 
00242 wxIAReturnCode
00243 wxIAProvider::SetTransferMode(wxIATransferMode mode)
00244 {
00245   m_transferMode = mode;
00246   return wxIA_RC_SUCCESS;
00247 }
00248 
00249 wxIATransferMode
00250 wxIAProvider::GetTransferMode()
00251 {
00252   return m_transferMode;
00253 }
00254 
00255 wxIAReturnCode
00256 wxIAProvider::SetTransferFilename(const wxString& filename,
00257                                   wxIATransferFileType type)
00258 {
00259   m_transferFilename = filename;
00260   m_transferFileType = type;
00261   return wxIA_RC_SUCCESS;
00262 }
00263 
00264 wxString
00265 wxIAProvider::GetTransferFilename()
00266 {
00267   return m_transferFilename;
00268 }
00269 
00270 wxIATransferFileType
00271 wxIAProvider::GetTransferFileType()
00272 {
00273   return m_transferFileType;
00274 }
00275 
00276 wxIAReturnCode
00277 wxIAProvider::SetTransferBuffer(void* buffer, size_t size)
00278 {
00279   m_transferBuffer = buffer;
00280   m_transferBufferSize = size;
00281   return wxIA_RC_SUCCESS;
00282 }
00283 
00284 void*
00285 wxIAProvider::GetTransferBuffer()
00286 {
00287   return m_transferBuffer;
00288 }
00289 
00290 size_t
00291 wxIAProvider::GetTransferBufferSize()
00292 {
00293   return m_transferBufferSize;
00294 }
00295 
00296 IMPLEMENT_CLASS(wxIAManager, wxObject)
00297 
00298 bool wxIAManager::s_init = FALSE;
00299 
00300 wxIAProvider* wxIAManager::s_defaultProvider = NULL;
00301 
00302 wxIAManager&
00303 wxIAManager::Get()
00304 {
00305     static wxIAManager manager;
00306 
00307     if(!s_init)
00308     {
00309 #ifdef __WXMSW__
00310         manager.AddProvider(s_defaultProvider = new wxIATwainMSWProvider());
00311 #endif
00312 
00313 #ifdef __WXGTK__
00314         manager.AddProvider(s_defaultProvider = new wxIASaneProvider());
00315 #endif
00316         s_init = TRUE;
00317     }
00318 
00319     return manager;
00320 }
00321 
00322 void
00323 wxIAManager::AddProvider(wxIAProvider* provider)
00324 {
00325     m_providers.Add(provider);
00326 }
00327 
00328 wxIAProviderPtrArray&
00329 wxIAManager::GetProviders()
00330 {
00331     return m_providers;
00332 }
00333 
00334 wxIAProvider*
00335 wxIAManager::GetDefaultProvider()
00336 {
00337     return s_defaultProvider;
00338 }
00339 
00340 wxString
00341 wxIAManager::GetReturnCodeDesc(wxIAReturnCode rc)
00342 {
00343     static wxString
00344         desc[] =
00345         {
00346           _("Success"),
00347           _("Unknown error"),
00348           _("Operation not supported"),
00349           _("Operation cancelled by user"),
00350           _("Device not ready"),
00351           _("Device busy"),
00352           _("Invalid data or argument"),
00353           _("Document feeder jammed"),
00354           _("Document feeder out of documents"),
00355           _("Scanner cover is open"),
00356           _("Error during device I/O"),
00357           _("Out of memory"),
00358           _("Access denied"),
00359           _("No source selected"),
00360           _("Not initialized")
00361         };
00362 
00363     if(rc >= 0 && rc < (int)wxIA_RC_NOTINITIALIZED)
00364       return(desc[(int)rc]);
00365 
00366     return wxEmptyString;
00367 }
00368 
00369 wxIAManager::wxIAManager()
00370 {
00371 }
00372 
00373 wxIAManager::~wxIAManager()
00374 {
00375     size_t i;
00376 
00377     for(i = 0; i < m_providers.GetCount(); i++)
00378         delete m_providers[i];
00379 }
00380 
00381 DEFINE_EVENT_TYPE(wxEVT_IA_GETIMAGE)
00382 DEFINE_EVENT_TYPE(wxEVT_IA_UPDATE)
00383 
00384 wxIAEvent::wxIAEvent(wxEventType type, wxIAProvider* provider) :
00385     wxEvent(-1, type)
00386 {
00387     m_provider = provider;
00388     m_abort = FALSE;
00389 }
00390 
00391 wxIAEvent::wxIAEvent(wxEventType type, wxIAProvider* provider,
00392                      const wxString& text, size_t quantum, size_t span) :
00393     wxEvent(-1, type)
00394 {
00395     m_provider = provider;
00396     m_text = text;
00397     m_quantum = quantum;
00398     m_span = span;
00399     m_abort = FALSE;
00400 }
00401 
00402 wxIAEvent::wxIAEvent(const wxIAEvent& event) :
00403     wxEvent(event)
00404 {
00405     m_provider = event.m_provider;
00406     m_text = event.m_text;
00407     m_quantum = event.m_quantum;
00408     m_span = event.m_span;
00409     m_abort = event.m_abort;
00410 }
00411 

Generated at Tue Apr 1 17:02:58 2003 for wxIA by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000