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