Commit e523762c authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

remove old, unused extensions/ directory

parent abb01e4b
#==============================================================================#
#
# Centralized build system for "extensions".
#
# see for instructions: http://puredata.org/docs/developer/build
# <hans@at.or.at>
#
#==============================================================================#
CWD := $(shell pwd)
# these are designed to be overridden by the packages/Makefile
cvs_root_dir := $(shell cd $(CWD)/.. && pwd)
DESTDIR = $(CWD)/build/
BUILDLAYOUT_DIR = $(cvs_root_dir)/packages
# default target
all: gripd
include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
#==============================================================================#
#
# OVERARCHING BUILD TARGETS
#
#==============================================================================#
# clean up after everything is installed
final_setup:
chmod -R ugo-w $(pddocdir)
install: $(examplesdir) $(helpdir) $(manualsdir) $(objectsdir) $(readmesdir) \
gripd_install ix_install
@echo " "
@echo "extensions install succeeded!"
#==============================================================================#
#
# PROJECT-SPECIFIC TARGETS
#
#==============================================================================#
#------------------------------------------------------------------------------#
# GRIPD
GRIPD_NAME = gripd
gripd:
make -C $(extensions_src)/gripd/src -f Makefile.Linux all
gripd_install:
install -d $(helpdir)
install -d $(objectsdir)
# it doesn't compile automatically yet <hans@at.or.at>
# install -p $(extensions_src)/gripd/*.$(EXTENSION) \
# $(extensions_src)/gripd/*.so \
# $(objectsdir)
install -p $(extensions_src)/gripd/examples/gripd.pd \
$(helpdir)/gripd-help.pd
# install -d $(manualsdir)/$(GRIPD_NAME)
install -p $(extensions_src)/gripd/README.txt \
$(readmesdir)/$(GRIPD_NAME).txt
install -d $(examplesdir)/$(GRIPD_NAME)
install -p $(extensions_src)/gripd/examples/*.* \
$(examplesdir)/$(GRIPD_NAME)
gripd_clean:
make -C $(extensions_src)/gripd/src clean
#------------------------------------------------------------------------------#
# IX
IX_NAME = ix
ix_install:
install -d $(objectsdir)/$(IX_NAME)
install -p $(extensions_src)/gui/ix/toxy/*.wid $(objectsdir)/$(IX_NAME)
# install -d $(manualsdir)/$(IX_NAME)
# install -d $(readmesdir)/$(IX_NAME)
# install -p $(extensions_src)/gui/ix/toxy/README \
# $(readmesdir)/$(IX_NAME).txt
install -d $(examplesdir)/$(IX_NAME)
install -p $(extensions_src)/gui/ix/toxy/*.pd $(examplesdir)/$(IX_NAME)
#==============================================================================#
#
# DEVELOPER'S TARGETS
#
#==============================================================================#
# make the symlinks necessary to simulate the installed environment
devsymlinks:
#==============================================================================#
#
# CLEAN TARGETS
#
#==============================================================================#
# the destination-specific clean targets are in Makefile.buildlayout
clean: install_clean
distclean: clean cruft_clean
test_locations:
@echo "PD_VERSION: $(PD_VERSION)"
@echo "PACKAGE_VERSION: $(PACKAGE_VERSION)"
@echo "CWD $(CWD)"
@echo "DESTDIR $(DESTDIR)"
@echo "PREFIX $(prefix)"
@echo "BINDIR $(bindir)"
@echo "LIBDIR $(libdir)"
@echo "OBJECTSDIR $(objectsdir)"
@echo "PDDOCDIR $(pddocdir)"
@echo "LIBPDDIR $(libpddir)"
@echo "LIBPDBINDIR $(libpdbindir)"
@echo "HELPDIR $(helpdir)"
@echo "MANUALSDIR $(manualsdir)"
@echo "EXAMPLESDIR $(examplesdir)"
GrIPD: Graphical Interface for Pure Data
----------------------------------------
v0.1.1
-What is GrIPD-
GrIPD is a cross-platform extension to Miller Puckette's Pure Data
software that allows the one to design custom graphical user
interfaces for Pd patches. GrIPD is not a replacement for the Pd
Tcl/Tk GUI, but instead is intended to allow one to create a front end
to a Pd patch. The concept is to create your PD patch normally and
then your GUI using GrIPD. You can then lauch Pd using the -nogui
command line argument (although this is certainly not necessary) so
only your custom front end will be displayed. GrIPD, itself, consists
of two parts: the "gripd" Pd object and an external GUI
window/editor. The Pd object was written in C and the external GUI was
written in Python using the wxWindows. GrIPD is released under the
GNU General Public License.
-How GrIPD works-
The two parts of GrIPD communicate via TCP/IP sockets so they can run
on one machine or on separate machines over a network; so, for
example, the GUI could be on a laptop on stage controlling or
displaying info from the Pd audio engine in the house next to the
mixer. The communication works through Pd's implimentation of
"send" and "receive" objects. Basically, each GrIPD control object has
a send and receive symbol associated with it.
-Supported platforms-
GrIPD is currently available for Linux/GTK+ and MS Windows
platforms. It may work on other Unix's, but as of yet it has not been
tested. Since wxPython and C are both highly portable, most of GrIPD
is as well. The only issues should be the C socket and multi-process
code.
-Requirements-
For Win32:
* Pd
For Linux:
* Pd
* GTK+
To compile under Win32:
* Python (v2.2 or later)
* wxPython- wxWindows for Python (v2.4.0 or later)
* a C/C++ compiler
* to make a stand-alone .exe file you'll also need
py2exe v0.3.1 (http://starship.python.net/crew/theller/py2exe/)
To compile under Linux:
* Python (v2.2 or later)
* wxPython- wxWindows for Python (v2.4.0 or later)
* GTK+ and wxGTK
* C/C++ compiler
* to make a stand-alone binary executable you'll also need
Installer v5b4 (http://www.mcmillan-inc.com/install5_ann.html)
All of the above are, of course, free.
For Windows: the package includes compiled binaries of the gripd.dll Pd object
and the gripd.exe GUI executeable.
For Linux: stand-alone binary packages are available for x86 the architecture
with either OSS or ALSA MIDI support.
-Installation-
Windows:
1) Unzip contents of gripd-*.zip to .\pd\gripd\
2) Put gripd.dll where Pd can find it
To compile from source
1) In .\pd\gripd\src:
a) edit makefile
b) run: nmake gripd_nt
2) gripd.exe is included, but to recompile run:
python gripdSetup.py py2exe -w -O2 --icon icon.pic
Linux:
1) Ungzip/untar contents of gripd-*.tar.gz to ./pd/gripd/
2) Put gripd.pd_linux where Pd can find it
To compile from source:
2) In ./pd/gripd/src
a) edit makefile
b) run: make gripd_linux
3) to build a stand-alone binary executable of the GrIPD GUI run:
python -OO Build.py gripd.spec (Build.py is part of Installer v5b4)
Be sure to have gripd.dll or gripd.pd_linux in your Pd path
-Using GrIPD-
To use GrIPD, launch Pd with the -lib gripd command line
argument, and put the gripd Pd object on your patch; it's scope will be
global throughout all canvases. Then send it an "open <optional
filename>" message to launch the GUI (gripd.exe or gripd.py).
You can also send a "open_locked <filename>" message which will open the
GUI in locked mode. This will prevent any changes from being made to
the GUI itself.
You may need to set the path to gripd.py or gripd.exe by sending a
"set_path <path>" message to the gripd Pd object. For Windows users not using
gripd.exe, you may also have to set the path to python.exe by sending a
"set_python_path <path>" message.
You may also send a "connect" message to set the gripd Pd object to wait for
an incomming connection and launch gripd.exe or gripd.py separately.
If the path supplied to either an "open" message or a "set_path" message
is relative (i.e. begins with ./ or ../) they will be considered relative
to the directory containing the Pd executable file (pd.exe for Windows and
pd for Linux). This keeps behavior consistent no matter where Pd is launched
from.
If the GUI is launched from PD, When the GUI window is closed you can re-open
it by sending the gripd Pd object a "show" message. You can also hide it by
sending the gripd Pd object a "hide" message.
The GrIPD GUI itself has two modes: "Performance Mode" and "Edit
Mode". In "Edit Mode" you can add and remove controls using the
"Edit" menu, move them around by selecting them and dragging them by
their tag with the mouse or use the arrow keys (note: ctrl+<arrow key>
will move controls a greater distance). You can edit a controls
properties by either selecting "Edit" from the "Edit" menu or
right-clicking the control's tab. In "Performance Mode" the controls
properties are locked and when activated (e.g. clicked, slid, checked,
etc.) they will send a message via their send symbol. Conversely,
they will receive messages sent within the Pd patch using their
receive symbol. Look at gripd.pd and gripdExamples.pd.
GrIPD can forward MIDI input to Pd from up to two devices. To enable MIDI
function, select "Enable MIDI" from the "Configure" menu. GrIPD will send
note information via the "midi<n>note" symbol where <n> is either 0 or 1.
It will also send controller information via "midi<n>ctl" and program change
information via "midi<n>pgm".
GrIPD also allows for the use of up to two joysticks. To enable joystick
function, select "Enable Joystick" from the "Configure" menu. Joystick
axis and button information are sent to Pd with the send symbols
"joy<n>axis<m>" and "joy<n>button<m>" where <n> is 0 or 1 and ,<m> is
0,1,... for the number of axes and buttons your joystick supports. For
example, to read from joystick 0 axis 0, put a "r joy0axis0" object in your
Pd patch. Axes will send integers in a range that will depend on your
joystick, and buttons will send 1 when depressed and 0 when released.
GrIPD will also catch keystrokes and send the ASCII value to Pd while in
performance mode via a "keystroke" send symbol. Simply put a "r keystroke"
object in your Pd patch.
Note about duplicating radio buttons:
When creating radio buttons, the first button created in a group is the
group marker. Duplicating any of the buttons in a group other than the
group marker button will add a button of the last group created.
Duplicating the group marker button will start a new group.
Note about image paths:
When a path to an image is relative (i.e. begins with ./ or ../), it is
considered relative to the .gpd file containing the image. If no file
has been opened or saved, the path is considered relative to the directory
containing the gripd executable file (gripd.exe for Windows and gripd.py
for Linux). It is therefore recommended that all images used in a GUI be
placed in a directory directly lower than the directory containing the .gpd
file. For example if your .gpd file is in c:\pd-guis put all images in
c:\pd-guis\images. This will make distributing GUIs much simpler.
Note about MIDI and joystick input:
If problems occur due to MIDI or joystick input, you can disable them by
editing gripd.opt
-New in 0.1.1
Added graph control
Added openpanel and savepanel
added MIDI and joystick activity blinking
Fixed zombie bug
Fixed multiple opens bug
Fixed checkbox and radio buttons bug
Fixed rectangle redrawing problem
Fixed selecting inside rectangle problem
-Contact-
Drop me a line at jsarlo@ucsd.edu
/* XPM */
static char * connect_xpm[] = {
"21 16 8 1",
" c None",
". c #000000",
"+ c #00FF04",
"@ c #BFBFBF",
"# c #FEFEFE",
"$ c #00FEFE",
"% c #FF0000",
"& c #0000FE",
" .. ........ ",
" .+. .@@@@@@@@.",
" .....++. .@......@.",
" .+++++++..@.##$$.@.",
" .+...++. .@.#%&#.@.",
" .+. .+. .@.$#%#.@.",
" .+. .. .@......@.",
" ........ .@@@@@@@@.",
".@@@@@@@@. ........ ",
".@......@. .. .+. ",
".@.#&$$.@. .+. .+. ",
".@.#%&#.@. .++...+. ",
".@.$###.@..+++++++. ",
".@......@. .++..... ",
".@@@@@@@@. .+. ",
" ........ .. "};
/* XPM */
static char * connectX_xpm[] = {
"21 16 5 1",
" c None",
". c #000000",
"+ c #BFBFBF",
"@ c #FF0000",
"# c #3F3F3F",
" ........ ",
" .. .++++++++.",
" ....@@. .+......+.",
" .@@@@@. .+.####.+.",
" .@..@@. .+.####.+.",
" .@. .. .+.####.+.",
" .@. .+......+.",
" ........ .++++++++.",
".++++++++. ........ ",
".+......+. .@. ",
".+.####.+. .. .@. ",
".+.####.+. .@@..@. ",
".+.####.+. .@@@@@. ",
".+......+. .@@.... ",
".++++++++. .. ",
" ........ "};
328
467
#c0c0c0
localhost
32781|1|2|5|10|0|1|FM Synth|0|0|0|0|1|5|0
4
16
57
294
259
srectangle0
rrectangle0
#c0c0c0
#000080
22
74
93
90
0
Arial
!END-CONTROL
5
Carrier Freq
38
105
67
20
stext0
rtext0
#c0c0c0
#000000
12
74
90
90
0
Arial
!END-CONTROL
2
100
34
124
24
139
carrier
rslider0
#c0c0c0
#000000
8
74
90
90
0
MS Sans Serif
100
5000
1
!END-CONTROL
5
Mod Freq
141
105
59
20
stext0
rtext0
#c0c0c0
#000000
12
74
90
90
0
Arial
!END-CONTROL
2
0
140
124
24
139
mod
rslider0
#c0c0c0
#000000
8
74
90
90
0
MS Sans Serif
0
500
1
!END-CONTROL
5
Index
235
105
52
20
stext0
rtext0
#c0c0c0
#000000
12
74
90
90
0
Arial
!END-CONTROL
2
0
243
124
24
139
index
rslider0
#c0c0c0
#000000
8
74
90
90
0
MS Sans Serif
0
1000
1
!END-CONTROL
5
Amplitude:
34
340
73
20
stext2
rtext2
#c0c0c0
#000000
12
74
90
90
0
Arial
!END-CONTROL
3
0
35
364
140
24
amp
rslider1
#c0c0c0
#000000
8
74
90
90
0
MS Sans Serif
0
100
1
!END-CONTROL
14
./fmlogo.gif
77
5
180
48
simage3
rimage3
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
14
./scale.gif
58
124
23
139
simage7
rimage7
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
14
./scale.gif
164
124
23
139
simage7
rimage7
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
14
./scale.gif
268
124
23
139
simage7
rimage7
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
14
./scale2.gif
36
389
139
23
simage48
rimage48
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
4
16
309
294
124
srectangle10
rrectangle10
#c0c0c0
#000000
8
74
90
90
0
MS Shell Dlg
!END-CONTROL
9
100
36
267
34
20