2,051
edits
m (→Config Manager: typo) |
|||
Line 105: | Line 105: | ||
* Add a 'notification' system. E.g. the SoundMixer could request to be notified whenever the value of the "volume" config option changes. In other words, instead of a "pull" approach (where each subsystem has to check whether any config option relevant to it has been changed) we use a "push" approach. Of course the current approach is "push", too: whenever e.g. the volume setting is changed, the code doing so has to updated the SoundMixer etc. That's cumbersome, and error prone. Would be much nicer if updating the volume config value automatically notifies the SoundMixer, iMuse etc. | * Add a 'notification' system. E.g. the SoundMixer could request to be notified whenever the value of the "volume" config option changes. In other words, instead of a "pull" approach (where each subsystem has to check whether any config option relevant to it has been changed) we use a "push" approach. Of course the current approach is "push", too: whenever e.g. the volume setting is changed, the code doing so has to updated the SoundMixer etc. That's cumbersome, and error prone. Would be much nicer if updating the volume config value automatically notifies the SoundMixer, iMuse etc. | ||
* Modify the ConfigManager to make use of the ConfigFile class. | * Modify the ConfigManager to make use of the ConfigFile class. | ||
* Maybe even follow the pentagram (http:// | * Maybe even follow the pentagram (http://pentagram.sf.net) approach and have three classes: | ||
** SettingsManager (like our current ConfigManager) | ** SettingsManager (like our current ConfigManager) | ||
** ConfigFileManager (manages a set of config files, possibly merging the data from multiple config files) | ** ConfigFileManager (manages a set of config files, possibly merging the data from multiple config files) |
edits