/*----------------------------------------------------------------------------
**
**	ShiftReg.h
**	
**--------------------------------------------------------------------------*/

#ifndef SHIFTREG_H
#define SHIFTREG_H
                            
// Function prototypes
void            UpdateChain(void);
void            InitialiseShiftRegisterChain(void);
void            ChainSetBit(int BitNumber, int State);
void            ChainSetBitNow(int BitNumber, int State);
void            ChainSetByte(int ByteNumber, unsigned char Value);
void            ChainSetByteNow(int ByteNumber, unsigned char Value);
unsigned char   ChainReadBit(int BitNumber);
unsigned char   ChainReadBitNow(int BitNumber);

// Bytes
#define SR_LCD_DATA 0
#define SR_SPEAR    1
#define SR_INPUTS   2

// Input definitions
enum
{
    RADIO_CHANNEL_SELECT_0,
    RADIO_CHANNEL_SELECT_1,
    RADIO_CHANNEL_SELECT_2,
    RADIO_CHANNEL_SELECT_3
};


// Output definitions
enum
{
    SR_LCD_D0,
    SR_LCD_D1,
    SR_LCD_D2,
    SR_LCD_D3,
    SR_LCD_D4,
    SR_LCD_D5,
    SR_LCD_D6,
    SR_LCD_D7,
    SR_LCD_RS,
    SR_LCD_E,
    SR_LCD_RW,
    SR_SPARE_10,
    SR_SPARE_11,
    SR_SPARE_12,
    SR_SPARE_13,
    SR_SPARE_14,
    SR_SPARE_15
};
#endif