예제 #1
0
void TvolumePage::volTbr2cfg(int idc, int idff, int mult)
{
    int x = tbrGet(idc);
    if (isdb) {
        x = mult * ff_round(db2value((double)x * mult) * 100);
    }
    cfgSet(idff, mult * x);
}
예제 #2
0
파일: Coffset.cpp 프로젝트: TheRyuu/ffdshow
INT_PTR ToffsetPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_HSCROLL:
            switch (getId(HWND(lParam))) {
                case IDC_TBR_OFFSETUV_X:
                case IDC_TBR_OFFSETUV_Y:
                    cfgSet(IDFF_offsetU_X, tbrGet(IDC_TBR_OFFSETUV_X));
                    cfgSet(IDFF_offsetU_Y, tbrGet(IDC_TBR_OFFSETUV_Y));
                    cfgSet(IDFF_offsetV_X, tbrGet(IDC_TBR_OFFSETUV_X));
                    cfgSet(IDFF_offsetV_Y, tbrGet(IDC_TBR_OFFSETUV_Y));
                    offset2dlg();
                    return TRUE;
            }
            break;
    }
    return TconfPageDecVideo::msgProc(uMsg, wParam, lParam);
}
예제 #3
0
bool Twindow::onTrack(TbindTrackbars bindsTrack,LPARAM lParam)
{
    if (bindsTrack) {
        int id=getId(HWND(lParam));
        for (int i=0; bindsTrack[i].idc; i++)
            if (bindsTrack[i].idc==id) {
                if (bindsTrack[i].idff<0) {
                    cfgSet(-bindsTrack[i].idff,-tbrGet(bindsTrack[i].idc));
                } else {
                    cfgSet(bindsTrack[i].idff,tbrGet(bindsTrack[i].idc));
                }
                if (bindsTrack[i].onClick) {
                    (this->*bindsTrack[i].onClick)();
                }
                return true;
            }
    }
    return false;
}
예제 #4
0
INT_PTR TresizeSettingsPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_HSCROLL:
            switch (getId(HWND(lParam))) {
                case IDC_TBR_RESIZE_PARAM_LUMA:
                    return setParams(tbrGet(IDC_TBR_RESIZE_PARAM_LUMA), idsLuma);
                case IDC_TBR_RESIZE_PARAM_CHROMA:
                    return setParams(tbrGet(IDC_TBR_RESIZE_PARAM_CHROMA), idsChroma);
            }
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam)) {
                case IDC_CHB_RESIZE_INTERLACED:
                    cfgSet(IDFF_resizeInterlaced, getCheck3(IDC_CHB_RESIZE_INTERLACED));
                    return TRUE;
            }
            break;
    }
    return TconfPageDecVideo::msgProc(uMsg, wParam, lParam);
}
예제 #5
0
INT_PTR TresizeBordersPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_HSCROLL:
            switch (getId(HWND(lParam))) {
                case IDC_TBR_BORDER_HORIZ_PERCENT:
                case IDC_TBR_BORDER_VERT_PERCENT:
                    cfgSet(IDFF_bordersPercentX, tbrGet(IDC_TBR_BORDER_HORIZ_PERCENT));
                    cfgSet(IDFF_bordersPercentY, tbrGet(cfgGet(IDFF_bordersLocked) ? IDC_TBR_BORDER_HORIZ_PERCENT : IDC_TBR_BORDER_VERT_PERCENT));
                    cfg2dlg();
                    return TRUE;
                case IDC_TBR_BORDER_HORIZ_PIXELS:
                case IDC_TBR_BORDER_VERT_PIXELS:
                    cfgSet(IDFF_bordersPixelsX, tbrGet(IDC_TBR_BORDER_HORIZ_PIXELS));
                    cfgSet(IDFF_bordersPixelsY, tbrGet(cfgGet(IDFF_bordersLocked) ? IDC_TBR_BORDER_HORIZ_PIXELS : IDC_TBR_BORDER_VERT_PIXELS));
                    cfg2dlg();
                    return TRUE;
            }
            break;
    }
    return TconfPageDecVideo::msgProc(uMsg, wParam, lParam);
}
예제 #6
0
INT_PTR TffdshowPageEnc::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_HSCROLL:
            if (HWND(lParam) == GetDlgItem(m_hwnd, IDC_TBR_QUICK)) {
                if (valIdff) {
                    cfgSet(valIdff, tbrGet(IDC_TBR_QUICK));
                    quick2dlg(false);
                }
                return TRUE;
            }
            break;
        case WM_FFONCHANGE:
            if (wParam == IDFF_lang && ve) {
                ve->commonOptionChanged(IID_IffdshowEnc, IDFF_lang);
            }
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam)) {
                case IDC_CBX_ENCODER:
                    if (HIWORD(wParam) == CBN_SELCHANGE) {
                        cfgSet(IDFF_enc_codecId, ((Tencoder*)cbxGetCurItemData(IDC_CBX_ENCODER))->id);
                        codec2dlg();
                        HTREEITEM hti = TreeView_GetSelection(htv);
                        if (hti) {
                            selectPage(hti2page(hti));
                        }
                        return TRUE;
                    }
                    break;
                case IDC_CBX_FOURCC:
                    if (HIWORD(wParam) == CBN_SELCHANGE) {
                        cfgSet(IDFF_enc_fourcc, (int)cbxGetCurItemData(IDC_CBX_FOURCC));
                        fourcc2dlg();
                        return TRUE;
                    }
                    break;
                case IDC_CBX_MODES:
                    if (HIWORD(wParam) == CBN_SELCHANGE) {
                        cfgSet(IDFF_enc_mode, (int)cbxGetCurItemData(IDC_CBX_MODES));
                        quick2dlg(true);
                        return TRUE;
                    }
                    break;
                case IDC_ED_QUICK:
                    if (HIWORD(wParam) == EN_CHANGE && !isSetWindowText) {
                        HWND hed = GetDlgItem(m_hwnd, LOWORD(wParam));
                        if (hed != GetFocus()) {
                            return FALSE;
                        }
                        repaint(hed);
                        switch (LOWORD(wParam)) {
                            case IDC_ED_QUICK:
                                eval(hed, valMin, valMax, valIdff);
                                tbrSet(IDC_TBR_QUICK, cfgGet(valIdff));
                                break;
                        }
                        return TRUE;
                    }
                    break;
                case IDC_BT_PRESET:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        showPresets();
                        return TRUE;
                    }
                    break;
                case IDC_CHB_NOT_REGISTRY:
                    cfgSet(IDFF_notreg, getCheck(IDC_CHB_NOT_REGISTRY));
                    return TRUE;
            }
            break;
        case WM_CTLCOLOREDIT: {
            HWND hwnd = HWND(lParam);
            bool ok;
            switch (getId(hwnd)) {
                case IDC_ED_QUICK:
                    ok = eval(hwnd, valMin, valMax);
                    break;
                default:
                    return FALSE;
            }
            if (!ok) {
                HDC dc = HDC(wParam);
                SetBkColor(dc, RGB(255, 0, 0));
                return INT_PTR(getRed());
            } else {
                return FALSE;
            }
        }
        case WM_DRAWITEM:
            if (wParam == IDC_CBX_ENCODER) {
                DRAWITEMSTRUCT *dis = (DRAWITEMSTRUCT*)lParam;
                COLORREF crOldTextColor = GetTextColor(dis->hDC);
                COLORREF crOldBkColor = GetBkColor(dis->hDC);
                HBRUSH br;
                if ((dis->itemAction | ODA_SELECT) && (dis->itemState & ODS_SELECTED)) {
                    SetTextColor(dis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
                    SetBkColor(dis->hDC, GetSysColor(COLOR_HIGHLIGHT));
                    br = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));
                } else {
                    br = CreateSolidBrush(crOldBkColor);
                }
                FillRect(dis->hDC, &dis->rcItem, br);
                if (int(dis->itemData) != CB_ERR) {
                    RECT r = dis->rcItem;
                    r.left += 2;
                    Tencoder *enc = (Tencoder*)dis->itemData;
                    DrawText(dis->hDC, enc->name, (int)strlen(enc->name), &r, DT_LEFT | DT_SINGLELINE | DT_VCENTER);
                    setDlgResult(TRUE);
                    r.left += 180;
                    FillRect(dis->hDC, &r, br);
                    MoveToEx(dis->hDC, r.left, r.top, NULL);
                    LineTo(dis->hDC, r.left, r.bottom);
                    SetTextColor(dis->hDC, GetSysColor(COLOR_GRAYTEXT));
                    r.left += 4;
                    char_t text[70];
                    SendMessage(hcbxE, CB_GETLBTEXT, dis->itemID, LPARAM(text));
                    DrawText(dis->hDC, text, (int)strlen(text), &r, DT_LEFT | DT_SINGLELINE | DT_VCENTER);
                }
                SetTextColor(dis->hDC, crOldTextColor);
                SetBkColor(dis->hDC, crOldBkColor);
                DeleteObject(br);
                return TRUE;
            }
            break;
    }
    return TffdshowPageBase::msgProc(uMsg, wParam, lParam);
}
예제 #7
0
INT_PTR TresizeAspectPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_HSCROLL:
            switch (GetWindowLong(HWND(lParam), GWL_ID)) {
                case IDC_TBR_ASPECT_USER: {
                    int a = tbrGet(IDC_TBR_ASPECT_USER);
                    cfgSet(IDFF_aspectRatio, a * 256);
                    userAspect2dlg();
                    return TRUE;
                }
                case IDC_TBR_HWOVERLAY_ASPECT: {
                    int a = tbrGet(IDC_TBR_HWOVERLAY_ASPECT);
                    cfgSet(IDFF_hwOverlayAspect, a * 256);
                    aspect2dlg();
                    return TRUE;
                }
            }
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam)) {
                case IDC_ED_RESIZEDX:
                case IDC_ED_RESIZEDY:
                    if (HIWORD(wParam) == EN_CHANGE && !isSetWindowText) {
                        HWND hed = GetDlgItem(m_hwnd, LOWORD(wParam));
                        if (hed != GetFocus()) {
                            return FALSE;
                        }
                        repaint(hed);
                        applyResizeXY();
                        return TRUE;
                    }
                    break;
                case IDC_BT_RESIZE_XCOND:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        cfgSet(IDFF_resizeIfXcond, -1 * cfgGet(IDFF_resizeIfXcond));
                        resizeIf2dlg();
                        return TRUE;
                    }
                    break;
                case IDC_BT_RESIZE_YCOND:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        cfgSet(IDFF_resizeIfYcond, -1 * cfgGet(IDFF_resizeIfYcond));
                        resizeIf2dlg();
                        return TRUE;
                    }
                    break;
                case IDC_BT_RESIZE_XYCOND:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        cfgSet(IDFF_resizeIfXYcond, 1 - cfgGet(IDFF_resizeIfXYcond));
                        resizeIf2dlg();
                        return TRUE;
                    }
                    break;
                case IDC_BT_RESIZE_PIXCOND:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        cfgSet(IDFF_resizeIfPixCond, -1 * cfgGet(IDFF_resizeIfPixCond));
                        resizeIf2dlg();
                        return TRUE;
                    }
                    break;
            }
            break;
        case WM_CTLCOLOREDIT: {
            HWND hwnd = HWND(lParam);
            bool ok;
            switch (getId(hwnd)) {
                case IDC_ED_RESIZEDX:
                    ok = sizeXok(hwnd);
                    break;
                case IDC_ED_RESIZEDY:
                    ok = sizeYok(hwnd);
                    break;
                default:
                    goto colorEnd;
            }
            if (!ok) {
                HDC dc = HDC(wParam);
                SetBkColor(dc, RGB(255, 0, 0));
                return INT_PTR(getRed());
            } else {
                return FALSE;
            }
colorEnd:
            ;
            break;
        }
        case WM_DRAWITEM:
            switch (wParam) {
                case IDC_BT_RESIZE_PIXCOND:
                case IDC_BT_RESIZE_XCOND:
                case IDC_BT_RESIZE_YCOND:
                case IDC_BT_RESIZE_XYCOND: {
                    DRAWITEMSTRUCT *dis = (LPDRAWITEMSTRUCT)lParam;
                    ((TflatButton*)Twidget::getDlgItem(dis->hwndItem))->paint(dis);
                    return TRUE;
                }
            }
            break;
    }
    return TconfPageDecVideo::msgProc(uMsg, wParam, lParam);
}