66
76
for (i = 0; i < nparams; i++) {
67
77
switch(params[i].type) {
68
78
case GIMP_PDB_INT32:
69
fprintf(stderr, "%i. int %i\n", i,
70
params[i].data.d_int32);
79
g_printerr("%i. int %i\n", i,
80
params[i].data.d_int32);
72
82
case GIMP_PDB_INT16:
73
fprintf(stderr, "%i. int %i\n", i,
74
params[i].data.d_int16);
83
g_printerr("%i. int %i\n", i,
84
params[i].data.d_int16);
76
86
case GIMP_PDB_INT8:
77
fprintf(stderr, "%i. int %i\n", i,
78
params[i].data.d_int8);
87
g_printerr("%i. int %u\n", i,
88
params[i].data.d_int8);
80
90
case GIMP_PDB_FLOAT:
81
fprintf(stderr, "%i. float %f\n", i,
82
params[i].data.d_float);
91
g_printerr("%i. float %f\n", i,
92
params[i].data.d_float);
84
94
case GIMP_PDB_STRING:
85
fprintf(stderr, "%i. string %s\n", i,
86
params[i].data.d_string);
95
g_printerr("%i. string %s\n", i,
96
params[i].data.d_string);
88
98
case GIMP_PDB_INT32ARRAY:
89
99
case GIMP_PDB_INT16ARRAY:
90
100
case GIMP_PDB_INT8ARRAY:
91
101
case GIMP_PDB_FLOATARRAY:
92
102
case GIMP_PDB_STRINGARRAY:
93
fprintf(stderr, "%i. array of type %i %s\n", i,
94
params[i].type, params[i].data.d_int32array
95
== NULL ? "(null)":"");
103
g_printerr("%i. array of type %i %s\n", i,
105
params[i].data.d_int32array == NULL ? "(null)":"");
97
107
case GIMP_PDB_STATUS:
98
fprintf(stderr, "%i. status %i\n", i,
99
params[i].data.d_status);
108
g_printerr("%i. status %i\n", i,
109
params[i].data.d_status);
102
fprintf(stderr, "%i. other %i\n", i,
103
params[i].data.d_int32);
112
g_printerr("%i. other %i\n", i,
113
params[i].data.d_int32);
349
355
switch (ptype[i-1].type) {
350
356
case GIMP_PDB_INT32:
351
357
check((x = PyNumber_Int(item)) == NULL);
352
ret[i].data.d_int32 = PyInt_AsLong(x);
358
ret[i].data.d_int32 = (gint32)PyInt_AsLong(x);
355
361
case GIMP_PDB_INT16:
356
362
check((x = PyNumber_Int(item)) == NULL);
357
ret[i].data.d_int16 = PyInt_AsLong(x);
363
ret[i].data.d_int16 = (gint16)PyInt_AsLong(x);
360
366
case GIMP_PDB_INT8:
361
367
check((x = PyNumber_Int(item)) == NULL);
362
ret[i].data.d_int8 = PyInt_AsLong(x);
368
ret[i].data.d_int8 = (guint8)PyInt_AsLong(x);
365
371
case GIMP_PDB_FLOAT:
446
452
ret[i].data.d_stringarray = sa;
448
454
case GIMP_PDB_COLOR:
449
check(!PySequence_Check(item) || PySequence_Length(item) < 3);
450
r = PySequence_GetItem(item, 0);
451
g = PySequence_GetItem(item, 1);
452
b = PySequence_GetItem(item, 2);
453
check(!PyInt_Check(r) || !PyInt_Check(g) ||
455
gimp_rgb_set_uchar(&ret[i].data.d_color, PyInt_AsLong(r),
456
PyInt_AsLong(g), PyInt_AsLong(b));
456
GimpRGB *rgb, tmprgb;
458
if (!pygimp_rgb_check(item)) {
459
check(!PySequence_Check(item) ||
460
PySequence_Length(item) < 3);
461
r = PySequence_GetItem(item, 0);
462
g = PySequence_GetItem(item, 1);
463
b = PySequence_GetItem(item, 2);
464
check(!PyInt_Check(r) || !PyInt_Check(g) ||
466
gimp_rgba_set_uchar(&tmprgb, PyInt_AsLong(r),
467
PyInt_AsLong(g), PyInt_AsLong(b), 255);
470
rgb = pyg_boxed_get(item, GimpRGB);
472
ret[i].data.d_color = *rgb;
458
475
case GIMP_PDB_REGION:
459
476
check(!PySequence_Check(item) ||
505
522
check(!pygimp_drawable_check(item));
506
ret[i].data.d_channel=((PyGimpDrawable *)item)->ID;
523
ret[i].data.d_channel = ((PyGimpDrawable *)item)->ID;
508
525
case GIMP_PDB_SELECTION:
509
526
check(!pygimp_layer_check(item));
510
ret[i].data.d_selection=((PyGimpLayer *)item)->ID;
527
ret[i].data.d_selection = ((PyGimpLayer *)item)->ID;
512
529
case GIMP_PDB_BOUNDARY:
513
530
check(!PyInt_Check(item));
514
531
ret[i].data.d_boundary = PyInt_AsLong(item);
517
check(!PyInt_Check(item));
518
ret[i].data.d_path = PyInt_AsLong(item);
533
case GIMP_PDB_VECTORS:
534
check(!pygimp_vectors_check(item));
535
ret[i].data.d_vectors = ((PyGimpVectors *)item)->ID;
520
537
case GIMP_PDB_PARASITE:
521
538
/* can't do anything, since size of GimpParasite is not known */
548
566
if (!PyArg_ParseTuple(args, "|zzzzzzz:gimp.pdb.query", &n, &b, &h, &a,
551
570
gimp_procedural_db_query(n, b, h, a, c, d, t, &num, &names);
552
572
ret = PyList_New(num);
553
574
for (i = 0; i < num; i++)
554
575
PyList_SetItem(ret, i, PyString_FromString(names[i]));
746
780
PyObject *t = NULL, *r;
749
fprintf(stderr, "--- %s --- ", PyString_AsString(self->proc_name));
783
g_printerr("--- %s --- ", PyString_AsString(self->proc_name));
751
if (self->nparams > 0 && !strcmp(self->params[0].name, "run_mode")) {
752
params = pygimp_param_from_tuple(args, self->params+1, self->nparams-1);
786
if (self->nparams > 0 && !strcmp(self->params[0].name, "run-mode")) {
787
params = pygimp_param_from_tuple(args, self->params + 1,
753
790
if (params == NULL)
755
793
params[0].type = self->params[0].type;
756
794
params[0].data.d_int32 = GIMP_RUN_NONINTERACTIVE;
758
797
pygimp_param_print(self->nparams, params);
760
800
ret = gimp_run_procedure2(self->name, &nret, self->nparams,
763
803
params = pygimp_param_from_tuple(args, self->params, self->nparams);
764
805
if (params == NULL)
767
809
pygimp_param_print(self->nparams, params+1);
769
ret = gimp_run_procedure2(self->name, &nret, self->nparams,
812
ret = gimp_run_procedure2(self->name, &nret, self->nparams, params + 1);
772
815
gimp_destroy_params(params, self->nparams);
774
818
PyErr_SetString(pygimp_error, "no status returned");
775
819
#if PG_DEBUG >= 1
776
fprintf(stderr, "ret == NULL\n");
820
g_printerr("ret == NULL\n");
780
825
switch(ret[0].data.d_status) {
781
826
case GIMP_PDB_EXECUTION_ERROR:
783
fprintf(stderr, "execution error\n");
828
g_printerr("execution error\n");
785
830
gimp_destroy_params(ret, nret);
786
831
PyErr_SetString(PyExc_RuntimeError, "execution error");
789
835
case GIMP_PDB_CALLING_ERROR:
791
fprintf(stderr, "calling error\n");
837
g_printerr("calling error\n");
793
839
gimp_destroy_params(ret, nret);
794
840
PyErr_SetString(PyExc_TypeError, "invalid arguments");
797
844
case GIMP_PDB_SUCCESS:
799
fprintf(stderr, "success\n");
846
g_printerr("success\n");
801
848
t = pygimp_param_to_tuple(nret-1, ret+1);
802
849
gimp_destroy_params(ret, nret);
804
PyErr_SetString(pygimp_error,
805
"couldn't make return value");
852
PyErr_SetString(pygimp_error, "could not make return value");
811
fprintf(stderr, "unknown - %i (type %i)\n",
812
ret[0].data.d_status, ret[0].type);
859
g_printerr("unknown - %i (type %i)\n",
860
ret[0].data.d_status, ret[0].type);
814
862
PyErr_SetString(pygimp_error, "unknown return code");
818
867
if (PyTuple_Size(t) == 1) {
819
868
r = PyTuple_GetItem(t, 0);
824
874
if (PyTuple_Size(t) == 0) {