xref: /haiku/src/apps/mediaplayer/settings/Settings.h (revision 613ecaf5f9eb4aaf399917fb239979e5256fb274)
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 
926e9cdb7SStephan Aßmus #ifndef SETTINGS_H
1026e9cdb7SStephan Aßmus #define SETTINGS_H
114d3ebaccSStephan Aßmus 
1226e9cdb7SStephan Aßmus #include <Locker.h>
134d3ebaccSStephan Aßmus 
14*613ecaf5SStephan Aßmus #include "Notifier.h"
1526e9cdb7SStephan Aßmus #include "SettingsMessage.h"
164d3ebaccSStephan Aßmus 
174d3ebaccSStephan Aßmus struct mpSettings {
1826e9cdb7SStephan Aßmus 	bool	autostart;
1926e9cdb7SStephan Aßmus 	bool	closeWhenDonePlayingMovie;
2026e9cdb7SStephan Aßmus 	bool	closeWhenDonePlayingSound;
2126e9cdb7SStephan Aßmus 	bool	loopMovie;
2226e9cdb7SStephan Aßmus 	bool	loopSound;
2326e9cdb7SStephan Aßmus 	bool	useOverlays;
2426e9cdb7SStephan Aßmus 	bool	scaleBilinear;
2526e9cdb7SStephan Aßmus 	enum {
2626e9cdb7SStephan Aßmus 		BG_MOVIES_FULL_VOLUME = 0,
2726e9cdb7SStephan Aßmus 		BG_MOVIES_HALF_VLUME = 1,
2826e9cdb7SStephan Aßmus 		BG_MOVIES_MUTED = 2
2926e9cdb7SStephan Aßmus 	};
3026e9cdb7SStephan Aßmus 	uint32	backgroundMovieVolumeMode;
31*613ecaf5SStephan Aßmus 
32*613ecaf5SStephan Aßmus 	bool operator!=(const mpSettings& other) const;
334d3ebaccSStephan Aßmus };
344d3ebaccSStephan Aßmus 
3526e9cdb7SStephan Aßmus #define SETTINGS_FILENAME "MediaPlayerSettings"
364d3ebaccSStephan Aßmus 
37*613ecaf5SStephan Aßmus class Settings : public BLocker, public Notifier {
384d3ebaccSStephan Aßmus public:
3926e9cdb7SStephan Aßmus 								Settings(
4026e9cdb7SStephan Aßmus 									const char* filename = SETTINGS_FILENAME);
414d3ebaccSStephan Aßmus 
4226e9cdb7SStephan Aßmus 			void				LoadSettings(mpSettings& settings) const;
434d3ebaccSStephan Aßmus 			void				SaveSettings(const mpSettings& settings);
444d3ebaccSStephan Aßmus 
4526e9cdb7SStephan Aßmus 	static	mpSettings			CurrentSettings();
4626e9cdb7SStephan Aßmus 	static	Settings*			Default();
474d3ebaccSStephan Aßmus 
4826e9cdb7SStephan Aßmus private:
4926e9cdb7SStephan Aßmus 			SettingsMessage		fSettingsMessage;
50*613ecaf5SStephan Aßmus 			BList				fListeners;
5126e9cdb7SStephan Aßmus 
5226e9cdb7SStephan Aßmus 	static	Settings			sGlobalInstance;
534d3ebaccSStephan Aßmus };
544d3ebaccSStephan Aßmus 
5526e9cdb7SStephan Aßmus #endif  // SETTINGS_H
56