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