xref: /haiku/src/apps/mediaplayer/settings/Settings.h (revision 26e9cdb72cc4f788f60ca38dc3309e62b8c6247b)
14d3ebaccSStephan Aßmus /*
24d3ebaccSStephan Aßmus  * Copyright 2008, Haiku. All rights reserved.
34d3ebaccSStephan Aßmus  * Distributed under the terms of the MIT License.
44d3ebaccSStephan Aßmus  *
54d3ebaccSStephan Aßmus  * Authors:
64d3ebaccSStephan Aßmus  *		Fredrik Modéen <fredrik@modeen.se>
74d3ebaccSStephan Aßmus  */
84d3ebaccSStephan Aßmus 
9*26e9cdb7SStephan Aßmus #ifndef SETTINGS_H
10*26e9cdb7SStephan Aßmus #define SETTINGS_H
114d3ebaccSStephan Aßmus 
12*26e9cdb7SStephan Aßmus #include <Locker.h>
134d3ebaccSStephan Aßmus 
14*26e9cdb7SStephan Aßmus #include "SettingsMessage.h"
154d3ebaccSStephan Aßmus 
164d3ebaccSStephan Aßmus struct mpSettings {
17*26e9cdb7SStephan Aßmus 	bool	autostart;
18*26e9cdb7SStephan Aßmus 	bool	closeWhenDonePlayingMovie;
19*26e9cdb7SStephan Aßmus 	bool	closeWhenDonePlayingSound;
20*26e9cdb7SStephan Aßmus 	bool	loopMovie;
21*26e9cdb7SStephan Aßmus 	bool	loopSound;
22*26e9cdb7SStephan Aßmus 	bool	useOverlays;
23*26e9cdb7SStephan Aßmus 	bool	scaleBilinear;
24*26e9cdb7SStephan Aßmus 	enum {
25*26e9cdb7SStephan Aßmus 		BG_MOVIES_FULL_VOLUME = 0,
26*26e9cdb7SStephan Aßmus 		BG_MOVIES_HALF_VLUME = 1,
27*26e9cdb7SStephan Aßmus 		BG_MOVIES_MUTED = 2
28*26e9cdb7SStephan Aßmus 	};
29*26e9cdb7SStephan Aßmus 	uint32	backgroundMovieVolumeMode;
304d3ebaccSStephan Aßmus };
314d3ebaccSStephan Aßmus 
32*26e9cdb7SStephan Aßmus #define SETTINGS_FILENAME "MediaPlayerSettings"
334d3ebaccSStephan Aßmus 
34*26e9cdb7SStephan Aßmus class Settings : public BLocker {
354d3ebaccSStephan Aßmus public:
36*26e9cdb7SStephan Aßmus 								Settings(
37*26e9cdb7SStephan Aßmus 									const char* filename = SETTINGS_FILENAME);
384d3ebaccSStephan Aßmus 
39*26e9cdb7SStephan Aßmus 			void				LoadSettings(mpSettings& settings) const;
404d3ebaccSStephan Aßmus 			void				SaveSettings(const mpSettings& settings);
414d3ebaccSStephan Aßmus 
42*26e9cdb7SStephan Aßmus 	static	mpSettings			CurrentSettings();
43*26e9cdb7SStephan Aßmus 	static	Settings*			Default();
444d3ebaccSStephan Aßmus 
45*26e9cdb7SStephan Aßmus private:
46*26e9cdb7SStephan Aßmus 			SettingsMessage		fSettingsMessage;
47*26e9cdb7SStephan Aßmus 
48*26e9cdb7SStephan Aßmus 	static	Settings			sGlobalInstance;
494d3ebaccSStephan Aßmus };
504d3ebaccSStephan Aßmus 
51*26e9cdb7SStephan Aßmus #endif  // SETTINGS_H
52