pcidsk_interfaces.h

00001 /******************************************************************************
00002  *
00003  * Purpose:  Declaration of hookable interfaces for the library
00004  * 
00005  ******************************************************************************
00006  * Copyright (c) 2009
00007  * PCI Geomatics, 50 West Wilmot Street, Richmond Hill, Ont, Canada
00008  *
00009  * Permission is hereby granted, free of charge, to any person obtaining a
00010  * copy of this software and associated documentation files (the "Software"),
00011  * to deal in the Software without restriction, including without limitation
00012  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00013  * and/or sell copies of the Software, and to permit persons to whom the
00014  * Software is furnished to do so, subject to the following conditions:
00015  *
00016  * The above copyright notice and this permission notice shall be included
00017  * in all copies or substantial portions of the Software.
00018  *
00019  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00020  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00021  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00022  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00023  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00024  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00025  * DEALINGS IN THE SOFTWARE.
00026  ****************************************************************************/
00027 
00028 #ifndef __INCLUDE_PCIDSK_INTERFACES_H
00029 #define __INCLUDE_PCIDSK_INTERFACES_H
00030 
00031 #include "pcidsk_io.h"
00032 #include "pcidsk_mutex.h"
00033 #include "pcidsk_edb.h"
00034 
00035 namespace PCIDSK
00036 {
00037     /************************************************************************/
00038     /*                           PCIDSKInterfaces                           */
00039     /************************************************************************/
00040 
00042 
00043     class PCIDSK_DLL PCIDSKInterfaces 
00044     {
00045       public:
00046         PCIDSKInterfaces();
00047 
00048         const IOInterfaces *io;
00049 
00050         EDBFile           *(*OpenEDB)(std::string filename, std::string access);
00051 
00052         Mutex             *(*CreateMutex)(void);
00053 
00054         void              (*JPEGDecompressBlock)
00055             ( uint8 *src_data, int src_bytes, uint8 *dst_data, int dst_bytes,
00056               int xsize, int ysize, eChanType pixel_type );
00057         void              (*JPEGCompressBlock)
00058             ( uint8 *src_data, int src_bytes, uint8 *dst_data, int &dst_bytes,
00059               int xsize, int ysize, eChanType pixel_type, int quality );
00060 
00061     };
00062 } // end namespace PCIDSK
00063 
00064 #endif // __INCLUDE_PCIDSK_INTERFACES_H

Generated on Fri Jul 16 16:01:31 2010 for libpcidsk by  doxygen 1.5.1