#include "readerstate.h"
#include "pcsclite.h"
#include "eventhandler.h"
#include <security_utilities/debugging.h>
DWORD SharedReaderState_State(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xreaderState();
}
DWORD SharedReaderState_Protocol(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xcardProtocol();
}
DWORD SharedReaderState_Sharing(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->sharing();
}
size_t SharedReaderState_CardAtrLength(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xcardAtrLength();
}
LONG SharedReaderState_ReaderID(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xreaderID();
}
const unsigned char *SharedReaderState_CardAtr(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xcardAtr();
}
const char *SharedReaderState_ReaderName(READER_STATE *rs)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return srs->xreaderName();
}
int SharedReaderState_ReaderNameIsEqual(READER_STATE *rs, const char *otherName)
{
if (otherName)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
return (strcmp(otherName, srs->xreaderName()) == 0);
}
else
return 0;
}
void SharedReaderState_SetState(READER_STATE *rs, DWORD state)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
srs->xreaderState(state);
}
void SharedReaderState_SetProtocol(READER_STATE *rs, DWORD newprotocol)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
srs->xcardProtocol(newprotocol);
}
void SharedReaderState_SetCardAtrLength(READER_STATE *rs, size_t len)
{
PCSCD::SharedReaderState *srs = PCSCD::SharedReaderState::overlay(rs);
srs->xcardAtrLength(len);
}
#pragma mark ---------- C Interface ----------