Commit 64224ba2 authored by Jonathan Wilkes's avatar Jonathan Wilkes

Merge branch 'port-knob-squashed'

parents eab10ab4 fc9ee8af
...@@ -134,11 +134,9 @@ ifeq ($(LIGHT),yes) ...@@ -134,11 +134,9 @@ ifeq ($(LIGHT),yes)
lib_targets = loaders-libdir pddp lib_targets = loaders-libdir pddp
INCREMENTAL = yes INCREMENTAL = yes
else else
lib_targets = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy lib_targets = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease flatgui fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
endif endif
# DISABLED: flatgui
# NEW (IN-PROGRESS): flext # NEW (IN-PROGRESS): flext
# this is for libraries that don't compile (yet) on all platforms # this is for libraries that don't compile (yet) on all platforms
...@@ -538,16 +536,21 @@ fftease_clean: ...@@ -538,16 +536,21 @@ fftease_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# FLATGUI # FLATGUI
#
# Right now we're just building footils/knob and throwing it in the flatgui
# external directory for compatibility
#
flatgui: flatgui:
make -C $(externals_src)/flatgui CFLAGS="$(CFLAGS)" \ make -C $(externals_src)/footils/knob CFLAGS="$(CFLAGS)" \
PD_PATH=$(pd_src) PD_INCLUDE=$(pd_src)/src PD_PATH=$(pd_src) pdbinpath=$(pd_src)/src \
PD_INCLUDE=$(pd_src)/src
flatgui_install: flatgui_install:
make -C $(externals_src)/flatgui STRIP="$(STRIP)" \ make -C $(externals_src)/footils/knob STRIP="$(STRIP)" \
DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
flatgui_clean: flatgui_clean:
make -C $(externals_src)/flatgui clean make -C $(externals_src)/footils/knob clean
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# FLEXT and FLEXT externals # FLEXT and FLEXT externals
......
This diff is collapsed.
This diff is collapsed.
NAME=knob # Makefile for mylib
CSYM=knob
lib.name = flatgui
# !!!
# change these two class.sources = knob.c
PD_DIR=../../../pd
#current: pd_nt pd_linux # ldlibs = -lfluidsynth
current: pd_linux
datafiles = knob-help.pd clock.pd README
# ----------------------- NT -----------------------
externalsdir = ../../
pd_nt: $(NAME).dll
include Makefile.pdlibbuilder.revised
.SUFFIXES: .dll
PDNTCFLAGS = /W3 /WX /O2 /G6 /DNT /DPD /nologo
# where is VC++ ???
VC="C:\Programme\Microsoft Visual Studio\VC98"
# where is your m_pd.h ???
PDNTINCLUDE = /I. /Ic:\pd\tcl\include /Ic:\pd\src /I$(VC)\include /Iinclude
PDNTLDIR = $(VC)\Lib
PDNTLIB = $(PDNTLDIR)\libc.lib \
$(PDNTLDIR)\oldnames.lib \
$(PDNTLDIR)\kernel32.lib \
$(PDNTLDIR)\user32.lib \
$(PDNTLDIR)\uuid.lib \
$(PDNTLDIR)\ws2_32.lib \
c:\pd\bin\pd.lib
.c.dll:
cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
link /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB)
# ----------------------- IRIX 5.x -----------------------
pd_irix5: $(NAME).pd_irix5
.SUFFIXES: .pd_irix5
SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
SGIINCLUDE = -I../../src
.c.pd_irix5:
cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
rm $*.o
# ----------------------- IRIX 6.x -----------------------
pd_irix6: $(NAME).pd_irix6
.SUFFIXES: .pd_irix6
SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \
-OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \
-Ofast=ip32
.c.pd_irix6:
cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c
ld -n32 -IPA -shared -rdata_shared -o $*.pd_irix6 $*.o
rm $*.o
# ----------------------- LINUX i386 -----------------------
pd_linux: $(NAME).pd_linux
.SUFFIXES: .pd_linux
LINUXCFLAGS = -DPD -DUNIX -O2 -funroll-loops -fomit-frame-pointer \
-Wall -W -Wshadow -Wstrict-prototypes -Werror \
-Wno-unused -Wno-parentheses -Wno-switch
# where is your m_pd.h ???
LINUXINCLUDE = -I../../src -I$(PD_DIR)/src
.c.pd_linux:
cc -O2 -Wall -DPD -fPIC $(LINUXINCLUDE) -c $*.c
ld --export-dynamic -shared -o $*.pd_linux $*.o -lc
strip $*.pd_linux
# ----------------------------------------------------------
install:
cp help-*.pd ../../doc/5.reference
clean:
rm -f *.o *.pd_* so_locations
...@@ -744,7 +744,7 @@ static void *mknob_new(t_symbol *s, int argc, t_atom *argv) ...@@ -744,7 +744,7 @@ static void *mknob_new(t_symbol *s, int argc, t_atom *argv)
x->x_thick = 0; x->x_thick = 0;
iemgui_verify_snd_ne_rcv(&x->x_gui); iemgui_verify_snd_ne_rcv(&x->x_gui);
outlet_new(&x->x_gui.x_obj, &s_float); outlet_new(&x->x_gui.x_obj, &s_float);
x->x_gui.x_obj.te_iemgui = 1; x->x_gui.x_obj.te_iemgui = 1;
x->x_gui.x_handle = scalehandle_new((t_object *)x, x->x_gui.x_handle = scalehandle_new((t_object *)x,
x->x_gui.x_glist, 1, mknob__clickhook, mknob__motionhook); x->x_gui.x_glist, 1, mknob__clickhook, mknob__motionhook);
......
...@@ -1995,7 +1995,12 @@ function add_gobj_to_svg(svg, gobj) { ...@@ -1995,7 +1995,12 @@ function add_gobj_to_svg(svg, gobj) {
var gui = (function() { var gui = (function() {
var c = {}; // object to hold references to all our canvas closures var c = {}; // object to hold references to all our canvas closures
var last_thing; // last thing we got // We store the last "thing" we fetched from the window. This is either
// the window itself or a "gobj". Regular old DOM elements that aren't
// a "gobj" container don't count. This way we can do a "get_gobj" then
// gang multiple element queries after it that work within our last
// "gobj." (Same for window.)
var last_thing;
var null_fn, null_canvas; var null_fn, null_canvas;
var create_canvas = function(cid, w) { var create_canvas = function(cid, w) {
var get = function(parent, sel, arg, suffix) { var get = function(parent, sel, arg, suffix) {
...@@ -4152,7 +4157,8 @@ function gui_grid_point(cid, tag, x, y) { ...@@ -4152,7 +4157,8 @@ function gui_grid_point(cid, tag, x, y) {
} }
// mknob from moonlib // mknob from moonlib
function gui_mknob_new(cid, tag, x, y, is_toplevel, show_in, show_out) { function gui_mknob_new(cid, tag, x, y, is_toplevel, show_in, show_out,
is_footils_knob) {
gui(cid).get_elem("patchsvg", function(svg_elem) { gui(cid).get_elem("patchsvg", function(svg_elem) {
gui_gobj_new(cid, tag, "obj", x, y, is_toplevel); gui_gobj_new(cid, tag, "obj", x, y, is_toplevel);
}); });
...@@ -4162,50 +4168,89 @@ function gui_mknob_new(cid, tag, x, y, is_toplevel, show_in, show_out) { ...@@ -4162,50 +4168,89 @@ function gui_mknob_new(cid, tag, x, y, is_toplevel, show_in, show_out) {
class: "border" // now we can inherit the css border styles class: "border" // now we can inherit the css border styles
}), }),
circle = create_item(cid, "circle", { circle = create_item(cid, "circle", {
class: "circle" //class: "circle"
}), }),
line = create_item(cid, "line", { line = create_item(cid, "line", {
class: "dial" //class: "dial"
}); });
frag.appendChild(border); frag.appendChild(border);
frag.appendChild(circle); frag.appendChild(circle);
/* An extra circle for footils/knob */
if (!!is_footils_knob) {
frag.appendChild(create_item(cid, "circle", {
class: "dial_frag"
}));
}
frag.appendChild(line); frag.appendChild(line);
return frag; return frag;
}); });
} }
function gui_configure_mknob(cid, tag, size, bg_color, fg_color) { function knob_dashes(d, len) {
gui(cid).get_gobj(tag) var c = d * 3.14159;
return (c * len) + " " + (c * (1 - len));
}
function knob_offset(d) {
return d * 3.14 * -0.28;
}
function gui_configure_mknob(cid, tag, size, bg_color, fg_color,
is_footils_knob) {
var w = size,
h = !!is_footils_knob ? size + 5 : size;
var g = gui(cid).get_gobj(tag)
.q(".border", { .q(".border", {
d: ["M", 0, 0, size, 0, d: ["M", 0, 0, w, 0,
"M", 0, size, size, size, "M", 0, h, w, h,
"M", 0, 0, 0, size, "M", 0, 0, 0, h,
"M", size, 0, size, size "M", w, 0, w, h
].join(" "), ].join(" "),
fill: "none", fill: "none",
}) })
.q(".circle", { .q("circle", {
cx: size / 2, cx: size / 2,
cy: size / 2, cy: size / 2,
r: size / 2, r: size / 2,
fill: bg_color, fill: !!is_footils_knob ? "none" : bg_color,
stroke: "black", stroke: "black",
"stroke-width": 1 "stroke-width": !!is_footils_knob ? 3 : 1,
"stroke-dasharray": !!is_footils_knob ?
knob_dashes(size, 0.94) : "none",
"stroke-dashoffset": !!is_footils_knob ? knob_offset(size) : "0"
}) })
.q(".dial", { .q("line", { // indicator
"stroke-width": 2, "stroke-width": 2,
stroke: fg_color stroke: fg_color
}); });
if (!!is_footils_knob) {
g.q(".dial_frag", {
cx: size / 2,
cy: size / 2,
r: size / 2,
fill: "none",
stroke: bg_color,
"stroke-width": 3,
"stroke-dasharray": knob_dashes(size, 0.94),
"stroke-dashoffset": knob_offset(size)
});
}
} }
function gui_turn_mknob(cid, tag, x1, y1, x2, y2) { function gui_turn_mknob(cid, tag, x1, y1, x2, y2, is_footils_knob, val) {
gui(cid).get_gobj(tag) var g = gui(cid).get_gobj(tag)
.q(".dial", { .q("line", { // indicator
x1: x1, x1: x1,
y1: y1, y1: y1,
x2: x2, x2: x2,
y2: y2 y2: y2
}); });
if (!!is_footils_knob) {
g.q(".dial_frag", {
"stroke-dasharray": knob_dashes(x1 * 2, val * 0.94)
});
}
} }
function add_popup(cid, popup) { function add_popup(cid, popup) {
......
...@@ -513,7 +513,6 @@ void iemgui_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy) ...@@ -513,7 +513,6 @@ void iemgui_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy)
canvas_fixlinesfor(glist_getcanvas(glist), (t_text *)z); canvas_fixlinesfor(glist_getcanvas(glist), (t_text *)z);
} }
void iemgui_select(t_gobj *z, t_glist *glist, int selected) void iemgui_select(t_gobj *z, t_glist *glist, int selected)
{ {
t_iemgui *x = (t_iemgui *)z; t_iemgui *x = (t_iemgui *)z;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment