/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.4
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

#define SWIGJAVA


#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__)) 
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__)) 
# else
#   define SWIGUNUSED 
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif 
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#  ifndef GCC_HASCLASSVISIBILITY
#    define GCC_HASCLASSVISIBILITY
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif 
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif



/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
  typedef long long __int64;
#endif

/* Fix for jlong on 64-bit x86 Solaris */
#if defined(__x86_64)
# ifdef _LP64
#   undef _LP64
# endif
#endif

#include <jni.h>
#include <stdlib.h>
#include <string.h>


/* Support for throwing Java exceptions */
typedef enum {
  SWIG_JavaOutOfMemoryError = 1, 
  SWIG_JavaIOException, 
  SWIG_JavaRuntimeException, 
  SWIG_JavaIndexOutOfBoundsException,
  SWIG_JavaArithmeticException,
  SWIG_JavaIllegalArgumentException,
  SWIG_JavaNullPointerException,
  SWIG_JavaDirectorPureVirtual,
  SWIG_JavaUnknownError
} SWIG_JavaExceptionCodes;

typedef struct {
  SWIG_JavaExceptionCodes code;
  const char *java_exception;
} SWIG_JavaExceptions_t;


static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
  jclass excep;
  static const SWIG_JavaExceptions_t java_exceptions[] = {
    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
    { SWIG_JavaIOException, "java/io/IOException" },
    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" }
  };
  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;

  while (except_ptr->code != code && except_ptr->code)
    except_ptr++;

  jenv->ExceptionClear();
  excep = jenv->FindClass(except_ptr->java_exception);
  if (excep)
    jenv->ThrowNew(excep, msg);
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else

/*  Errors in SWIG */
#define  SWIG_UnknownError    	   -1 
#define  SWIG_IOError        	   -2 
#define  SWIG_RuntimeError   	   -3 
#define  SWIG_IndexError     	   -4 
#define  SWIG_TypeError      	   -5 
#define  SWIG_DivisionByZero 	   -6 
#define  SWIG_OverflowError  	   -7 
#define  SWIG_SyntaxError    	   -8 
#define  SWIG_ValueError     	   -9 
#define  SWIG_SystemError    	   -10
#define  SWIG_AttributeError 	   -11
#define  SWIG_MemoryError    	   -12 
#define  SWIG_NullReferenceError   -13




#include "DefDllExport.h"
#include "ApogeeCam.h"
#include "CamGen2Base.h"
#include "Alta.h"
#include "ApogeeFilterWheel.h"
#include "Ascent.h"
#include "AltaF.h"
#include "CameraInfo.h"
#include "CameraStatusRegs.h"
#include "FindDeviceEthernet.h" 
#include "FindDeviceUsb.h" 
#include "Aspen.h"
#include "Quad.h" 
#include "HiC.h" 


SWIGINTERN void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) {
  SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError;
  switch(code) {
  case SWIG_MemoryError:
    exception_code = SWIG_JavaOutOfMemoryError;
    break;
  case SWIG_IOError:
    exception_code = SWIG_JavaIOException;
    break;
  case SWIG_SystemError:
  case SWIG_RuntimeError:
    exception_code = SWIG_JavaRuntimeException;
    break;
  case SWIG_OverflowError:
  case SWIG_IndexError:
    exception_code = SWIG_JavaIndexOutOfBoundsException;
    break;
  case SWIG_DivisionByZero:
    exception_code = SWIG_JavaArithmeticException;
    break;
  case SWIG_SyntaxError:
  case SWIG_ValueError:
  case SWIG_TypeError:
    exception_code = SWIG_JavaIllegalArgumentException;
    break;
  case SWIG_UnknownError:
  default:
    exception_code = SWIG_JavaUnknownError;
    break;
  }
  SWIG_JavaThrowException(jenv, exception_code, msg);
}


#include <stdexcept>


#include <stdint.h>		// Use the C99 official header


#include <string>


#include <stdexcept>


#include <vector>
#include <stdexcept>

SWIGINTERN std::vector< unsigned short >::const_reference std_vector_Sl_uint16_t_Sg__get(std::vector< uint16_t > *self,int i){
                int size = int(self->size());
                if (i>=0 && i<size)
                    return (*self)[i];
                else
                    throw std::out_of_range("vector index out of range");
            }
SWIGINTERN void std_vector_Sl_uint16_t_Sg__set(std::vector< uint16_t > *self,int i,std::vector< unsigned short >::value_type const &val){
                int size = int(self->size());
                if (i>=0 && i<size)
                    (*self)[i] = val;
                else
                    throw std::out_of_range("vector index out of range");
            }

#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Uint16Vector_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  std::vector< uint16_t > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (std::vector< uint16_t > *)new std::vector< uint16_t >();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(std::vector< uint16_t > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Uint16Vector_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  std::vector< unsigned short >::size_type arg1 ;
  std::vector< uint16_t > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (std::vector< unsigned short >::size_type)jarg1; 
  {
    try {
      result = (std::vector< uint16_t > *)new std::vector< uint16_t >(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(std::vector< uint16_t > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1size(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  std::vector< unsigned short >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  {
    try {
      result = ((std::vector< uint16_t > const *)arg1)->size();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1capacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  std::vector< unsigned short >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  {
    try {
      result = ((std::vector< uint16_t > const *)arg1)->capacity();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1reserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  std::vector< unsigned short >::size_type arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  arg2 = (std::vector< unsigned short >::size_type)jarg2; 
  {
    try {
      (arg1)->reserve(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1isEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  {
    try {
      result = (bool)((std::vector< uint16_t > const *)arg1)->empty();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  {
    try {
      (arg1)->clear();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1add(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  std::vector< unsigned short >::value_type *arg2 = 0 ;
  std::vector< unsigned short >::value_type temp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  temp2 = (std::vector< unsigned short >::value_type)jarg2; 
  arg2 = &temp2; 
  {
    try {
      (arg1)->push_back((std::vector< unsigned short >::value_type const &)*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  int arg2 ;
  std::vector< unsigned short >::value_type *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  arg2 = (int)jarg2; 
  {
    try {
      try {
        result = (std::vector< unsigned short >::value_type *) &std_vector_Sl_uint16_t_Sg__get(arg1,arg2);
      }
      catch(std::out_of_range &_e) {
        SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
        return 0;
      }
      
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)*result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Uint16Vector_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  int arg2 ;
  std::vector< unsigned short >::value_type *arg3 = 0 ;
  std::vector< unsigned short >::value_type temp3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  arg2 = (int)jarg2; 
  temp3 = (std::vector< unsigned short >::value_type)jarg3; 
  arg3 = &temp3; 
  {
    try {
      try {
        std_vector_Sl_uint16_t_Sg__set(arg1,arg2,(unsigned short const &)*arg3);
      }
      catch(std::out_of_range &_e) {
        SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
        return ;
      }
      
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1Uint16Vector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::vector< uint16_t > *arg1 = (std::vector< uint16_t > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::vector< uint16_t > **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1ApogeeCam(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1Reset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      (arg1)->Reset();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1ReadReg(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (uint16_t)(arg1)->ReadReg(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1WriteReg(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  uint16_t arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (uint16_t)jarg3; 
  {
    try {
      (arg1)->WriteReg(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiNumRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiNumRows(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiNumCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiNumCols(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiNumRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiNumRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiNumCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiNumCols();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiStartRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiStartRow(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiStartCol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiStartCol(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiStartRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiStartRow();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiStartCol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiStartCol();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiBinRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiBinRow(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiBinRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiBinRow();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetRoiBinCol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetRoiBinCol(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetRoiBinCol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetRoiBinCol();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetFirmwareRev(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetFirmwareRev();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetImageCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetImageCount(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetImageCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetImageCount();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetImgSequenceCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetImgSequenceCount();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetSequenceDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetSequenceDelay(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetSequenceDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetSequenceDelay();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetVariableSequenceDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetVariableSequenceDelay(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetVariableSequenceDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->GetVariableSequenceDelay();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetTdiRate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetTdiRate(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTdiRate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetTdiRate();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetTdiRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetTdiRows(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTdiRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTdiRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTdiCounter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTdiCounter();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetTdiBinningRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetTdiBinningRows(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTdiBinningRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTdiBinningRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetKineticsSectionHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetKineticsSectionHeight(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetKineticsSectionHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetKineticsSectionHeight();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetKineticsSections(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetKineticsSections(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetKineticsSections(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetKineticsSections();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetKineticsShiftInterval(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetKineticsShiftInterval(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetKineticsShiftInterval(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetKineticsShiftInterval();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetShutterStrobePosition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetShutterStrobePosition(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetShutterStrobePosition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetShutterStrobePosition();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetShutterStrobePeriod(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetShutterStrobePeriod(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetShutterStrobePeriod(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetShutterStrobePeriod();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetShutterCloseDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetShutterCloseDelay(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetShutterCloseDelay(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetShutterCloseDelay();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCoolerBackoffPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetCoolerBackoffPoint(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCoolerBackoffPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCoolerBackoffPoint();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCoolerSetPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetCoolerSetPoint(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCoolerSetPoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCoolerSetPoint();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCameraMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::CameraMode)(arg1)->GetCameraMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCameraMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::CameraMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::CameraMode)jarg2; 
  {
    try {
      (arg1)->SetCameraMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetFastSequence(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetFastSequence(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsFastSequenceOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsFastSequenceOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetBulkDownload(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetBulkDownload(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsBulkDownloadOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsBulkDownloadOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetIoPortAssignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetIoPortAssignment(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetIoPortAssignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetIoPortAssignment();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetIoPortBlankingBits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetIoPortBlankingBits(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetIoPortBlankingBits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetIoPortBlankingBits();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetIoPortDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetIoPortDirection(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetIoPortDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetIoPortDirection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetIoPortData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetIoPortData(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetIoPortData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetIoPortData();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetPreFlash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetPreFlash(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetPreFlash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->GetPreFlash();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetExternalTrigger(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jint jarg3, jint jarg4) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  Apg::TriggerMode arg3 ;
  Apg::TriggerType arg4 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  arg3 = (Apg::TriggerMode)jarg3; 
  arg4 = (Apg::TriggerType)jarg4; 
  {
    try {
      (arg1)->SetExternalTrigger(arg2,arg3,arg4);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerNormEachOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerNormEachOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerNormGroupOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerNormGroupOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerTdiKinEachOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerTdiKinEachOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerTdiKinGroupOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerTdiKinGroupOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerExternalShutterOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerExternalShutterOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsTriggerExternalReadoutOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsTriggerExternalReadoutOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetShutterState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::ShutterState arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::ShutterState)jarg2; 
  {
    try {
      (arg1)->SetShutterState(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetShutterState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::ShutterState result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::ShutterState)(arg1)->GetShutterState();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsShutterForcedOpen(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsShutterForcedOpen();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsShutterForcedClosed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsShutterForcedClosed();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsShutterOpen(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsShutterOpen();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetShutterAmpCtrl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetShutterAmpCtrl(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsShutterAmpCtrlOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsShutterAmpCtrlOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCooler(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetCooler(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCoolerStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::CoolerStatus)(arg1)->GetCoolerStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsCoolerOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsCoolerOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTempCcd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetTempCcd();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCcdAdcResolution(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::Resolution arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::Resolution)jarg2; 
  {
    try {
      (arg1)->SetCcdAdcResolution(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCcdAdcResolution(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::Resolution result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::Resolution)(arg1)->GetCcdAdcResolution();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetCcdAdcSpeed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::AdcSpeed arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::AdcSpeed)jarg2; 
  {
    try {
      (arg1)->SetCcdAdcSpeed(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCcdAdcSpeed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::AdcSpeed result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::AdcSpeed)(arg1)->GetCcdAdcSpeed();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMaxBinCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMaxBinCols();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMaxBinRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMaxBinRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMaxImgCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMaxImgCols();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMaxImgRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMaxImgRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTotalRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTotalRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTotalCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTotalCols();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetNumOverscanCols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetNumOverscanCols();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsInterline(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsInterline();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetPlatformType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  CamModel::PlatformType result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (CamModel::PlatformType)(arg1)->GetPlatformType();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetLedAState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedState arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::LedState)jarg2; 
  {
    try {
      (arg1)->SetLedAState(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetLedAState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::LedState)(arg1)->GetLedAState();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetLedBState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedState arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::LedState)jarg2; 
  {
    try {
      (arg1)->SetLedBState(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetLedBState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::LedState)(arg1)->GetLedBState();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetLedMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::LedMode)jarg2; 
  {
    try {
      (arg1)->SetLedMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetLedMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::LedMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::LedMode)(arg1)->GetLedMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetInfo();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetModel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetModel();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetSensor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetSensor();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetFlushCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetFlushCommands(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1AreFlushCmdsDisabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->AreFlushCmdsDisabled();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetPostExposeFlushing(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetPostExposeFlushing(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsPostExposeFlushingDisabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsPostExposeFlushingDisabled();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetPixelWidth(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetPixelWidth();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetPixelHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetPixelHeight();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMinExposureTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetMinExposureTime();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetMaxExposureTime(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetMaxExposureTime();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsColor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsColor();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsCoolingSupported(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsCoolingSupported();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsCoolingRegulated(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsCoolingRegulated();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetInputVoltage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetInputVoltage();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetInterfaceType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  CamModel::InterfaceType result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (CamModel::InterfaceType)(arg1)->GetInterfaceType();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetUsbVendorInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jintArray jarg2, jintArray jarg3, jintArray jarg4) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t *arg2 = 0 ;
  uint16_t *arg3 = 0 ;
  uint16_t *arg4 = 0 ;
  uint16_t temp2 ;
  uint16_t temp3 ;
  uint16_t temp4 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg2 = &temp2; 
  }
  {
    if (!jarg3) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg3) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg3 = &temp3; 
  }
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg4 = &temp4; 
  }
  {
    try {
      (arg1)->GetUsbVendorInfo(*arg2,*arg3,*arg4);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
  {
    jint jvalue = (jint)temp2;
    jenv->SetIntArrayRegion(jarg2, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp3;
    jenv->SetIntArrayRegion(jarg3, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp4;
    jenv->SetIntArrayRegion(jarg4, 0, 1, &jvalue);
  }
  
  
  
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsCCD(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsCCD();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1PauseTimer(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->PauseTimer(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsSerialASupported(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsSerialASupported();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsSerialBSupported(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsSerialBSupported();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetFlushBinningRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetFlushBinningRows(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetFlushBinningRows(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetFlushBinningRows();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsOverscanDigitized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsOverscanDigitized();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetDigitizeOverscan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetDigitizeOverscan(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetAdcGain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  int32_t arg3 ;
  int32_t arg4 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (int32_t)jarg3; 
  arg4 = (int32_t)jarg4; 
  {
    try {
      (arg1)->SetAdcGain(arg2,arg3,arg4);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetAdcGain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  int32_t arg2 ;
  int32_t arg3 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (int32_t)jarg2; 
  arg3 = (int32_t)jarg3; 
  {
    try {
      result = (uint16_t)(arg1)->GetAdcGain(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetAdcOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint16_t arg2 ;
  int32_t arg3 ;
  int32_t arg4 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (int32_t)jarg3; 
  arg4 = (int32_t)jarg4; 
  {
    try {
      (arg1)->SetAdcOffset(arg2,arg3,arg4);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetAdcOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  int32_t arg2 ;
  int32_t arg3 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (int32_t)jarg2; 
  arg3 = (int32_t)jarg3; 
  {
    try {
      result = (uint16_t)(arg1)->GetAdcOffset(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsInitialized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsInitialized();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsConnected(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsConnected();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetAdSimMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetAdSimMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1IsAdSimModeOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsAdSimModeOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetLedBrightness(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  {
    try {
      (arg1)->SetLedBrightness(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetLedBrightness(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetLedBrightness();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetDriverVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetDriverVersion();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetUsbFirmwareVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetUsbFirmwareVersion();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetSerialNumber(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetSerialNumber();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  CameraStatusRegs result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (arg1)->GetStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = new CameraStatusRegs((const CameraStatusRegs &)result); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetImagingStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::Status)(arg1)->GetImagingStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  std::vector< uint16_t > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = *(std::vector< uint16_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint16_t > & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->GetImage(*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1StopExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->StopExposure(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetAvailableMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  uint32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (uint32_t)(arg1)->GetAvailableMemory();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetNumAds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAds();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetCoolerDrive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCoolerDrive();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeCam_1GetTempHeatsink(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  ApogeeCam *arg1 = (ApogeeCam *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeCam **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetTempHeatsink();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1CamGen2Base(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  CameraStatusRegs result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (arg1)->GetStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = new CameraStatusRegs((const CameraStatusRegs &)result); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetImagingStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (Apg::Status)(arg1)->GetImagingStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  std::vector< uint16_t > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(CamGen2Base **)&jarg1; 
  arg2 = *(std::vector< uint16_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint16_t > & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->GetImage(*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1StopExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->StopExposure(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetAvailableMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  uint32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (uint32_t)(arg1)->GetAvailableMemory();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetNumAds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAds();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetCoolerDrive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCoolerDrive();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1GetTempHeatsink(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  CamGen2Base *arg1 = (CamGen2Base *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamGen2Base **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetTempHeatsink();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Alta(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Alta *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Alta *)new Alta();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(Alta **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1Alta(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Alta *arg1 = (Alta *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  Alta *arg1 = (Alta *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Alta *arg1 = (Alta *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Alta *arg1 = (Alta *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  CameraStatusRegs result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (arg1)->GetStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = new CameraStatusRegs((const CameraStatusRegs &)result); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetImagingStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (Apg::Status)(arg1)->GetImagingStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  Alta *arg1 = (Alta *) 0 ;
  std::vector< uint16_t > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = *(std::vector< uint16_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint16_t > & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->GetImage(*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1StopExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->StopExposure(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetAvailableMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (uint32_t)(arg1)->GetAvailableMemory();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetCcdAdc12BitGain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetCcdAdc12BitGain(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetCcdAdc12BitOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetCcdAdc12BitOffset(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetCcdAdc12BitGain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetCcdAdc12BitGain();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetCcdAdc12BitOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetCcdAdc12BitOffset();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetCcdAdc16BitGain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCcdAdc16BitGain();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetNumAds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAds();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetCoolerDrive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetCoolerDrive();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetTempHeatsink(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (double)(arg1)->GetTempHeatsink();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetMacAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  {
    try {
      result = (arg1)->GetMacAddress();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1OpenSerial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->OpenSerial(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1CloseSerial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->CloseSerial(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetSerialBaudRate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  uint32_t arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (uint32_t)jarg3; 
  {
    try {
      (arg1)->SetSerialBaudRate(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetSerialBaudRate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jlong jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  uint32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (uint32_t)(arg1)->GetSerialBaudRate(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetSerialFlowControl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  Apg::SerialFC result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (Apg::SerialFC)(arg1)->GetSerialFlowControl(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetSerialFlowControl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  Apg::SerialFC arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (Apg::SerialFC)jarg3; 
  {
    try {
      (arg1)->SetSerialFlowControl(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1GetSerialParity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  Apg::SerialParity result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (Apg::SerialParity)(arg1)->GetSerialParity(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SetSerialParity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  Apg::SerialParity arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  arg3 = (Apg::SerialParity)jarg3; 
  {
    try {
      (arg1)->SetSerialParity(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1ReadSerial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (arg1)->ReadSerial(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1WriteSerial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jstring jarg3) {
  Alta *arg1 = (Alta *) 0 ;
  uint16_t arg2 ;
  std::string *arg3 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Alta **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  {
    try {
      (arg1)->WriteSerial(arg2,(std::string const &)*arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1UNKNOWN_1TYPE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  result = (ApogeeFilterWheel::Type)ApogeeFilterWheel::UNKNOWN_TYPE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1FW50_19R_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  result = (ApogeeFilterWheel::Type)ApogeeFilterWheel::FW50_9R;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1FW50_17S_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  result = (ApogeeFilterWheel::Type)ApogeeFilterWheel::FW50_7S;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1AFW50_110S_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  result = (ApogeeFilterWheel::Type)ApogeeFilterWheel::AFW50_10S;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1AFW31_117R_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  result = (ApogeeFilterWheel::Type)ApogeeFilterWheel::AFW31_17R;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1ApogeeFilterWheel(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  ApogeeFilterWheel *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (ApogeeFilterWheel *)new ApogeeFilterWheel();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(ApogeeFilterWheel **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1ApogeeFilterWheel(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jstring jarg3) {
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  ApogeeFilterWheel::Type arg2 ;
  std::string *arg3 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  arg2 = (ApogeeFilterWheel::Type)jarg2; 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  {
    try {
      (arg1)->Init(arg2,(std::string const &)*arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1Close(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      (arg1)->Close();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetVendorId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetVendorId();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetProductId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetProductId();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetDeviceId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetDeviceId();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetUsbFirmwareRev(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (arg1)->GetUsbFirmwareRev();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  ApogeeFilterWheel::Type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (ApogeeFilterWheel::Type)(arg1)->GetType();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (arg1)->GetName();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  ApogeeFilterWheel::Status result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (ApogeeFilterWheel::Status)(arg1)->GetStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetMaxPositions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMaxPositions();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1SetPosition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetPosition(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ApogeeFilterWheel_1GetPosition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ApogeeFilterWheel *arg1 = (ApogeeFilterWheel *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ApogeeFilterWheel **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetPosition();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1FW_1UNKNOWN_1TYPE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Ascent::FilterWheelType result;
  
  (void)jenv;
  (void)jcls;
  result = (Ascent::FilterWheelType)Ascent::FW_UNKNOWN_TYPE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1CFW25_16R_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Ascent::FilterWheelType result;
  
  (void)jenv;
  (void)jcls;
  result = (Ascent::FilterWheelType)Ascent::CFW25_6R;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1CFW31_18R_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Ascent::FilterWheelType result;
  
  (void)jenv;
  (void)jcls;
  result = (Ascent::FilterWheelType)Ascent::CFW31_8R;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Ascent(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Ascent *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Ascent *)new Ascent();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(Ascent **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  Ascent *arg1 = (Ascent *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Ascent *arg1 = (Ascent *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1Ascent(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Ascent *arg1 = (Ascent *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1FilterWheelOpen(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Ascent *arg1 = (Ascent *) 0 ;
  Ascent::FilterWheelType arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = (Ascent::FilterWheelType)jarg2; 
  {
    try {
      (arg1)->FilterWheelOpen(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1FilterWheelClose(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Ascent *arg1 = (Ascent *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      (arg1)->FilterWheelClose();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1SetFilterWheelPos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Ascent *arg1 = (Ascent *) 0 ;
  uint16_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      (arg1)->SetFilterWheelPos(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFilterWheelPos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetFilterWheelPos();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFilterWheelStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  ApogeeFilterWheel::Status result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (ApogeeFilterWheel::Status)(arg1)->GetFilterWheelStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFilterWheelType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  Ascent::FilterWheelType result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (Ascent::FilterWheelType)(arg1)->GetFilterWheelType();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFilterWheelName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (arg1)->GetFilterWheelName();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFilterWheelMaxPositions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetFilterWheelMaxPositions();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  Ascent *arg1 = (Ascent *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Ascent *arg1 = (Ascent *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1IsDualReadoutSupported(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsDualReadoutSupported();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1SetDualReadout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  Ascent *arg1 = (Ascent *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetDualReadout(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetDualReadout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->GetDualReadout();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Ascent *arg1 = (Ascent *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  Ascent *arg1 = (Ascent *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Ascent *arg1 = (Ascent *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Ascent **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1AltaF(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  AltaF *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (AltaF *)new AltaF();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(AltaF **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1AltaF(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  AltaF *arg1 = (AltaF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(AltaF **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  AltaF *arg1 = (AltaF *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  AltaF *arg1 = (AltaF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  AltaF *arg1 = (AltaF *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  AltaF *arg1 = (AltaF *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  AltaF *arg1 = (AltaF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  AltaF *arg1 = (AltaF *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  AltaF *arg1 = (AltaF *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  AltaF *arg1 = (AltaF *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(AltaF **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FactorySn_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->FactorySn = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FactorySn_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->FactorySn);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CustomerSn_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->CustomerSn = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CustomerSn_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->CustomerSn);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Id_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Id = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Id_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Id);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Platform_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Platform = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Platform_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Platform);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1PartNum_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->PartNum = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1PartNum_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->PartNum);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ccd_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Ccd = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ccd_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Ccd);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CcdSn_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->CcdSn = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CcdSn_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->CcdSn);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CcdGrade_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->CcdGrade = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CcdGrade_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->CcdGrade);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1ProcBoardRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->ProcBoardRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1ProcBoardRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->ProcBoardRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DriveBoardRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->DriveBoardRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DriveBoardRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->DriveBoardRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Shutter_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Shutter = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Shutter_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Shutter);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1WindowType_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->WindowType = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1WindowType_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->WindowType);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MechCfg_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->MechCfg = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MechCfg_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->MechCfg);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MechRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->MechRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MechRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->MechRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CoolingType_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->CoolingType = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CoolingType_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->CoolingType);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FinishFront_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->FinishFront = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FinishFront_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->FinishFront);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FinishBack_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->FinishBack = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1FinishBack_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->FinishBack);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MpiRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->MpiRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1MpiRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->MpiRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestDate_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->TestDate = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestDate_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->TestDate);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedBy_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->TestedBy = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedBy_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->TestedBy);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedDllRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->TestedDllRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedDllRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->TestedDllRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedFwRev_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->TestedFwRev = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestedFwRev_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->TestedFwRev);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Gain_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Gain = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Gain_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Gain);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Noise_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Noise = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Noise_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Noise);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Bias_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Bias = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Bias_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Bias);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestTemp_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->TestTemp = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1TestTemp_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->TestTemp);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkCount_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->DarkCount = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkCount_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->DarkCount);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkDuration_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->DarkDuration = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkDuration_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->DarkDuration);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkTemp_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->DarkTemp = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1DarkTemp_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->DarkTemp);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CoolingDelta_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->CoolingDelta = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1CoolingDelta_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->CoolingDelta);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad1Offset_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Ad1Offset = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad1Offset_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Ad1Offset);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad1Gain_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Ad1Gain = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad1Gain_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Ad1Gain);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad2Offset_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Ad2Offset = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad2Offset_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Ad2Offset);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad2Gain_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Ad2Gain = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Ad2Gain_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Ad2Gain);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Rma1_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Rma1 = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Rma1_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Rma1);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Rma2_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Rma2 = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Rma2_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Rma2);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment1_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Comment1 = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment1_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Comment1);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment2_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Comment2 = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment2_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Comment2);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment3_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->Comment3 = *arg2;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_StrDb_1Comment3_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  result = (std::string *) & ((arg1)->Comment3);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1StrDb(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  CamInfo::StrDb *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (CamInfo::StrDb *)new CamInfo::StrDb();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CamInfo::StrDb **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1StrDb(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  CamInfo::StrDb *arg1 = (CamInfo::StrDb *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(CamInfo::StrDb **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_MkStrVectFromStrDb(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  CamInfo::StrDb *arg1 = 0 ;
  SwigValueWrapper< std::vector< std::string > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CamInfo::StrDb **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CamInfo::StrDb const & reference is null");
    return 0;
  } 
  {
    try {
      result = CamInfo::MkStrVectFromStrDb((CamInfo::StrDb const &)*arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(std::vector< std::string > **)&jresult = new std::vector< std::string >((const std::vector< std::string > &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_MkStrDbFromStrVect(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  std::vector< std::string > *arg1 = 0 ;
  CamInfo::StrDb result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::vector< std::string > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::string > const & reference is null");
    return 0;
  } 
  {
    try {
      result = CamInfo::MkStrDbFromStrVect((std::vector< std::string > const &)*arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CamInfo::StrDb **)&jresult = new CamInfo::StrDb((const CamInfo::StrDb &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetNoOpDb(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  CamInfo::StrDb result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = CamInfo::GetNoOpDb();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CamInfo::StrDb **)&jresult = new CamInfo::StrDb((const CamInfo::StrDb &)result); 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_IsAlta(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jboolean jresult = 0 ;
  uint16_t arg1 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = (bool)CamModel::IsAlta(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_IsGen2Platform(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jboolean jresult = 0 ;
  uint16_t arg1 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = (bool)CamModel::IsGen2Platform(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_IsFirmwareRevGood(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jboolean jresult = 0 ;
  uint16_t arg1 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = (bool)CamModel::IsFirmwareRevGood(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_MaskRawId(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
  jint jresult = 0 ;
  uint16_t arg1 ;
  uint16_t arg2 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  arg2 = (uint16_t)jarg2; 
  {
    try {
      result = (uint16_t)CamModel::MaskRawId(arg1,arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetPlatformType_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jint jarg1, jboolean jarg2) {
  jint jresult = 0 ;
  uint16_t arg1 ;
  bool arg2 ;
  CamModel::PlatformType result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      result = (CamModel::PlatformType)CamModel::GetPlatformType(arg1,arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetPlatformType_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jint jresult = 0 ;
  uint16_t arg1 ;
  CamModel::PlatformType result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = (CamModel::PlatformType)CamModel::GetPlatformType(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetPlatformType_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  std::string *arg1 = 0 ;
  CamModel::PlatformType result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  {
    try {
      result = (CamModel::PlatformType)CamModel::GetPlatformType((std::string const &)*arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetPlatformStr_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jint jarg1, jboolean jarg2) {
  jstring jresult = 0 ;
  uint16_t arg1 ;
  bool arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      result = CamModel::GetPlatformStr(arg1,arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetPlatformStr_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jstring jresult = 0 ;
  uint16_t arg1 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = CamModel::GetPlatformStr(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetModelStr(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jstring jresult = 0 ;
  uint16_t arg1 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (uint16_t)jarg1; 
  {
    try {
      result = CamModel::GetModelStr(arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_GetNoOpFirmwareRev(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = CamModel::GetNoOpFirmwareRev();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FIRMWARE_1PLATFORM_1MASK_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::FIRMWARE_PLATFORM_MASK;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_MAX_1ALTA_1FIRMWARE_1REV_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::MAX_ALTA_FIRMWARE_REV;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_MIN_1GEN2_1FIRMWARE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::MIN_GEN2_FIRMWARE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_MAX_1GEN2_1FIRMWARE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::MAX_GEN2_FIRMWARE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ALTA_1CAMERA_1ID_1MASK_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::ALTA_CAMERA_ID_MASK;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_GEN2_1CAMERA_1ID_1MASK_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::GEN2_CAMERA_ID_MASK;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_NO_1OP_1FRMWR_1REV_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint16_t)(uint16_t)CamModel::NO_OP_FRMWR_REV;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1ConnectionError_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_ConnectionError;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1DataError_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_DataError;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1PatternError_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_PatternError;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1Idle_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_Idle;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1Exposing_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_Exposing;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1ImagingActive_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_ImagingActive;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1ImageReady_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_ImageReady;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1Flushing_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_Flushing;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Status_1WaitingOnTrigger_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Status result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Status)Apg::Status_WaitingOnTrigger;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1Normal_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_Normal;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1TDI_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_TDI;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1Test_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_Test;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1ExternalTrigger_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_ExternalTrigger;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1ExternalShutter_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_ExternalShutter;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1Kinetics_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_Kinetics;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraMode_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CameraMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CameraMode)Apg::CameraMode_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Resolution_1SixteenBit_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Resolution result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Resolution)Apg::Resolution_SixteenBit;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Resolution_1TwelveBit_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::Resolution result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::Resolution)Apg::Resolution_TwelveBit;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CoolerStatus_1Off_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CoolerStatus)Apg::CoolerStatus_Off;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CoolerStatus_1RampingToSetPoint_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CoolerStatus)Apg::CoolerStatus_RampingToSetPoint;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CoolerStatus_1AtSetPoint_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CoolerStatus)Apg::CoolerStatus_AtSetPoint;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CoolerStatus_1Revision_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CoolerStatus)Apg::CoolerStatus_Revision;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CoolerStatus_1Suspended_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::CoolerStatus result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::CoolerStatus)Apg::CoolerStatus_Suspended;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FanMode_1Off_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::FanMode)Apg::FanMode_Off;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FanMode_1Low_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::FanMode)Apg::FanMode_Low;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FanMode_1Medium_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::FanMode)Apg::FanMode_Medium;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FanMode_1High_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::FanMode)Apg::FanMode_High;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FanMode_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::FanMode)Apg::FanMode_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1Expose_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_Expose;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1ImageActive_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_ImageActive;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1Flushing_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_Flushing;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1ExtTriggerWaiting_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_ExtTriggerWaiting;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1ExtTriggerReceived_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_ExtTriggerReceived;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1ExtShutterInput_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_ExtShutterInput;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1ExtStartReadout_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_ExtStartReadout;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1AtTemp_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_AtTemp;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedState_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedState result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedState)Apg::LedState_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedMode_1DisableAll_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedMode)Apg::LedMode_DisableAll;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedMode_1DisableWhileExpose_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedMode)Apg::LedMode_DisableWhileExpose;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedMode_1EnableAll_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedMode)Apg::LedMode_EnableAll;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_LedMode_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::LedMode result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::LedMode)Apg::LedMode_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ErrorType_1Connection_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::ErrorType result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::ErrorType)Apg::ErrorType_Connection;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ErrorType_1Critical_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::ErrorType result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::ErrorType)Apg::ErrorType_Critical;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_ErrorType_1Serious_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::ErrorType result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::ErrorType)Apg::ErrorType_Serious;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialParity_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialParity result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialParity)Apg::SerialParity_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialParity_1None_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialParity result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialParity)Apg::SerialParity_None;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialParity_1Odd_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialParity result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialParity)Apg::SerialParity_Odd;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialParity_1Even_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialParity result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialParity)Apg::SerialParity_Even;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialFC_1Unknown_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialFC result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialFC)Apg::SerialFC_Unknown;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialFC_1Off_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialFC result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialFC)Apg::SerialFC_Off;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_SerialFC_1On_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  Apg::SerialFC result;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Apg::SerialFC)Apg::SerialFC_On;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1CameraStatusRegs_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  CameraStatusRegs *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (CameraStatusRegs *)new CameraStatusRegs();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1CameraStatusRegs_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  CameraStatusRegs::AdvStatus *arg1 = 0 ;
  CameraStatusRegs *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(CameraStatusRegs::AdvStatus **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CameraStatusRegs::AdvStatus const & reference is null");
    return 0;
  } 
  {
    try {
      result = (CameraStatusRegs *)new CameraStatusRegs((CameraStatusRegs::AdvStatus const &)*arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1CameraStatusRegs_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  CameraStatusRegs::BasicStatus *arg1 = 0 ;
  CameraStatusRegs *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(CameraStatusRegs::BasicStatus **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CameraStatusRegs::BasicStatus const & reference is null");
    return 0;
  } 
  {
    try {
      result = (CameraStatusRegs *)new CameraStatusRegs((CameraStatusRegs::BasicStatus const &)*arg1);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CameraStatusRegs **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1CameraStatusRegs(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetTempHeatSink(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTempHeatSink();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetTempCcd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTempCcd();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetCoolerDrive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetCoolerDrive();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetInputVoltage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetInputVoltage();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetTdiCounter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetTdiCounter();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetSequenceCounter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetSequenceCounter();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)((CameraStatusRegs const *)arg1)->GetStatus();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetuFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetuFrame();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetMostRecentFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetMostRecentFrame();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetReadyFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetReadyFrame();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetCurrentFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint16_t)(arg1)->GetCurrentFrame();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetFetchCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (uint32_t)(arg1)->GetFetchCount();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetDataAvailFlag(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = (bool)((CameraStatusRegs const *)arg1)->GetDataAvailFlag();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1QueryStatusRegs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jintArray jarg2, jintArray jarg3, jintArray jarg4, jintArray jarg5, jintArray jarg6, jintArray jarg7, jintArray jarg8, jintArray jarg9, jintArray jarg10, jintArray jarg11) {
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  uint16_t *arg2 = 0 ;
  uint16_t *arg3 = 0 ;
  uint16_t *arg4 = 0 ;
  uint16_t *arg5 = 0 ;
  uint16_t *arg6 = 0 ;
  uint16_t *arg7 = 0 ;
  uint16_t *arg8 = 0 ;
  uint16_t *arg9 = 0 ;
  uint16_t *arg10 = 0 ;
  uint16_t *arg11 = 0 ;
  uint16_t temp2 ;
  uint16_t temp3 ;
  uint16_t temp4 ;
  uint16_t temp5 ;
  uint16_t temp6 ;
  uint16_t temp7 ;
  uint16_t temp8 ;
  uint16_t temp9 ;
  uint16_t temp10 ;
  uint16_t temp11 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    if (!jarg2) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg2) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg2 = &temp2; 
  }
  {
    if (!jarg3) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg3) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg3 = &temp3; 
  }
  {
    if (!jarg4) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg4) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg4 = &temp4; 
  }
  {
    if (!jarg5) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg5) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg5 = &temp5; 
  }
  {
    if (!jarg6) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg6) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg6 = &temp6; 
  }
  {
    if (!jarg7) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg7) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg7 = &temp7; 
  }
  {
    if (!jarg8) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg8) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg8 = &temp8; 
  }
  {
    if (!jarg9) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg9) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg9 = &temp9; 
  }
  {
    if (!jarg10) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg10) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg10 = &temp10; 
  }
  {
    if (!jarg11) {
      SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
      return ;
    }
    if (jenv->GetArrayLength(jarg11) == 0) {
      SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
      return ;
    }
    arg11 = &temp11; 
  }
  {
    try {
      (arg1)->QueryStatusRegs(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,*arg8,*arg9,*arg10,*arg11);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
  {
    jint jvalue = (jint)temp2;
    jenv->SetIntArrayRegion(jarg2, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp3;
    jenv->SetIntArrayRegion(jarg3, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp4;
    jenv->SetIntArrayRegion(jarg4, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp5;
    jenv->SetIntArrayRegion(jarg5, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp6;
    jenv->SetIntArrayRegion(jarg6, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp7;
    jenv->SetIntArrayRegion(jarg7, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp8;
    jenv->SetIntArrayRegion(jarg8, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp9;
    jenv->SetIntArrayRegion(jarg9, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp10;
    jenv->SetIntArrayRegion(jarg10, 0, 1, &jvalue);
  }
  {
    jint jvalue = (jint)temp11;
    jenv->SetIntArrayRegion(jarg11, 0, 1, &jvalue);
  }
  
  
  
  
  
  
  
  
  
  
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1GetStatusStr(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  {
    try {
      result = ((CameraStatusRegs const *)arg1)->GetStatusStr();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1Update_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  CameraStatusRegs::AdvStatus *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  arg2 = *(CameraStatusRegs::AdvStatus **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CameraStatusRegs::AdvStatus const & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->Update((CameraStatusRegs::AdvStatus const &)*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_CameraStatusRegs_1Update_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  CameraStatusRegs *arg1 = (CameraStatusRegs *) 0 ;
  CameraStatusRegs::BasicStatus *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(CameraStatusRegs **)&jarg1; 
  arg2 = *(CameraStatusRegs::BasicStatus **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CameraStatusRegs::BasicStatus const & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->Update((CameraStatusRegs::BasicStatus const &)*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1FindDeviceEthernet(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  FindDeviceEthernet *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (FindDeviceEthernet *)new FindDeviceEthernet();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(FindDeviceEthernet **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1FindDeviceEthernet(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  FindDeviceEthernet *arg1 = (FindDeviceEthernet *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(FindDeviceEthernet **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_FindDeviceEthernet_1Find(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jstring jresult = 0 ;
  FindDeviceEthernet *arg1 = (FindDeviceEthernet *) 0 ;
  std::string *arg2 = 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(FindDeviceEthernet **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  {
    try {
      result = (arg1)->Find((std::string const &)*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FindDeviceEthernet_1GetElapsedSecs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  FindDeviceEthernet *arg1 = (FindDeviceEthernet *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(FindDeviceEthernet **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetElapsedSecs();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_FindDeviceEthernet_1GetTimeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  FindDeviceEthernet *arg1 = (FindDeviceEthernet *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(FindDeviceEthernet **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetTimeout();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1FindDeviceUsb(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  FindDeviceUsb *arg1 = (FindDeviceUsb *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(FindDeviceUsb **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_FindDeviceUsb_1Find(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  FindDeviceUsb *arg1 = (FindDeviceUsb *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(FindDeviceUsb **)&jarg1; 
  {
    try {
      result = (arg1)->Find();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1FindDeviceUsb(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  FindDeviceUsb *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (FindDeviceUsb *)new FindDeviceUsb();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(FindDeviceUsb **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Aspen(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Aspen *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Aspen *)new Aspen();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(Aspen **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1Aspen(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Aspen *arg1 = (Aspen *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  Aspen *arg1 = (Aspen *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Aspen *arg1 = (Aspen *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  Aspen *arg1 = (Aspen *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Aspen *arg1 = (Aspen *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1GetMacAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  Aspen *arg1 = (Aspen *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      result = (arg1)->GetMacAddress();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Aspen *arg1 = (Aspen *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Aspen *arg1 = (Aspen *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  Aspen *arg1 = (Aspen *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Aspen *arg1 = (Aspen *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1IsDualReadoutSupported(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Aspen *arg1 = (Aspen *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsDualReadoutSupported();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1SetDualReadout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  Aspen *arg1 = (Aspen *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetDualReadout(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1GetDualReadout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Aspen *arg1 = (Aspen *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Aspen **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->GetDualReadout();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1Quad(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Quad *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (Quad *)new Quad();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(Quad **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1Quad(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Quad *arg1 = (Quad *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1OpenConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jint jarg5) {
  Quad *arg1 = (Quad *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  uint16_t arg4 ;
  uint16_t arg5 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  arg4 = (uint16_t)jarg4; 
  arg5 = (uint16_t)jarg5; 
  {
    try {
      (arg1)->OpenConnection((std::string const &)*arg2,(std::string const &)*arg3,arg4,arg5);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1CloseConnection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Quad *arg1 = (Quad *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      (arg1)->CloseConnection();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1StartExposure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jboolean jarg3) {
  Quad *arg1 = (Quad *) 0 ;
  double arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->StartExposure(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jboolean JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1IsPixelReorderOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Quad *arg1 = (Quad *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      result = (bool)(arg1)->IsPixelReorderOn();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1SetPixelReorder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  Quad *arg1 = (Quad *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  {
    try {
      (arg1)->SetPixelReorder(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1GetNumAdChannels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Quad *arg1 = (Quad *) 0 ;
  int32_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      result = (int32_t)(arg1)->GetNumAdChannels();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1Init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Quad *arg1 = (Quad *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      (arg1)->Init();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jint JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1GetFanMode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Quad *arg1 = (Quad *) 0 ;
  Apg::FanMode result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  {
    try {
      result = (Apg::FanMode)(arg1)->GetFanMode();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1SetFanMode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  Quad *arg1 = (Quad *) 0 ;
  Apg::FanMode arg2 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  arg3 = jarg3 ? true : false; 
  {
    try {
      (arg1)->SetFanMode(arg2,arg3);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1SetFanMode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  Quad *arg1 = (Quad *) 0 ;
  Apg::FanMode arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Quad **)&jarg1; 
  arg2 = (Apg::FanMode)jarg2; 
  {
    try {
      (arg1)->SetFanMode(arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_new_1HiC(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  HiC *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  {
    try {
      result = (HiC *)new HiC();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(HiC **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_delete_1HiC(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  HiC *arg1 = (HiC *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(HiC **)&jarg1; 
  {
    try {
      delete arg1;
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_HiC_1SetSerialNumber(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  HiC *arg1 = (HiC *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HiC **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  {
    try {
      (arg1)->SetSerialNumber((std::string const &)*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_HiC_1GetCamInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  HiC *arg1 = (HiC *) 0 ;
  CamInfo::StrDb result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HiC **)&jarg1; 
  {
    try {
      result = (arg1)->GetCamInfo();
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return 0; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return 0; 
      };
    }
  }
  *(CamInfo::StrDb **)&jresult = new CamInfo::StrDb((const CamInfo::StrDb &)result); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_HiC_1SetCamInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  HiC *arg1 = (HiC *) 0 ;
  CamInfo::StrDb *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(HiC **)&jarg1; 
  arg2 = *(CamInfo::StrDb **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "CamInfo::StrDb & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->SetCamInfo(*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT void JNICALL Java_com_apogee_driver_jlibapogeeJNI_HiC_1Get4kby4kImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  HiC *arg1 = (HiC *) 0 ;
  std::vector< uint16_t > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(HiC **)&jarg1; 
  arg2 = *(std::vector< uint16_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint16_t > & reference is null");
    return ;
  } 
  {
    try {
      (arg1)->Get4kby4kImage(*arg2);
    } catch(const std::exception& e) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, e.what()); return ; 
      };
    } catch(...) {
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, "Unknown error"); return ; 
      };
    }
  }
}


SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_CamGen2Base_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(ApogeeCam **)&baseptr = *(CamGen2Base **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Alta_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(ApogeeCam **)&baseptr = *(Alta **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Ascent_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(CamGen2Base **)&baseptr = *(Ascent **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_AltaF_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(CamGen2Base **)&baseptr = *(AltaF **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Aspen_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(CamGen2Base **)&baseptr = *(Aspen **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_Quad_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(CamGen2Base **)&baseptr = *(Quad **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_com_apogee_driver_jlibapogeeJNI_HiC_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(Quad **)&baseptr = *(HiC **)&jarg1;
    return baseptr;
}

#ifdef __cplusplus
}
#endif

