aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/py
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/py')
-rw-r--r--externals/grill/py/pd/buffer-1.pd10
-rw-r--r--externals/grill/py/pd/buffer-2.pd37
-rw-r--r--externals/grill/py/readme.txt1
-rw-r--r--externals/grill/py/source/pybuffer.cpp21
4 files changed, 64 insertions, 5 deletions
diff --git a/externals/grill/py/pd/buffer-1.pd b/externals/grill/py/pd/buffer-1.pd
index ca799385..0314d3fe 100644
--- a/externals/grill/py/pd/buffer-1.pd
+++ b/externals/grill/py/pd/buffer-1.pd
@@ -1,4 +1,4 @@
-#N canvas 123 58 712 492 12;
+#N canvas 123 58 716 496 12;
#X obj 37 240 print;
#X obj 107 241 print A;
#X msg 30 139 reload;
@@ -42,16 +42,16 @@
#X coords 0 1 99 -1 200 140 1;
#X restore 65 301 graph;
#X obj 36 199 py buffer @detach 1;
-#X msg 192 127 mul array3 array1 array2;
-#X msg 192 149 add array3 array1 array2;
+#X msg 200 123 mul array3 array1 array2;
+#X msg 200 145 add array3 array1 array2;
#X obj 16 13 cnv 15 650 40 empty empty py/pyext 10 22 0 24 -260818
-1 0;
#X text 235 16 Python script objects \, (C)2003-2005 Thomas Grill;
#X text 235 32 http://grrrr.org/ext;
#X text 17 67 This demonstrates the usage of buffers. See the buffer.py
script.;
-#X msg 193 176 fadein array1;
-#X msg 191 200 neg array2;
+#X msg 201 172 fadein array1;
+#X msg 199 196 neg array2;
#X connect 2 0 6 0;
#X connect 6 0 0 0;
#X connect 6 1 1 0;
diff --git a/externals/grill/py/pd/buffer-2.pd b/externals/grill/py/pd/buffer-2.pd
new file mode 100644
index 00000000..fe066805
--- /dev/null
+++ b/externals/grill/py/pd/buffer-2.pd
@@ -0,0 +1,37 @@
+#N canvas 608 159 694 442 12;
+#X obj 16 13 cnv 15 650 40 empty empty py/pyext 10 22 0 24 -260818
+-1 0;
+#X text 235 16 Python script objects \, (C)2003-2005 Thomas Grill;
+#X text 235 32 http://grrrr.org/ext;
+#X text 17 67 This demonstrates how to resize buffers;
+#N canvas 0 0 450 300 graph1 0;
+#X array array1 42 float 3;
+#A 0 0 0 0 0 0.0285715 0.0857145 0.128572 0.171429 0.257144 0.314287
+0.385715 0.385715 0.385715 0.385715 0.385715 0.37143 0.342858 0.314287
+0.228572 0.128572 0.0428573 -0.0857145 -0.200001 -0.285715 -0.328572
+-0.357144 -0.400001 -0.428573 -0.428573 -0.457144 -0.457144 -0.457144
+-0.457144 -0.457144 -0.457144 -0.457144 -0.457144 -0.457144 -0.414287
+-0.342858 -0.314287 1.02445e-007;
+#X coords 0 1 42 -1 200 140 1;
+#X restore 413 259 graph;
+#X msg 40 148 symbol array1;
+#X obj 40 194 py pyext.Buffer @py 1;
+#X obj 143 238 nbx 5 14 0 100 0 1 empty empty empty 0 -6 0 10 -260818
+-1 -1 42 256;
+#X obj 143 260 t b f;
+#X obj 39 287 pym 2 resize @py 1;
+#X obj 40 120 loadbang;
+#X text 37 310 returns buffer object;
+#X obj 41 361 py .len;
+#X text 111 361 call __builtin__.len;
+#X text 222 192 create Buffer object;
+#X obj 41 394 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+10 -261681 -1 -1 0 256;
+#X connect 5 0 6 1;
+#X connect 6 0 9 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 8 1 9 2;
+#X connect 9 0 12 1;
+#X connect 10 0 5 0;
+#X connect 12 0 15 0;
diff --git a/externals/grill/py/readme.txt b/externals/grill/py/readme.txt
index 805b1d35..5ca1876e 100644
--- a/externals/grill/py/readme.txt
+++ b/externals/grill/py/readme.txt
@@ -113,6 +113,7 @@ Version history:
- FIX: more safety for calls where association python-pd has already been removed
- ADD: __str__ method for pyext, to enable print self calls
- ADD: enable symbol binding for all callables (not only functions and methods)
+- ADD: Buffer.resize(frames,keep=1,zero=1) method
0.2.0:
- ADD: handling of Python threads
diff --git a/externals/grill/py/source/pybuffer.cpp b/externals/grill/py/source/pybuffer.cpp
index 13d428c4..afc35e45 100644
--- a/externals/grill/py/source/pybuffer.cpp
+++ b/externals/grill/py/source/pybuffer.cpp
@@ -156,8 +156,29 @@ static PyObject *buffer_dirty(PyObject *obj)
return Py_None;
}
+static PyObject *buffer_resize(PyObject *obj,PyObject *args,PyObject *kwds)
+{
+ flext::buffer *b = ((pySamplebuffer *)obj)->buf;
+ if(b) {
+ int frames,keep = 1,zero = 1;
+ static char *kwlist[] = {"frames", "keep", "zero", NULL};
+ if(!PyArg_ParseTupleAndKeywords(args, kwds, "i|ii", kwlist, &frames, &keep, &zero))
+ return NULL;
+
+ b->Frames(frames,keep != 0,zero != 0);
+
+ Py_INCREF(obj);
+ return obj;
+ }
+ else {
+ PyErr_SetString(PyExc_RuntimeError,"Invalid buffer");
+ return NULL;
+ }
+}
+
static PyMethodDef buffer_methods[] = {
{"dirty", (PyCFunction)buffer_dirty,METH_NOARGS,"Mark buffer as dirty"},
+ {"resize", (PyCFunction)buffer_resize,METH_VARARGS|METH_KEYWORDS,"Resize buffer"},
{NULL} /* Sentinel */
};