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 { 19*e65a6eb2SStephan Aßmus enum { 20*e65a6eb2SStephan Aßmus SUBTITLE_SIZE_SMALL = 0, 21*e65a6eb2SStephan Aßmus SUBTITLE_SIZE_MEDIUM = 1, 22*e65a6eb2SStephan Aßmus SUBTITLE_SIZE_LARGE = 2 23*e65a6eb2SStephan Aßmus }; 24*e65a6eb2SStephan Aßmus enum { 25*e65a6eb2SStephan Aßmus SUBTITLE_PLACEMENT_BOTTOM_OF_VIDEO = 0, 26*e65a6eb2SStephan Aßmus SUBTITLE_PLACEMENT_BOTTOM_OF_SCREEN = 1 27*e65a6eb2SStephan Aßmus }; 28*e65a6eb2SStephan Aßmus enum { 29*e65a6eb2SStephan Aßmus BG_MOVIES_FULL_VOLUME = 0, 30*e65a6eb2SStephan Aßmus BG_MOVIES_HALF_VLUME = 1, 31*e65a6eb2SStephan Aßmus BG_MOVIES_MUTED = 2 32*e65a6eb2SStephan Aßmus }; 33*e65a6eb2SStephan Aßmus 3426e9cdb7SStephan Aßmus bool autostart; 3526e9cdb7SStephan Aßmus bool closeWhenDonePlayingMovie; 3626e9cdb7SStephan Aßmus bool closeWhenDonePlayingSound; 3726e9cdb7SStephan Aßmus bool loopMovie; 3826e9cdb7SStephan Aßmus bool loopSound; 3926e9cdb7SStephan Aßmus bool useOverlays; 4026e9cdb7SStephan Aßmus bool scaleBilinear; 41341ea11eSStephan Aßmus bool scaleFullscreenControls; 42*e65a6eb2SStephan Aßmus uint32 subtitleSize; 43*e65a6eb2SStephan Aßmus uint32 subtitlePlacement; 4426e9cdb7SStephan Aßmus uint32 backgroundMovieVolumeMode; 45ac6b0fc9SStephan Aßmus entry_ref filePanelFolder; 46613ecaf5SStephan Aßmus 47613ecaf5SStephan Aßmus bool operator!=(const mpSettings& other) const; 48f907fa59SStephan Aßmus 49f907fa59SStephan Aßmus BRect audioPlayerWindowFrame; 504d3ebaccSStephan Aßmus }; 514d3ebaccSStephan Aßmus 52ac6b0fc9SStephan Aßmus #define SETTINGS_FILENAME "MediaPlayer" 534d3ebaccSStephan Aßmus 54613ecaf5SStephan Aßmus class Settings : public BLocker, public Notifier { 554d3ebaccSStephan Aßmus public: 5626e9cdb7SStephan Aßmus Settings( 5726e9cdb7SStephan Aßmus const char* filename = SETTINGS_FILENAME); 584d3ebaccSStephan Aßmus 5926e9cdb7SStephan Aßmus void LoadSettings(mpSettings& settings) const; 604d3ebaccSStephan Aßmus void SaveSettings(const mpSettings& settings); 614d3ebaccSStephan Aßmus 6226e9cdb7SStephan Aßmus static mpSettings CurrentSettings(); 6326e9cdb7SStephan Aßmus static Settings* Default(); 644d3ebaccSStephan Aßmus 6526e9cdb7SStephan Aßmus private: 6626e9cdb7SStephan Aßmus SettingsMessage fSettingsMessage; 67613ecaf5SStephan Aßmus BList fListeners; 6826e9cdb7SStephan Aßmus 6926e9cdb7SStephan Aßmus static Settings sGlobalInstance; 704d3ebaccSStephan Aßmus }; 714d3ebaccSStephan Aßmus 7226e9cdb7SStephan Aßmus #endif // SETTINGS_H 73