Navigation
Home
gpl
danovitschwebcam
1.4
tvtypes.h








































tvtypes.h
   /*
    * tvtypes.h
    *
    * Basic types used in the TV app.
    *
    * (C) 1997 Randall Hopper
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions are
    * met: 1. Redistributions of source code must retain the above copyright
    * notice, this list of conditions and the following disclaimer. 2.
    * Redistributions in binary form must reproduce the above copyright notice,
    * this list of conditions and the following disclaimer in the documentation
    * and/or other materials provided with the distribution.
    *
    * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
    * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
    * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    * SUCH DAMAGE.
    *
    */
   
   #ifndef __TVTYPES_H
   #define __TVTYPES_H
   
   #include <sys/param.h>
   #include <math.h>
   #include <string.h>
   
   typedef unsigned char  TV_UINT8;
   typedef signed   char  TV_INT8;
   typedef unsigned short TV_UINT16;
   typedef short          TV_INT16;
   typedef unsigned long  TV_UINT32;
   typedef long           TV_INT32;
   
   typedef TV_INT32       TV_BOOL;
   
   typedef struct {
               TV_INT32 x,y,w,h;
           } TV_GEOM;
   
   typedef enum {
       TV_TRANSFER_STD_IMAGE    = 0x1,
       TV_TRANSFER_SHMEM_IMAGE  = 0x2,
       TV_TRANSFER_SHMEM_PIXMAP = 0x4,
       TV_TRANSFER_DIRECT       = 0x8
   } TV_TRANSFER_MODE;
   
   #define DOUBLE_EPS 1e-7
   #define FLOAT_EPS  1e-4
   
   #define APPROX(x,y,e)    (fabs( (x)-(y) ) < (e))
   #define INRANGE(x,a,b,e) ( ((x) >= (a)-(e)) && ((x) <= (b)+(e)) )
   
   #define SHIFT_AND_MASK(val,lshf,msk)                     \
              (((lshf) >= 0) ? (((val) <<  (lshf)) & (msk)) \
                             : (((val) >> -(lshf)) & (msk)))
   
   #ifndef MIN
   #  define MIN(a,b) ((a) < (b) ? (a) : (b))
   #endif
   #ifndef MAX
   #  define MAX(a,b) ((a) > (b) ? (a) : (b))
   #endif
   
   #define STREQ(a,b) (strcmp((a),(b)) == 0)
   
   #ifdef __cplusplus
   extern "C" {
   #endif
   
   #ifdef __cplusplus
   }  /* Close 'extern "C"' */
   #endif
   
   #endif
   
   

syntax highlighted by Code2HTML, v. 0.9.1


Email me with questions/comments : Daan <Daan @ pa4dan . nl>