#ifndef INTUITION_CLASSES_H
#include <intuition/classes.h>
#endif

/* TV.c */
extern struct P4Resource	*P4_ResourceBase;
extern struct Library		*P96Base;

extern ULONG brightness, volume;
extern WORD VideoWidth, VideoHeight;
extern struct Window	*wd;

extern int ChannelIndex, Mode;

enum {
	MODE_TV,
	MODE_FBAS,
	MODE_SVHS,
	MODE_PABLO
};

extern struct IClass *initNext(void), *initPrev(void), *initSnap(void);
extern struct IClass *NextClass, *PrevClass, *SnapClass;
extern Object *NextImage, *PrevImage, *SnapGadget;

int NextChannel(void);
int PrevChannel(void);

/* Menu.c */
extern struct NewMenu newMenu[];
extern struct EasyStruct es_error;

/* avm.c */
#define ISTUNED (((volatile UBYTE *)(P4_ResourceBase->p4res_boardinfos[0]->p4bi_GPPortBase))[0x806] & 0x01)

void initAVModule(void);
void shutdownAVModule(void);

void ActivateTuner(void);
void ActivateFBAS(void);
void ActivateSVHS(void);
void ActivatePABLO(void);

int Autoscan(void);
int TuneUp(void);
int TuneDown(void);

void SetChannel(int index);
int TuneNext(int index);
int TunePrev(int index);
int AdjustUp(void);
int AdjustDown(void);

struct TVchannel {
	ULONG	Frequency;
};

struct TVchannelHandle {
	struct Node Node;
	struct TVchannel Channel;
};

extern struct List ChannelList;
extern int NumChannels;

/* Settings.c */
int WriteSettings(void);
int ReadSettings(void);

/* BOOPSI */
#define MY_Height 0x80000001
#define MY_Width 0x80000002

#define BRIGHTNESS_GID	1
#define S_GID		2
#define UP_GID		3
#define DOWN_GID	4
#define PREV_GID	5
#define NEXT_GID	6
#define SNAP_GID	7
#define VOLUME_GID	8
