Exemple #1
0
//=================================== TOSDpageDec ==================================
void TOSDpageDec::init(void)
{
    tbrSetRange(IDC_TBR_OSD_POSX, 0, 100, 10);
    tbrSetRange(IDC_TBR_OSD_POSY, 0, 100, 10);

    setFont(IDC_BT_OSD_LINE_UP  , parent->arrowsFont);
    setFont(IDC_BT_OSD_LINE_DOWN, parent->arrowsFont);

    hlv = GetDlgItem(m_hwnd, IDC_LV_OSD_LINES);
    ListView_SetExtendedListViewStyleEx(hlv, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
    int ncol = 0;
    RECT r;
    GetWindowRect(hlv, &r);
    ListView_AddCol(hlv, ncol, r.right - r.left - 26, _l("OSD item"), false);

    edLimitText(IDC_ED_OSD_USER, 1019);
    dragitem = -1;
    CRect rp;
    GetWindowRect(m_hwnd, &rp);
    CRect rc;
    GetWindowRect(hlv, &rc);
    lvx = rc.left - rp.left;
    lvy = rc.top - rp.top;

    edLimitText(IDC_ED_OSD_SAVE, MAX_PATH);
    cbxAdd(IDC_CBX_OSD_USERFORMAT, _l("HTML"), Tsubreader::SUB_SUBVIEWER);
    cbxAdd(IDC_CBX_OSD_USERFORMAT, _l("SSA"), Tsubreader::SUB_SSA);
}
Exemple #2
0
void TgenericFFV1page::init(void)
{
    for (int i = 0; TcoSettings::ffv1csps[i].name; i++) {
        cbxAdd(IDC_CBX_FFV1_CSP, TcoSettings::ffv1csps[i].name, TcoSettings::ffv1csps[i].fcc);
    }
    for (int i = 0; TcoSettings::ffv1coders[i]; i++) {
        cbxAdd(IDC_CBX_FFV1_CODER, TcoSettings::ffv1coders[i]);
    }
    for (int i = 0; TcoSettings::ffv1contexts[i]; i++) {
        cbxAdd(IDC_CBX_FFV1_CONTEXT, TcoSettings::ffv1contexts[i]);
    }
}
Exemple #3
0
void TinPage::translate(void)
{
    TconfPageEnc::translate();

    int ii=cbxGetCurSel(IDC_CBX_INCSP);
    cbxClear(IDC_CBX_INCSP);
    cbxAdd(IDC_CBX_INCSP,_(IDC_CBX_INCSP,_l("all YUV")),FOURCC_MASK_YUV);
    cbxAdd(IDC_CBX_INCSP,_(IDC_CBX_INCSP,_l("all RGB")),FOURCC_MASK_RGB);
    for (int i=0; cspFccs[i].name; i++) {
        cbxAdd(IDC_CBX_INCSP,cspFccs[i].name,cspFccs[i].fcc);
    }
    cbxSetCurSel(IDC_CBX_INCSP,ii);
}
Exemple #4
0
void ToutsfsPage::init(void)
{
    for (int i = 0; i < countof(ac3bitrates); i++) {
        char_t s[30];
        cbxAdd(IDC_CBX_OUT_AC3, _itoa(ac3bitrates[i], s, 10), ac3bitrates[i]);
    }
    Tlibavcodec *lavc;
    deci->getLibavcodec(&lavc);
    static const int ac3s[] = {IDC_CHB_OUT_AC3, IDC_LBL_OUT_AC3, IDC_CBX_OUT_AC3, IDC_CHB_AOUT_AC3ENCODE_MODE, 0};
    enable(lavc && lavc->ok, ac3s);
    if (lavc) {
        lavc->Release();
    }

    setCheck(IDC_CHB_PASSTHROUGH_PCM_CONNECT  , cfgGet(IDFF_aoutpassthroughPCMConnection) == 1);

    addHint(IDC_CHB_OUT_AC3, _l("Will encode the output stream to AC3 format. AC3 encoder currently supports the following sample rates: 32kHz and 48kHz.\nother sample rates should be resampled to one of the supported sample rates,\nthis can be done using the \"Resample\" filter."));
    addHint(IDC_CHB_ALWAYEXTENSIBLE, _l("\"not needed\": no custom channel mapping"));
    addHint(IDC_CHB_ALLOWOUTSTREAM, _l("Useful for directly storing encoded ac3 to a file in graphedt with File Writer filter"));
    addHint(IDC_CHB_PASSTHROUGH_EAC3, _l("Performs a Dolby Digital Plus (EAC3) bitstream if your HT receiver supports it."));
    addHint(IDC_CHB_PASSTHROUGH_TRUEHD, _l("Performs a Dolby TrueHD bitstream if your HT receiver supports it."));
    addHint(IDC_CHB_PASSTHROUGH_DTSHD, _l("Performs a DTS HD bitstream if your HT receiver supports it."));
    addHint(IDC_CBX_OUT_PASSTHROUGH_DEVICEID, _l("Change this parameter only if your card does not support the official media types"));
    addHint(IDC_CHB_PASSTHROUGH_PCM_CONNECT, _l("Some renderers need that the connection is done on PCM (uncompressed) format first then it would switch to bitstream. If checked then FFDShow will assume that your receiver supports the bitstream formats you checked"));
    warningShowed = 0;
}
Exemple #5
0
void TgenericHuffyuvPage::init(void)
{
    for (int i = 0; TcoSettings::huffYUVcsps[i]; i++) {
        cbxAdd(IDC_CBX_HUFFYUV_CSP, TcoSettings::huffYUVcsps[i]);
    }
    addHint(IDC_CHB_HUFFYUV_CTX, _l("Better compression, incompatible with original HuffYUV codec"));
}
Exemple #6
0
void TresizeSettingsPage::translate(void)
{
    TconfPageBase::translate();

    int selLuma = cbxGetCurSel(IDC_CBX_RESIZE_METHOD_LUMA), selChroma = cbxGetCurSel(IDC_CBX_RESIZE_METHOD_CHROMA);
    cbxClear(IDC_CBX_RESIZE_METHOD_LUMA);
    cbxClear(IDC_CBX_RESIZE_METHOD_CHROMA);
    for (int i = 0; TresizeAspectSettings::methodsOrder[i] != -1; i++) {
        int method = TresizeAspectSettings::methodsOrder[i];
        cbxAdd(IDC_CBX_RESIZE_METHOD_LUMA  , _(IDC_CBX_RESIZE_METHOD_LUMA, TresizeAspectSettings::methodsProps[method].name), TresizeAspectSettings::methodsProps[method].id);
        if (TresizeAspectSettings::methodsProps[method].library == TresizeAspectSettings::LIB_SWSCALER) {
            cbxAdd(IDC_CBX_RESIZE_METHOD_CHROMA, _(IDC_CBX_RESIZE_METHOD_CHROMA, TresizeAspectSettings::methodsProps[method].name), TresizeAspectSettings::methodsProps[method].id);
        }
    }
    cbxSetCurSel(IDC_CBX_RESIZE_METHOD_LUMA, selLuma);
    cbxSetCurSel(IDC_CBX_RESIZE_METHOD_CHROMA, selChroma);
}
Exemple #7
0
void Twindow::cbxTranslate(int id,const char_t **list)
{
    int sel=cbxGetCurSel(id);
    cbxClear(id);
    for (int i=0; list[i]; i++) {
        cbxAdd(id,_(id,list[i]));
    }
    cbxSetCurSel(id,sel);
}
Exemple #8
0
void TffdshowPageEnc::codec2dlg(void)
{
    codecId = (AVCodecID)cfgGet(IDFF_enc_codecId);
    SendDlgItemMessage(m_hwnd, IDC_CBX_FOURCC, CB_RESETCONTENT, 0, 0);
    int cnt = cbxGetItemCount(IDC_CBX_ENCODER);
    for (int i = 0; i < cnt; i++)
        if (((Tencoder*)cbxGetItemData(IDC_CBX_ENCODER, i))->id == codecId) {
            cbxSetCurSel(IDC_CBX_ENCODER, i);
            const Tencoder *enc;
            deciE->getEncoder(codecId, &enc);
            if (enc) {
                for (Tfourccs::const_iterator f = enc->fourccs.begin(); f != enc->fourccs.end(); f++) {
                    char fccs[5] = "1234";
                    memcpy(fccs, &*f, 4);
                    if (fccs[0]) {
                        cbxAdd(IDC_CBX_FOURCC, text<char_t>(fccs), *f);
                    }
                }
                static const int idFourcc[] = {IDC_LBL_FOURCC, IDC_CBX_FOURCC, 0};
                if (cbxGetItemCount(IDC_CBX_FOURCC) == 0) {
                    enable(false, idFourcc);
                } else {
                    enable(true, idFourcc);
                    fourcc2dlg();
                }
                SendDlgItemMessage(m_hwnd, IDC_CBX_MODES, CB_RESETCONTENT, 0, 0);
                if (sup_CBR(codecId) && codecId != AV_CODEC_ID_MJPEG) {
                    cbxAdd(IDC_CBX_MODES, _(IDC_CBX_MODES, encModeNames[ENC_MODE::CBR]), ENC_MODE::CBR);
                }
                if (sup_VBR_QUAL(codecId)) {
                    cbxAdd(IDC_CBX_MODES, _(IDC_CBX_MODES, encModeNames[ENC_MODE::VBR_QUAL]), ENC_MODE::VBR_QUAL);
                }
                if (sup_VBR_QUANT(codecId)) {
                    cbxAdd(IDC_CBX_MODES, _(IDC_CBX_MODES, encModeNames[ENC_MODE::VBR_QUANT]), ENC_MODE::VBR_QUANT);
                }
                static const int idModes[] = {IDC_LBL_MODES, IDC_CBX_MODES, 0};
                enable(cbxGetItemCount(IDC_CBX_MODES) != 0, idModes);
                qmin = TcoSettings::getMinMaxQuant(codecId).first;
                qmax = TcoSettings::getMinMaxQuant(codecId).second;
                quick2dlg(true);
            }
            return;
        }
}
Exemple #9
0
void TffdshowPageEnc::onActivate(void)
{
    hcbxE = GetDlgItem(m_hwnd, IDC_CBX_ENCODER);
    cbxSetDroppedWidth(IDC_CBX_ENCODER, 280);

    TVINSERTSTRUCT tvis;
    tvis.hParent = NULL;
    tvis.hInsertAfter = TVI_LAST;
    tvis.item.mask = TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
    static const int idPresets[] = {IDC_BT_PRESET, IDC_CHB_NOT_REGISTRY, 0};
    if (isAbout) {
        addTI(&tvis, new TaboutPageEnc(this));
        enable(false, idPresets);
    } else if (isGraph) {
        addTI(&tvis, new TgraphPage(this));
        enable(false, idPresets);
    } else {
        addTI(&tvis, TconfPages(new TgenericPage(this),
                                new TgenericHuffyuvPage(this),
                                new TgenericRAWpage(this),
                                new TgenericFFV1page(this),
                                new TgenericDVpage(this),
                                NULL), &localCfg.codecId);
        HTREEITEM htiQuant = addTI(&tvis, new TquantPage(this))->hti;
        tvis.hParent = htiQuant;
        tvis.hParent = NULL;
        addTI(&tvis, new TinPage(this));
        addTI(&tvis, new ToutPage(this));
        addTI(&tvis, new TgraphPage(this));
        addTI(&tvis, new TdlgMiscPage(this));
        addTI(&tvis, new TaboutPageEnc(this));
    }
    /*
     for (TconfPages::const_iterator p=pages.begin();p!=pages.end();p++)
      addPropsIDs((*p)->propsIDs);
    */
    static const int propsIDs[] = {IDFF_enc_mode, IDFF_enc_bitrate1000, IDFF_enc_qual, IDFF_enc_desiredSize, IDFF_enc_codecId, IDFF_enc_fourcc, 0};
    addPropsIDs(propsIDs);
    allPropsIDs.push_back(0);

    const TvideoCodecs *enclibs;
    deciE->getVideoCodecs(&enclibs);
    for (TvideoCodecs::const_iterator el = enclibs->begin(); el != enclibs->end(); el++)
        for (Tencoders::const_iterator enc = (*el)->encoders.begin(); enc != (*el)->encoders.end(); enc++) {
            cbxAdd(IDC_CBX_ENCODER, (*el)->getName(), intptr_t(*enc));
        }

    oldmode = -1;
    valIdff = 0;
    if (!isAbout) {
        codec2dlg();
    }
    quick2dlg(true);

    setCheck(IDC_CHB_NOT_REGISTRY, cfgGet(IDFF_notreg));
}
void TsubtitlesTextPage::init()
{
    tbrSetRange(IDC_TBR_SUB_LINESPACING,0,200,10);
    strings dicts=TtextFixBase::getDicts(config);
    for (strings::const_iterator d=dicts.begin(); d!=dicts.end(); d++) {
        cbxAdd(IDC_CBX_SUBFIX_ORTOGRAPHY,d->c_str());
    }
    cbxSetDroppedWidth(IDC_CBX_SUBFIX_IL,250);
    cbxSetDroppedWidth(IDC_CBX_SUB_WORDWRAP,250);
}
Exemple #11
0
void TffdshowPageDec::fillPresetsCbx(void)
{
    int sel = cbxGetCurSel(IDC_CBX_PRESETS);
    cbxClear(IDC_CBX_PRESETS);
    for (Tpresets::iterator i = localPresets->begin(); i != localPresets->end(); i++) {
        cbxAdd(IDC_CBX_PRESETS, (*i)->presetName);
    }
    char_t presetName[MAX_PATH];
    deciD->getActivePresetName(presetName, MAX_PATH);
    cbxSetCurSel(IDC_CBX_PRESETS, cbxFindItem(IDC_CBX_PRESETS, presetName, true));
}
void TquantTablesPageBase::translate(void)
{
    Twindow::translate();

    int sel=cbxGetCurSel(IDC_CBX_QUANT_TABLE);
    cbxClear(IDC_CBX_QUANT_TABLE);
    for (int i=0; matrices[i]; i++) {
        cbxAdd(IDC_CBX_QUANT_TABLE,_(IDC_CBX_QUANT_TABLE,matrices[i]));
    }
    cbxSetCurSel(IDC_CBX_QUANT_TABLE,sel==CB_ERR?0:sel);
}
Exemple #13
0
void TdlgMiscPage::init(void)
{
    for (Ttranslate::Tlanglist::const_iterator i = tr->langlist.begin(); i != tr->langlist.end(); i++) {
        char_t desc[256];
        tr->langlist.getLangName(i, desc, 256);
        cbxAdd(IDC_CBX_LANG, desc, Ttranslate::lang2int(i->first.c_str()));
    }
    edLimitText(IDC_ED_PATH_FFDSHOW, MAX_PATH);
    edLimitText(IDC_ED_PATH_DSCALER, MAX_PATH);
    static const int idDscaler[] = {IDC_LBL_PATH_DSCALER, IDC_ED_PATH_DSCALER, IDC_BT_PATH_DSCALER, 0};
    enable((filterMode & IDFF_FILTERMODE_AUDIO) == 0, idDscaler);
    addHint(IDC_CBX_SUBFILES_MODE, _l("All subtitles: all subtitles files found\nVideo file match: list of subtitle files built from the following mask : <video filename>.ext or <video filename>.<suffix>.ext\nPartial match: list built with heuristic comparison on video file name\nVideo file match then partial: use heuristic if no exact match found on video file"));
}
void TdeinterlacePageYadif::init(void)
{
    translate();

    int sel=cbxGetCurSel(IDC_CBX_YADIF_PARITY);
    cbxClear(IDC_CBX_YADIF_PARITY);
    for (int i = 0 ; TdeinterlaceSettings::yadifParitySEs[i].name ; i++)
        cbxAdd(IDC_CBX_YADIF_PARITY,
               _(IDC_CBX_YADIF_PARITY,
                 TdeinterlaceSettings::yadifParitySEs[i].name),
               TdeinterlaceSettings::yadifParitySEs[i].id);
    cbxSetCurSel(IDC_CBX_YADIF_PARITY,sel);
}
Exemple #15
0
void TdeinterlacePage::fillDeinterlacers(void)
{
    int ii = cbxGetCurSel(IDC_CBX_DEINT_METHOD);
    cbxClear(IDC_CBX_DEINT_METHOD);

    int i;
    for (i = 0; TdeinterlaceSettings::methodProps[i].name; i++)
        if (!(TdeinterlaceSettings::methodProps[i].id == TdeinterlaceSettings::FRAMERATEDOUBLER && !(Tconfig::cpu_flags & FF_CPU_MMXEXT)) && TdeinterlaceSettings::methodProps[i].id != TdeinterlaceSettings::DSCALER) {
            cbxAdd(IDC_CBX_DEINT_METHOD, _(IDC_CBX_DEINT_METHOD, TdeinterlaceSettings::methodProps[i].name), TdeinterlaceSettings::methodProps[i].cfgId);
        }

    const char_t *dscalerDir = cfgGetStr(IDFF_dscalerPath);
    if (!dscalerDir || !dscalerDir[0]) {
        dscalerstart = 0;
        return;
    }
    char_t dsmask[MAX_PATH];
    _makepath_s(dsmask, MAX_PATH, NULL, dscalerDir, _l("DI_*"), _l("dll"));
    strings dis;
    findFiles(dsmask, dis, true);
    dscalerstart = i - 1;
    diflnms.clear();
    for (strings::const_iterator di = dis.begin(); di != dis.end(); di++) {
        char_t flnm[MAX_PATH];
        extractfilename(di->c_str(), flnm);
        if (stricmp(flnm, _l("DI_Adaptive.dll")) != 0) {
            char_t diname[256];
            Tdscaler_DI didll(di->c_str(), deci, true);
            if (didll.fm) {
                tsnprintf_s(diname, countof(diname), _TRUNCATE, _l("DScaler: %s"), (const char_t*)text<char_t>(didll.fm->szName));
                cbxAdd(IDC_CBX_DEINT_METHOD, diname, 9);
                diflnms.push_back(*di);
            }
        }
    }
    cbxSetCurSel(IDC_CBX_DEINT_METHOD, ii);
}
Exemple #16
0
void TcodecsPage::beginCodecChange(int iItem)
{
    if (iItem<0 || iItem>=(int)formats.size()) {
        show(false,IDC_CBX_INCODECS);
        curitem=-1;
    } else {
        cbxClear(IDC_CBX_INCODECS);
        for (Tformat::Tdecoders::const_iterator d=formats[iItem].decoders.begin(); d!=formats[iItem].decoders.end(); d++) {
            cbxAdd(IDC_CBX_INCODECS,_(IDC_CBX_INCODECS,d->name),d->id);
        }
        cbxSetDataCurSel(IDC_CBX_INCODECS,cfgGet(formats[iItem].idff));
        moveCBX(false);
        curitem=iItem;
    }
}