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; 2626e9cdb7SStephan Aßmus enum { 2726e9cdb7SStephan Aßmus BG_MOVIES_FULL_VOLUME = 0, 2826e9cdb7SStephan Aßmus BG_MOVIES_HALF_VLUME = 1, 2926e9cdb7SStephan Aßmus BG_MOVIES_MUTED = 2 3026e9cdb7SStephan Aßmus }; 3126e9cdb7SStephan Aßmus uint32 backgroundMovieVolumeMode; 32ac6b0fc9SStephan Aßmus entry_ref filePanelFolder; 33613ecaf5SStephan Aßmus 34613ecaf5SStephan Aßmus bool operator!=(const mpSettings& other) const; 35*f907fa59SStephan Aßmus 36*f907fa59SStephan Aßmus BRect audioPlayerWindowFrame; 374d3ebaccSStephan Aßmus }; 384d3ebaccSStephan Aßmus 39ac6b0fc9SStephan Aßmus #define SETTINGS_FILENAME "MediaPlayer" 404d3ebaccSStephan Aßmus 41613ecaf5SStephan Aßmus class Settings : public BLocker, public Notifier { 424d3ebaccSStephan Aßmus public: 4326e9cdb7SStephan Aßmus Settings( 4426e9cdb7SStephan Aßmus const char* filename = SETTINGS_FILENAME); 454d3ebaccSStephan Aßmus 4626e9cdb7SStephan Aßmus void LoadSettings(mpSettings& settings) const; 474d3ebaccSStephan Aßmus void SaveSettings(const mpSettings& settings); 484d3ebaccSStephan Aßmus 4926e9cdb7SStephan Aßmus static mpSettings CurrentSettings(); 5026e9cdb7SStephan Aßmus static Settings* Default(); 514d3ebaccSStephan Aßmus 5226e9cdb7SStephan Aßmus private: 5326e9cdb7SStephan Aßmus SettingsMessage fSettingsMessage; 54613ecaf5SStephan Aßmus BList fListeners; 5526e9cdb7SStephan Aßmus 5626e9cdb7SStephan Aßmus static Settings sGlobalInstance; 574d3ebaccSStephan Aßmus }; 584d3ebaccSStephan Aßmus 5926e9cdb7SStephan Aßmus #endif // SETTINGS_H 60