[PD-cvs] externals/hcs helppath.c, NONE, 1.1 helppath-help.pd, NONE, 1.1
Hans-Christoph Steiner
eighthave at users.sourceforge.net
Sat Nov 24 19:14:33 CET 2007
- Previous message: [PD-cvs] externals/tkwidgets checkbutton-help.pd, 1.4, 1.5 checkbutton.c, 1.9, 1.10
- Next message: [PD-cvs] pd/src g_text.c, 1.15.6.4, 1.15.6.5 m_atom.c, 1.4.6.1, 1.4.6.2 m_binbuf.c, 1.13.6.1, 1.13.6.2 m_class.c, 1.7.6.1, 1.7.6.2 m_imp.h, 1.4.10.1, 1.4.10.2 m_obj.c, 1.4.10.1, 1.4.10.2 m_pd.c, 1.4.10.1, 1.4.10.2 m_pd.h, 1.16.2.2.2.1, 1.16.2.2.2.2 x_interface.c, 1.3, 1.3.6.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/externals/hcs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18937
Added Files:
helppath.c helppath-help.pd
Log Message:
created quick working sketch for navigating the sys_helppath
--- NEW FILE: helppath-help.pd ---
#N canvas 375 22 466 316 10;
#X obj 40 130 helppath;
#X msg 37 99 bang;
#X obj 54 176 print;
#X symbolatom 29 213 0 0 0 0 - - -;
#X obj 101 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 79 102 reset;
#X text 19 22 This object returns each path in the global classpath
one at a time with each bang. [reset( refreshs the classpath data and
starts again at the top of the list \, like [textfile] or [qlist]'s
[reset(.;
#X text 124 153 <-- banged when the end of the list is reached;
#X text 234 294 released under the GNU GPL;
#X text 18 281 (C) Copyright 2006 Hans-Christoph Steiner <hans at at.or.at>
;
#X obj 31 238 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 0 1 4 0;
#X connect 1 0 0 0;
#X connect 3 0 10 0;
#X connect 5 0 0 0;
--- NEW FILE: helppath.c ---
/*
* This object outputs the global search path for finding objects using a
* similar interface as [textfile].
*
* Copyright (c) 2007 Free Software Foundation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* See file LICENSE for further informations on licensing terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "m_pd.h"
#include "s_stuff.h"
#include <string.h>
/*
#ifdef _WIN32
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
#else
#include <stdlib.h>
#endif
*/
static char *version = "$Revision: 1.1 $";
//#define DEBUG(x)
#define DEBUG(x) x
/*------------------------------------------------------------------------------
* CLASS DEF
*/
static t_class *helppath_class;
typedef struct _helppath {
t_object x_obj;
t_namelist *x_top;
t_namelist *x_current;
t_outlet *x_data_outlet;
t_outlet *x_status_outlet;
} t_helppath;
/*------------------------------------------------------------------------------
* IMPLEMENTATION
*/
static void helppath_output(t_helppath* x)
{
DEBUG(post("helppath_output"););
/* TODO: think about using x->x_current->nl_next so that if [helppath] is at
* the end of its list, and another element gets added to the global
* helppath, [helppath] will output the new element on the next bang. */
if(x->x_current)
{
outlet_symbol( x->x_data_outlet, gensym(x->x_current->nl_string) );
x->x_current = x->x_current->nl_next;
}
else
{
outlet_bang(x->x_status_outlet);
}
}
static void helppath_reset(t_helppath* x)
{
DEBUG(post("helppath_reset"););
x->x_current = x->x_top = sys_helppath;
}
static void helppath_add(t_helppath* x, t_symbol *s)
{
DEBUG(post("helppath_add"););
}
static void *helppath_new()
{
DEBUG(post("helppath_new"););
t_helppath *x = (t_helppath *)pd_new(helppath_class);
x->x_data_outlet = outlet_new(&x->x_obj, &s_symbol);
x->x_status_outlet = outlet_new(&x->x_obj, 0);
helppath_reset(x);
return (x);
}
void helppath_free()
{
// TODO: look into freeing the namelist
}
void helppath_setup(void)
{
DEBUG(post("helppath_setup"););
helppath_class = class_new(gensym("helppath"),
(t_newmethod)helppath_new,
0,
sizeof(t_helppath),
0,
0);
/* add inlet datatype methods */
class_addbang(helppath_class,(t_method) helppath_output);
/* add inlet message methods */
class_addmethod(helppath_class,(t_method) helppath_reset,
gensym("reset"), 0);
class_addmethod(helppath_class,(t_method) helppath_add,gensym("add"),
A_DEFSYMBOL, 0);
}
- Previous message: [PD-cvs] externals/tkwidgets checkbutton-help.pd, 1.4, 1.5 checkbutton.c, 1.9, 1.10
- Next message: [PD-cvs] pd/src g_text.c, 1.15.6.4, 1.15.6.5 m_atom.c, 1.4.6.1, 1.4.6.2 m_binbuf.c, 1.13.6.1, 1.13.6.2 m_class.c, 1.7.6.1, 1.7.6.2 m_imp.h, 1.4.10.1, 1.4.10.2 m_obj.c, 1.4.10.1, 1.4.10.2 m_pd.c, 1.4.10.1, 1.4.10.2 m_pd.h, 1.16.2.2.2.1, 1.16.2.2.2.2 x_interface.c, 1.3, 1.3.6.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list