// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the JNIORDLL_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// JNIORDLL_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef JNIORSIMULATOR_EXPORTS
#define JNIORDLL_API __declspec(dllexport)
#else
#define JNIORDLL_API __declspec(dllimport)
#endif

#pragma once

#include "Jnior.h"


extern "C" JNIORDLL_API int StartServer(CONNECT_PARAMS* cp, int count);

extern "C" JNIORDLL_API int SetInputCoumt(int handle, int inputCount);

extern "C" JNIORDLL_API int GetInputCoumt(int handle);

extern "C" JNIORDLL_API int GetInput(int handle, int channel);

extern "C" JNIORDLL_API int GetInputs(int handle);

extern "C" JNIORDLL_API int SetInput(int handle, int channel, int state);

extern "C" JNIORDLL_API int SetInputs(int handle, int channelMask, int stateMask);

extern "C" JNIORDLL_API int SetOutputCoumt(int handle, int outputCount);

extern "C" JNIORDLL_API int GetOutputCoumt(int handle);

extern "C" JNIORDLL_API int GetOutput(int handle, int channel);

extern "C" JNIORDLL_API int GetOutputs(int handle);

extern "C" JNIORDLL_API int SetOutput(int handle, int channel, int state);

extern "C" JNIORDLL_API int SetOutputs(int handle, int channelMask, int stateMask);

extern "C" JNIORDLL_API int Disconnect(int handle);


/*********************** CALLBACKS *******************************************/
extern "C" JNIORDLL_API int SetServerInfoCallback(CALLBACKNOTIFY lProcAddress);
