示例#1
0
void Tpresets::nextUniqueName(char_t *presetName, size_t buflen)
{
    iterator i=findPreset(presetName);
    if (i==end()) {
        return;
    }
    for (int ii=1;; ii++) {
        char_t pomS[MAX_PATH];
        tsnprintf_s(pomS, countof(pomS), _TRUNCATE, _l("%s %i"),presetName,ii);
        if (findPreset(pomS)==end()) {
            ff_strncpy(presetName, pomS, buflen);
            return;
        }
    }
}
示例#2
0
Tpreset* Tpresets::getAutoPreset0(TautoPresetProps &aprops,bool filefirst)
{
    if (filefirst) {
        const char_t *AVIname=aprops.getSourceFullFlnm();
        ffstring presetFlnm;
        changepathext(AVIname, presetext, presetFlnm);
        if (fileexists(presetFlnm.c_str())) {
            Tpreset *preset=newPreset(AVIname);
            preset->loadFile(presetFlnm.c_str());
            Tpreset::normalizePresetName(preset->presetName, AVIname, countof(preset->presetName));
            preset->autoLoadedFromFile=true;
            iterator i=findPreset(preset->presetName);
            if (i!=end() && (*i)->autoLoadedFromFile) {
                removePreset(preset->presetName);
            }
            nextUniqueName(preset);
            push_back(preset);
            return preset;
        }
    }
    for (iterator i=begin(); i!=end(); i++)
        if ((*i)->isAutoPreset(aprops)) {
            return *i;
        }
    return NULL;
}
示例#3
0
//--------------------------------------------------------------
// Subcategory::merge
//--------------------------------------------------------------
void Subcategory::merge(Preset* p) {
    if(isFreeProg(p->prog)) p->linkSubcategory(this);
    else {
	Preset* pFromSub=findPreset(p->prog);
	pFromSub->merge(p);
    }
}
示例#4
0
void Tpresets::storePreset(Tpreset *preset)
{
    iterator i=findPreset(preset->presetName);
    if (i!=end()) {
        *i=preset;
    } else {
        push_back(preset);
    }
}
示例#5
0
bool Tpresets::removePreset(const char_t *presetName)
{
    iterator i=findPreset(presetName);
    if (i!=begin() && i!=end()) {
        delete *i;
        erase(i);
        return true;
    } else {
        return false;
    }
}
示例#6
0
Tpreset* Tpresets::getPreset(const char_t *presetName,bool create)
{
    iterator i=findPreset(presetName);
    if (i!=end()) {
        return *i;
    } else if (create) {
        Tpreset *newpreset=newPreset(presetName);
        newpreset->loadReg();
        storePreset(newpreset);
        return newpreset;
    } else {
        return NULL;
    }
}
示例#7
0
void Tpresets::saveRegAll(void)
{
    for (iterator ii=begin(); ii!=end(); ii++)
        if (!(*ii)->autoLoadedFromFile) {
            (*ii)->saveReg();
        }

    strings keys;
    listRegKeys(keys);
    for (strings::const_iterator i=keys.begin(); i!=keys.end(); i++)
        if (i->c_str()[0]!='\0' && findPreset(i->c_str())==end()) {
            char_t presetRegStr[256];
            tsnprintf_s(presetRegStr, countof(presetRegStr), _TRUNCATE, FFDSHOW_REG_PARENT _l("\\%s\\%s"), reg_child, i->c_str());
            RegDeleteKey(HKEY_CURRENT_USER,presetRegStr);
        }
}
示例#8
0
void Tpresets::init(void)
{
    Tpreset *def=newPreset();
    def->loadDefault();
    push_back(def);

    strings keys;
    listRegKeys(keys);
    for (strings::const_iterator i=keys.begin(); i!=keys.end(); i++)
        if (findPreset(i->c_str())==end()) {
            Tpreset *preset=newPreset(i->c_str());
            preset->loadReg();
            push_back(preset);
        }
    if (keys.size()==0) {
        (*begin())->saveReg();
    }
}
示例#9
0
bool Subcategory::isFreeProg(int pr) {
    if(findPreset(pr)) return(false);
    else return(true);
}