aboutsummaryrefslogtreecommitdiff
path: root/control/qread.c
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-14 21:59:09 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-14 21:59:09 +0000
commitc1419b43ea354fa04360450ae4f64612df065099 (patch)
tree8c38d7338e9df7e889a18dceeedb3509adbbf423 /control/qread.c
parent76be9508936fa53fe661d378ee2fc41cc9baebf3 (diff)
these pragmas are only used for MSVC, not MinGW or Cygwin, therefore changing the define from NT to _MSC_VER
svn path=/trunk/externals/ggee/; revision=3903
Diffstat (limited to 'control/qread.c')
-rwxr-xr-xcontrol/qread.c258
1 files changed, 129 insertions, 129 deletions
diff --git a/control/qread.c b/control/qread.c
index f7c3897..28112df 100755
--- a/control/qread.c
+++ b/control/qread.c
@@ -1,129 +1,129 @@
-/* (C) Guenter Geiger <geiger@epy.co.at> */
-
-
-#include <m_pd.h>
-
-/* ------------------------ qread ----------------------------- */
-
-#include <stdio.h>
-
-static t_class *qread_class;
-
-
-#define MAXLINE 255
-
-typedef struct _qread
-{
- t_object x_obj;
- FILE* x_file;
- int x_size;
- t_clock* x_clock;
- t_glist * x_glist;
- int x_num;
- t_symbol* x_name;
-} t_qread;
-
-
-
-static void qread_open(t_qread *x,t_symbol *filename)
-{
- char fname[MAXPDSTRING];
-
- if (filename == &s_) {
- post("sfread: open without filename");
- return;
- }
-
- canvas_makefilename((void*)glist_getcanvas(x->x_glist), filename->s_name,
- fname, MAXPDSTRING);
-
-
- /* close the old file */
-
- if (x->x_file) fclose(x->x_file);
-
- if (!(x->x_file = fopen(fname,"r")))
- {
- error("can't open %s",fname);
- return;
- }
-
-
-}
-
-void qread_next(t_qread *x)
-{
- int i;
- float delay;
- char name[MAXLINE];
- t_atom at[20];
- int ac=0;
- t_floatarg ff;
-
- if (!x->x_file) return;
-
- fscanf(x->x_file,"%f",&delay);
- if (feof(x->x_file)) {
- clock_unset(x->x_clock);
- return;
- }
-
- fscanf(x->x_file,"%s",name);
-#ifdef DEBUG
- post("next: name = %s delay = %f",name,delay);
-#endif
-
- for (i=0;i<=x->x_num && !feof(x->x_file);i++) {
- fscanf(x->x_file,"%f",&ff);
- SETFLOAT(at+i,ff);
- }
- ac = i-1;
- fscanf(x->x_file,";");
-
-
- clock_delay(x->x_clock,delay);
-
- outlet_list(x->x_obj.ob_outlet, gensym(name), ac, at);
-}
-
-static void qread_bang(t_qread *x)
-{
- if (!x->x_file) return;
-
- fseek(x->x_file,0,SEEK_SET);
- clock_delay(x->x_clock,0);
-
-#ifdef DEBUG
- post("bang");
-#endif
-}
-
-static void qread_stop(t_qread *x)
-{
- clock_unset(x->x_clock);
-}
-
-static void *qread_new(t_floatarg n)
-{
- t_qread *x = (t_qread *)pd_new(qread_class);
- outlet_new(&x->x_obj, &s_float);
-
- x->x_name = gensym("qread");
- x->x_glist = (t_glist*) canvas_getcurrent();
- x->x_clock = clock_new(x, (t_method)qread_next);
- x->x_file = NULL;
- x->x_num = n;
- return (x);
-}
-
-void qread_setup(void)
-{
- qread_class = class_new(gensym("qread"), (t_newmethod)qread_new, 0,
- sizeof(t_qread), 0,A_DEFFLOAT,A_NULL);
- class_addbang(qread_class,qread_bang);
- class_addmethod(qread_class,(t_method)qread_next,gensym("next"),A_NULL);
- class_addmethod(qread_class,(t_method)qread_open,gensym("open"),A_SYMBOL,A_NULL);
- class_addmethod(qread_class,(t_method)qread_stop,gensym("stop"),A_NULL);
-}
-
-
+/* (C) Guenter Geiger <geiger@epy.co.at> */
+
+
+#include <m_pd.h>
+
+/* ------------------------ qread ----------------------------- */
+
+#include <stdio.h>
+
+static t_class *qread_class;
+
+
+#define MAXLINE 255
+
+typedef struct _qread
+{
+ t_object x_obj;
+ FILE* x_file;
+ int x_size;
+ t_clock* x_clock;
+ t_glist * x_glist;
+ int x_num;
+ t_symbol* x_name;
+} t_qread;
+
+
+
+static void qread_open(t_qread *x,t_symbol *filename)
+{
+ char fname[MAXPDSTRING];
+
+ if (filename == &s_) {
+ post("sfread: open without filename");
+ return;
+ }
+
+ canvas_makefilename((void*)glist_getcanvas(x->x_glist), filename->s_name,
+ fname, MAXPDSTRING);
+
+
+ /* close the old file */
+
+ if (x->x_file) fclose(x->x_file);
+
+ if (!(x->x_file = fopen(fname,"r")))
+ {
+ error("can't open %s",fname);
+ return;
+ }
+
+
+}
+
+void qread_next(t_qread *x)
+{
+ int i;
+ float delay;
+ char name[MAXLINE];
+ t_atom at[20];
+ int ac=0;
+ t_floatarg ff;
+
+ if (!x->x_file) return;
+
+ fscanf(x->x_file,"%f",&delay);
+ if (feof(x->x_file)) {
+ clock_unset(x->x_clock);
+ return;
+ }
+
+ fscanf(x->x_file,"%s",name);
+#ifdef DEBUG
+ post("next: name = %s delay = %f",name,delay);
+#endif
+
+ for (i=0;i<=x->x_num && !feof(x->x_file);i++) {
+ fscanf(x->x_file,"%f",&ff);
+ SETFLOAT(at+i,ff);
+ }
+ ac = i-1;
+ fscanf(x->x_file,";");
+
+
+ clock_delay(x->x_clock,delay);
+
+ outlet_list(x->x_obj.ob_outlet, gensym(name), ac, at);
+}
+
+static void qread_bang(t_qread *x)
+{
+ if (!x->x_file) return;
+
+ fseek(x->x_file,0,SEEK_SET);
+ clock_delay(x->x_clock,0);
+
+#ifdef DEBUG
+ post("bang");
+#endif
+}
+
+static void qread_stop(t_qread *x)
+{
+ clock_unset(x->x_clock);
+}
+
+static void *qread_new(t_floatarg n)
+{
+ t_qread *x = (t_qread *)pd_new(qread_class);
+ outlet_new(&x->x_obj, &s_float);
+
+ x->x_name = gensym("qread");
+ x->x_glist = (t_glist*) canvas_getcurrent();
+ x->x_clock = clock_new(x, (t_method)qread_next);
+ x->x_file = NULL;
+ x->x_num = n;
+ return (x);
+}
+
+void qread_setup(void)
+{
+ qread_class = class_new(gensym("qread"), (t_newmethod)qread_new, 0,
+ sizeof(t_qread), 0,A_DEFFLOAT,A_NULL);
+ class_addbang(qread_class,qread_bang);
+ class_addmethod(qread_class,(t_method)qread_next,gensym("next"),A_NULL);
+ class_addmethod(qread_class,(t_method)qread_open,gensym("open"),A_SYMBOL,A_NULL);
+ class_addmethod(qread_class,(t_method)qread_stop,gensym("stop"),A_NULL);
+}
+
+