1#ifndef IFS_SAVER_H
2#define IFS_SAVER_H
3
4#include <Locker.h>
5// on PPC the full path is needed
6#include <add-ons/screen_saver/ScreenSaver.h>
7#include <View.h>
8
9#include "IFS.h"
10
11
12class BCheckBox;
13class BSlider;
14
15
16class IFSSaver : public BScreenSaver, public BHandler {
17public:
18								IFSSaver(BMessage *message,
19											image_id image);
20	virtual						~IFSSaver();
21
22	virtual	void				StartConfig(BView *view);
23	virtual	status_t			StartSaver(BView *view, bool preview);
24	virtual	void				StopSaver();
25
26	virtual	void				DirectConnected(direct_buffer_info* info);
27	virtual	void				Draw(BView* view, int32 frame);
28	virtual	void				DirectDraw(int32 frame);
29
30	virtual	status_t			SaveState(BMessage* into) const;
31
32	virtual	void				MessageReceived(BMessage* message);
33
34private:
35			void				_Init(BRect bounds);
36			void				_Cleanup();
37
38			IFS*				fIFS;
39
40			bool				fIsPreview;
41
42			BLocker				fLocker;
43
44			BCheckBox*			fAdditiveCB;
45			BSlider*			fSpeedS;
46
47			buffer_info			fDirectInfo;
48			int32				fLastDrawnFrame;
49
50			bool				fAdditive;
51			int32				fSpeed;
52};
53
54
55#endif	// IFS_SAVER_H
56