Check-in [a011fefe76]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix for tclwmf and newer mingw64 cross compilers
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: a011fefe760ab724c722648aa5992b3f6a52fc22
User & Date: chw 2016-08-18 13:02:32
Context
2016-08-18
18:26
add Eric Boudaillier's tkpath redraw optimizations, thank you check-in: d9b530baf1 user: chw tags: trunk
13:02
fix for tclwmf and newer mingw64 cross compilers check-in: a011fefe76 user: chw tags: trunk
2016-08-17
11:44
fix for ticket [7a4e415a7b] check-in: 6ef4ed7176 user: chw tags: trunk
Changes

Changes to undroid/tclwmf/tclwmf.c.

52
53
54
55
56
57
58


59
60
61
62
63
64
65
66
67
68
69
....
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
....
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
....
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
....
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
	    0xbb, 0xce, 0xac, 0xdb, 0x34, 0xa8, 0xec, 0x1);
DEFINE_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK,
	    0x58f0aad8, 0x22bf, 0x4f8a,
	    0xbb, 0x3d, 0xd2, 0xc4, 0x97, 0x8c, 0x6e, 0x2f);

#endif



DEFINE_GUID(IID_IAMVideoProcAmp,
	    0xc6e13360, 0x30ac, 0x11d0,
	    0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);
DEFINE_GUID(IID_IAMCameraControl,
	    0xc6e13370, 0x30ac, 0x11d0,
	    0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);

#ifndef TCL_THREADS
#error "build requires TCL_THREADS"
#endif

................................................................................
	return;
    }

    Tcl_InitHashTable(&wmfc->ctrl, TCL_STRING_KEYS);

    /* fill in new information */
    hr = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMVideoProcAmp, (void **) &procAmp);
    if (SUCCEEDED(hr)) {
	for (i = 0; i < sizeof (painfo) / sizeof (painfo[0]); i++) {
	    long llim, ulim, step, def, caps;

	    hr = procAmp->lpVtbl->GetRange(procAmp, painfo[i].code,
					   &llim, &ulim, &step, &def, &caps);
	    if (!SUCCEEDED(hr)) {
................................................................................
	    Tcl_SetHashValue(hPtr, (ClientData) wctrl);
	}
    }
    if (procAmp != NULL) {
	procAmp->lpVtbl->Release(procAmp);
    }
    hr = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMCameraControl, (void **) &camCtrl);
    if (SUCCEEDED(hr)) {
	for (i = 0; i < sizeof (ccinfo) / sizeof (ccinfo[0]); i++) {
	    long llim, ulim, step, def, caps;

	    hr = camCtrl->lpVtbl->GetRange(camCtrl, ccinfo[i].code,
					   &llim, &ulim, &step, &def, &caps);
	    if (!SUCCEEDED(hr)) {
................................................................................
    Tcl_DString ds;
    IAMVideoProcAmp *procAmp = NULL;
    IAMCameraControl *camCtrl = NULL;
    HRESULT hrpa, hrcc;

    Tcl_DStringInit(&ds);
    hrpa = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMVideoProcAmp, (void **) &procAmp);
    hrcc = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMCameraControl, (void **) &camCtrl);
    if (SUCCEEDED(hrpa) || SUCCEEDED(hrcc)) {
	hPtr = Tcl_FirstHashEntry(&wmfc->ctrl, &search);
	while (hPtr != NULL) {
	    WCTRL *wctrl = (WCTRL *) Tcl_GetHashValue(hPtr);
	    HRESULT hr = E_INVALIDARG;
	    long val = 0, flags = 0;
	    char buffer[32];
................................................................................
    Tcl_HashEntry *hPtr;
    int i;
    IAMVideoProcAmp *procAmp = NULL;
    IAMCameraControl *camCtrl = NULL;
    HRESULT hrpa, hrcc;

    hrpa = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMVideoProcAmp, (void **) &procAmp);
    hrcc = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&IID_IAMCameraControl, (void **) &camCtrl);
    for (i = 0; i < objc; i += 2) {
	WCTRL *wctrl;
	long val;
	int doauto = 0;
	char *name = Tcl_GetString(objv[i]);

	hPtr = Tcl_FindHashEntry(&wmfc->ctrl, name);







>
>
|


|







 







|







 







|







 







|

|







 







|

|







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
....
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
....
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
....
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
....
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
	    0xbb, 0xce, 0xac, 0xdb, 0x34, 0xa8, 0xec, 0x1);
DEFINE_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK,
	    0x58f0aad8, 0x22bf, 0x4f8a,
	    0xbb, 0x3d, 0xd2, 0xc4, 0x97, 0x8c, 0x6e, 0x2f);

#endif

/* These are private defs since some versions of mingw defines it, some not */

DEFINE_GUID(PRIVATE_IID_IAMVideoProcAmp,
	    0xc6e13360, 0x30ac, 0x11d0,
	    0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);
DEFINE_GUID(PRIVATE_IID_IAMCameraControl,
	    0xc6e13370, 0x30ac, 0x11d0,
	    0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56);

#ifndef TCL_THREADS
#error "build requires TCL_THREADS"
#endif

................................................................................
	return;
    }

    Tcl_InitHashTable(&wmfc->ctrl, TCL_STRING_KEYS);

    /* fill in new information */
    hr = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMVideoProcAmp, (void **) &procAmp);
    if (SUCCEEDED(hr)) {
	for (i = 0; i < sizeof (painfo) / sizeof (painfo[0]); i++) {
	    long llim, ulim, step, def, caps;

	    hr = procAmp->lpVtbl->GetRange(procAmp, painfo[i].code,
					   &llim, &ulim, &step, &def, &caps);
	    if (!SUCCEEDED(hr)) {
................................................................................
	    Tcl_SetHashValue(hPtr, (ClientData) wctrl);
	}
    }
    if (procAmp != NULL) {
	procAmp->lpVtbl->Release(procAmp);
    }
    hr = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMCameraControl, (void **) &camCtrl);
    if (SUCCEEDED(hr)) {
	for (i = 0; i < sizeof (ccinfo) / sizeof (ccinfo[0]); i++) {
	    long llim, ulim, step, def, caps;

	    hr = camCtrl->lpVtbl->GetRange(camCtrl, ccinfo[i].code,
					   &llim, &ulim, &step, &def, &caps);
	    if (!SUCCEEDED(hr)) {
................................................................................
    Tcl_DString ds;
    IAMVideoProcAmp *procAmp = NULL;
    IAMCameraControl *camCtrl = NULL;
    HRESULT hrpa, hrcc;

    Tcl_DStringInit(&ds);
    hrpa = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMVideoProcAmp, (void **) &procAmp);
    hrcc = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMCameraControl, (void **) &camCtrl);
    if (SUCCEEDED(hrpa) || SUCCEEDED(hrcc)) {
	hPtr = Tcl_FirstHashEntry(&wmfc->ctrl, &search);
	while (hPtr != NULL) {
	    WCTRL *wctrl = (WCTRL *) Tcl_GetHashValue(hPtr);
	    HRESULT hr = E_INVALIDARG;
	    long val = 0, flags = 0;
	    char buffer[32];
................................................................................
    Tcl_HashEntry *hPtr;
    int i;
    IAMVideoProcAmp *procAmp = NULL;
    IAMCameraControl *camCtrl = NULL;
    HRESULT hrpa, hrcc;

    hrpa = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMVideoProcAmp, (void **) &procAmp);
    hrcc = wmfc->mediaSrc->lpVtbl->QueryInterface(wmfc->mediaSrc,
		&PRIVATE_IID_IAMCameraControl, (void **) &camCtrl);
    for (i = 0; i < objc; i += 2) {
	WCTRL *wctrl;
	long val;
	int doauto = 0;
	char *name = Tcl_GetString(objv[i]);

	hPtr = Tcl_FindHashEntry(&wmfc->ctrl, name);