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 12ac6b0fc9SStephan Aßmus #include <Entry.h> 1326e9cdb7SStephan Aßmus #include <Locker.h> 144d3ebaccSStephan Aßmus 15613ecaf5SStephan Aßmus #include "Notifier.h" 1626e9cdb7SStephan Aßmus #include "SettingsMessage.h" 174d3ebaccSStephan Aßmus 184d3ebaccSStephan Aßmus struct mpSettings { 1926e9cdb7SStephan Aßmus bool autostart; 2026e9cdb7SStephan Aßmus bool closeWhenDonePlayingMovie; 2126e9cdb7SStephan Aßmus bool closeWhenDonePlayingSound; 2226e9cdb7SStephan Aßmus bool loopMovie; 2326e9cdb7SStephan Aßmus bool loopSound; 2426e9cdb7SStephan Aßmus bool useOverlays; 2526e9cdb7SStephan Aßmus bool scaleBilinear; 26*341ea11eSStephan Aßmus bool scaleFullscreenControls; 2726e9cdb7SStephan Aßmus enum { 2826e9cdb7SStephan Aßmus BG_MOVIES_FULL_VOLUME = 0, 2926e9cdb7SStephan Aßmus BG_MOVIES_HALF_VLUME = 1, 3026e9cdb7SStephan Aßmus BG_MOVIES_MUTED = 2 3126e9cdb7SStephan Aßmus }; 3226e9cdb7SStephan Aßmus uint32 backgroundMovieVolumeMode; 33ac6b0fc9SStephan Aßmus entry_ref filePanelFolder; 34613ecaf5SStephan Aßmus 35613ecaf5SStephan Aßmus bool operator!=(const mpSettings& other) const; 36f907fa59SStephan Aßmus 37f907fa59SStephan Aßmus BRect audioPlayerWindowFrame; 384d3ebaccSStephan Aßmus }; 394d3ebaccSStephan Aßmus 40ac6b0fc9SStephan Aßmus #define SETTINGS_FILENAME "MediaPlayer" 414d3ebaccSStephan Aßmus 42613ecaf5SStephan Aßmus class Settings : public BLocker, public Notifier { 434d3ebaccSStephan Aßmus public: 4426e9cdb7SStephan Aßmus Settings( 4526e9cdb7SStephan Aßmus const char* filename = SETTINGS_FILENAME); 464d3ebaccSStephan Aßmus 4726e9cdb7SStephan Aßmus void LoadSettings(mpSettings& settings) const; 484d3ebaccSStephan Aßmus void SaveSettings(const mpSettings& settings); 494d3ebaccSStephan Aßmus 5026e9cdb7SStephan Aßmus static mpSettings CurrentSettings(); 5126e9cdb7SStephan Aßmus static Settings* Default(); 524d3ebaccSStephan Aßmus 5326e9cdb7SStephan Aßmus private: 5426e9cdb7SStephan Aßmus SettingsMessage fSettingsMessage; 55613ecaf5SStephan Aßmus BList fListeners; 5626e9cdb7SStephan Aßmus 5726e9cdb7SStephan Aßmus static Settings sGlobalInstance; 584d3ebaccSStephan Aßmus }; 594d3ebaccSStephan Aßmus 6026e9cdb7SStephan Aßmus #endif // SETTINGS_H 61