#include #include Registry::Registry(void) : mRegistryKeyName(STRING_REGISTRYKEYNAME), mHistoryKeyName(STRING_HISTORYKEYNAME), mHistoryKeyShortName(STRING_HISTORYKEYSHORTNAME), mSettingsKeyName(STRING_SETTINGSKEYNAME), mRegKeyHistory(RegKey::CurrentUser), mSettingsAction(STRING_SETTINGSACTION), mSettingsMicrosecondsPerQuarterNote(STRING_SETTINGSMICROSECONDSPERQUARTERNOTE), mSettingsInstrument(STRING_SETTINGSINSTRUMENT), mSettingsNoteLetters(STRING_SETTINGSNOTELETTERS), mSettingsMIDIOutput(STRING_SETTINGSMIDIOUTPUT) { guarantee(); getCacheNames(); } Registry::Registry(const Registry &someRegistry) : mRegistryKeyName(STRING_REGISTRYKEYNAME), mHistoryKeyName(STRING_HISTORYKEYNAME), mHistoryKeyShortName(STRING_HISTORYKEYSHORTNAME), mSettingsMIDIOutput(STRING_SETTINGSMIDIOUTPUT), mRegKeyHistory(RegKey::CurrentUser) { *this=someRegistry; } Registry::~Registry() { } Registry &Registry::operator=(const Registry &/*registry*/) { return *this; } void Registry::getCacheNames(void) { int itemIndex(0); String entryName; DWORD status; mCachedNames.remove(); while(mRegKeyHistory.enumValue(itemIndex++,entryName,status))mCachedNames.insert(&entryName); } void Registry::guarantee(void) { if(!mRegKeyHistory.openKey(mHistoryKeyName)) { mRegKeyHistory.createKey(mHistoryKeyName,""); mRegKeyHistory.openKey(mHistoryKeyName); } if(!mRegKeySettings.openKey(mSettingsKeyName)) { mRegKeySettings.createKey(mSettingsKeyName,""); mRegKeySettings.openKey(mSettingsKeyName); setShowAction(GlobalDefs::ShowAction); setShowNotes(GlobalDefs::ShowNotes); setMicrosecondsPerQuarterNote(GlobalDefs::MicrosecondsPerQuarterNote); setInstrument(Instrument(GlobalDefs::Program)); setMIDIOutputDevice("MIDIMAPPER"); } } bool Registry::isOkay(void)const { return mRegKeyHistory.isOkay(); } bool Registry::getHistory(Block &nameList) { nameList=mCachedNames; return nameList.size()?TRUE:FALSE; } bool Registry::setHistory(Block &nameList) { removeHistory(); for(int itemIndex=0;itemIndex values; String entryName; DWORD status; while(mRegKeyHistory.enumValue(itemIndex++,entryName,status))values.insert(&entryName); for(int index=0;indexMaxCachedNames) { Block mruCachedNames; for(int itemIndex=0;itemIndex