[PD-cvs] pd/src g_canvas.c,1.4,1.4.4.1 g_canvas.h,1.3,1.3.4.1 g_editor.c,1.4,1.4.4.1 g_graph.c,1.3,1.3.4.1 g_io.c,1.3,1.3.4.1 g_text.c,1.5,1.5.4.1 m_glob.c,1.4,1.4.4.1 m_obj.c,1.2,1.2.4.1 m_pd.h,1.4,1.4.4.1 makefile,1.6,1.6.4.1 makefile.nt,1.2,1.2.4.1 notes.txt,1.6,1.6.4.1 s_audio.c,1.5,1.5.4.1 s_audio_alsa.c,1.5,1.5.4.1 s_audio_alsamm.c,1.1,1.1.4.1 s_audio_pablio.c,1.1,1.1.4.1 s_audio_pablio.h,1.1,1.1.4.1 s_audio_paring.c,1.1,1.1.4.1 s_audio_paring.h,1.1,1.1.4.1 s_file.c,1.2,1.2.4.1 s_inter.c,1.5,1.5.4.1 s_loader.c,1.4,1.4.4.1 s_main.c,1.7,1.7.4.1 s_midi.c,1.4,1.4.4.1 s_path.c,1.3,1.3.4.1 s_stuff.h,1.5,1.5.4.1 t_tkcmd.c,1.2,1.2.4.1 u_main.tk,1.4,1.4.4.1
Tim Blechmann
timblech at users.sourceforge.net
Fri Nov 5 15:27:50 CET 2004
- Previous message: [PD-cvs] pd/src m_binbuf.c,1.4,1.4.4.1 m_class.c,1.3,1.3.4.1 m_imp.h,1.3,1.3.4.1 m_memory.c,1.2,1.2.4.1
- Next message: [PD-cvs] pd/src d_soundfile.c,1.1.1.2.2.29,1.1.1.2.2.30
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv485
Modified Files:
Tag: devel_0_38
g_canvas.c g_canvas.h g_editor.c g_graph.c g_io.c g_text.c
m_glob.c m_obj.c m_pd.h makefile makefile.nt notes.txt
s_audio.c s_audio_alsa.c s_audio_alsamm.c s_audio_pablio.c
s_audio_pablio.h s_audio_paring.c s_audio_paring.h s_file.c
s_inter.c s_loader.c s_main.c s_midi.c s_path.c s_stuff.h
t_tkcmd.c u_main.tk
Log Message:
devel_0_38
Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** u_main.tk 6 Sep 2004 20:20:36 -0000 1.4
--- u_main.tk 5 Nov 2004 14:27:47 -0000 1.4.4.1
***************
*** 1,5 ****
#!/usr/bin/wish
- set pd_nt 0
# (The above is 0 for unix, 1 for microsoft, and 2 for Mac OSX. The first
# line is automatically munged by the relevant makefiles.)
--- 1,5 ----
+ set pd_nt 1
#!/usr/bin/wish
# (The above is 0 for unix, 1 for microsoft, and 2 for Mac OSX. The first
# line is automatically munged by the relevant makefiles.)
***************
*** 26,34 ****
regsub -all \\\\ $pd_gui2 / pd_gui3
set pd_guidir $pd_gui3/..
! load $pd_guidir/bin/pdtcl
set pd_tearoff 1
}
if {$pd_nt == 2} {
global pd_guidir
global pd_tearoff
--- 26,36 ----
regsub -all \\\\ $pd_gui2 / pd_gui3
set pd_guidir $pd_gui3/..
! load $pd_guidir/bin/pdtcl.dll
set pd_tearoff 1
}
if {$pd_nt == 2} {
+ # turn on James Tittle II's fast drawing (wait until I can test this...):
+ # set tk::mac::useCGDrawing 1
global pd_guidir
global pd_tearoff
***************
*** 291,297 ****
global pd_guidir
global pd_myversion
set name [format ".help%d" $doc_number]
toplevel $name
! text $name.text -relief raised -bd 2 -font -*-courier-bold--normal--12-* \
-yscrollcommand "$name.scroll set" -background white
scrollbar $name.scroll -command "$name.text yview"
--- 293,300 ----
global pd_guidir
global pd_myversion
+ global pd_font3
set name [format ".help%d" $doc_number]
toplevel $name
! text $name.text -relief raised -bd 2 -font $pd_font3 \
-yscrollcommand "$name.scroll set" -background white
scrollbar $name.scroll -command "$name.text yview"
***************
*** 316,323 ****
global pd_nt
! set filename [tk_getOpenFile -defaultextension .pd \
! -filetypes { {{documentation} {.pd .txt .htm}} } \
! -initialdir $help_directory]
!
if {$filename != ""} {
if {[string first .txt $filename] >= 0} {
--- 319,333 ----
global pd_nt
! if {$pd_nt == 2} {
! exec rm -rf /tmp/pd-documentation
! exec cp -pr $help_directory /tmp/pd-documentation
! set filename [tk_getOpenFile -defaultextension .pd \
! -filetypes { {{documentation} {.pd .txt .htm}} } \
! -initialdir /tmp/pd-documentation]
! } else {
! set filename [tk_getOpenFile -defaultextension .pd \
! -filetypes { {{documentation} {.pd .txt .htm}} } \
! -initialdir $help_directory]
! }
if {$filename != ""} {
if {[string first .txt $filename] >= 0} {
***************
*** 2637,2641 ****
proc pdtk_data_dialog {name stuff} {
!
toplevel $name
wm title $name {Atom}
--- 2647,2651 ----
proc pdtk_data_dialog {name stuff} {
! global pd_font3
toplevel $name
wm title $name {Atom}
***************
*** 2652,2656 ****
text $name.text -relief raised -bd 2 -height 40 -width 60 \
! -yscrollcommand "$name.scroll set" -font -*-courier-bold--normal--12-*
scrollbar $name.scroll -command "$name.text yview"
pack $name.scroll -side right -fill y
--- 2662,2666 ----
text $name.text -relief raised -bd 2 -height 40 -width 60 \
! -yscrollcommand "$name.scroll set" -font pd_font3
scrollbar $name.scroll -command "$name.text yview"
pack $name.scroll -side right -fill y
***************
*** 2677,2682 ****
# if {$font < 13} {set fontname [format -*-courier-bold----%d-* $font]}
# if {$font >= 13} {set fontname [format -*-courier-----%d-* $font]}
$canvasname create text $x $y \
! -font [format -*-courier-bold--normal--%d-* $font] \
-tags $myname -text $text -fill $color -anchor nw
# pd [concat $myname size [$canvasname bbox $myname] \;]
--- 2687,2704 ----
# if {$font < 13} {set fontname [format -*-courier-bold----%d-* $font]}
# if {$font >= 13} {set fontname [format -*-courier-----%d-* $font]}
+
+ global pd_font1 pd_font2 pd_font3 pd_font4 pd_font5 pd_font6 pd_font7
+ switch -- $font {
+ 8 { set typeface $pd_font1 }
+ 10 { set typeface $pd_font2 }
+ 12 { set typeface $pd_font3 }
+ 14 { set typeface $pd_font4 }
+ 16 { set typeface $pd_font5 }
+ 24 { set typeface $pd_font6 }
+ 36 { set typeface $pd_font7 }
+ }
+
$canvasname create text $x $y \
! -font $typeface \
-tags $myname -text $text -fill $color -anchor nw
# pd [concat $myname size [$canvasname bbox $myname] \;]
***************
*** 2709,2737 ****
# font sizes 8, 10, 12, 14, 16, and 24.
! proc pdtk_pd_startup {version apilist} {
global pd_myversion pd_apilist
set pd_myversion $version
set pd_apilist $apilist
! set width1 [font measure -*-courier-bold--normal--8-* x]
! set height1 [lindex [font metrics -*-courier-bold--normal--8-*] 5]
!
! set width2 [font measure -*-courier-bold--normal--10-* x]
! set height2 [lindex [font metrics -*-courier-bold--normal--10-*] 5]
!
! set width3 [font measure -*-courier-bold--normal--12-* x]
! set height3 [lindex [font metrics -*-courier-bold--normal--12-*] 5]
!
! set width4 [font measure -*-courier-bold--normal--14-* x]
! set height4 [lindex [font metrics -*-courier-bold--normal--14-*] 5]
!
! set width5 [font measure -*-courier-bold--normal--16-* x]
! set height5 [lindex [font metrics -*-courier-bold--normal--16-*] 5]
!
! set width6 [font measure -*-courier-bold--normal--24-* x]
! set height6 [lindex [font metrics -*-courier-bold--normal--24-*] 5]
! set width7 [font measure -*-courier-bold--normal--36-* x]
! set height7 [lindex [font metrics -*-courier-bold--normal--36-*] 5]
set tclpatch [info patchlevel]
--- 2731,2764 ----
# font sizes 8, 10, 12, 14, 16, and 24.
! # tb: user defined typefaces
! proc pdtk_pd_startup {version apilist fontname} {
! puts stderr [concat $version $apilist $fontname]
global pd_myversion pd_apilist
set pd_myversion $version
set pd_apilist $apilist
+ global pd_font1 pd_font2 pd_font3 pd_font4 pd_font5 pd_font6 pd_font7
! set pd_font1 [format -*-%s-bold--normal--8-* $fontname]
! set pd_font2 [format -*-%s-bold--normal--10-* $fontname]
! set pd_font3 [format -*-%s-bold--normal--12-* $fontname]
! set pd_font4 [format -*-%s-bold--normal--14-* $fontname]
! set pd_font5 [format -*-%s-bold--normal--16-* $fontname]
! set pd_font6 [format -*-%s-bold--normal--24-* $fontname]
! set pd_font7 [format -*-%s-bold--normal--36-* $fontname]
! set width1 [font measure $pd_font1 x]
! set height1 [lindex [font metrics $pd_font1] 5]
! set width2 [font measure $pd_font2 x]
! set height2 [lindex [font metrics $pd_font2] 5]
! set width3 [font measure $pd_font3 x]
! set height3 [lindex [font metrics $pd_font3] 5]
! set width4 [font measure $pd_font4 x]
! set height4 [lindex [font metrics $pd_font4] 5]
! set width5 [font measure $pd_font5 x]
! set height5 [lindex [font metrics $pd_font5] 5]
! set width6 [font measure $pd_font6 x]
! set height6 [lindex [font metrics $pd_font6] 5]
! set width7 [font measure $pd_font7 x]
! set height7 [lindex [font metrics $pd_font7] 5]
set tclpatch [info patchlevel]
***************
*** 2817,2821 ****
proc pdtk_pd_texteditor {stuff} {
! global edit_number
set name [format ".text%d" $edit_number]
set edit_number [expr $edit_number + 1]
--- 2844,2848 ----
proc pdtk_pd_texteditor {stuff} {
! global edit_number pd_font3
set name [format ".text%d" $edit_number]
set edit_number [expr $edit_number + 1]
***************
*** 2834,2838 ****
text $name.text -relief raised -bd 2 -height 12 -width 60 \
! -yscrollcommand "$name.scroll set" -font -*-courier-bold--normal--12-*
scrollbar $name.scroll -command "$name.text yview"
pack $name.scroll -side right -fill y
--- 2861,2865 ----
text $name.text -relief raised -bd 2 -height 12 -width 60 \
! -yscrollcommand "$name.scroll set" -font $pd_font3
scrollbar $name.scroll -command "$name.text yview"
pack $name.scroll -side right -fill y
***************
*** 3203,3207 ****
proc midi_apply {id} {
global midi_indev1 midi_indev2 midi_indev3 midi_indev4
! global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4
pd [concat pd midi-dialog \
--- 3230,3234 ----
proc midi_apply {id} {
global midi_indev1 midi_indev2 midi_indev3 midi_indev4
! global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 midi_alsain midi_alsaout
pd [concat pd midi-dialog \
***************
*** 3214,3217 ****
--- 3241,3246 ----
$midi_outdev3 \
$midi_outdev4 \
+ $midi_alsain \
+ $midi_alsaout \
\;]
}
***************
*** 3252,3259 ****
proc pdtk_midi_dialog {id indevlist indev1 indev2 indev3 indev4 \
! outdevlist outdev1 outdev2 outdev3 outdev4 longform} {
global midi_indev1 midi_indev2 midi_indev3 midi_indev4
global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4
! global midi_indevlist midi_outdevlist
set midi_indev1 $indev1
--- 3281,3288 ----
proc pdtk_midi_dialog {id indevlist indev1 indev2 indev3 indev4 \
! outdevlist outdev1 outdev2 outdev3 outdev4 longform alsa} {
global midi_indev1 midi_indev2 midi_indev3 midi_indev4
global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4
! global midi_indevlist midi_outdevlist midi_alsain midi_alsaout
set midi_indev1 $indev1
***************
*** 3267,3271 ****
set midi_indevlist $indevlist
set midi_outdevlist $outdevlist
!
toplevel $id
wm title $id {midi}
--- 3296,3302 ----
set midi_indevlist $indevlist
set midi_outdevlist $outdevlist
! set midi_alsain [llength $indevlist]
! set midi_alsaout [llength $outdevlist]
!
toplevel $id
wm title $id {midi}
***************
*** 3283,3291 ****
pack $id.buttonframe.apply -side left -expand 1
pack $id.buttonframe.ok -side left -expand 1
!
! # input device 1
frame $id.in1f
pack $id.in1f -side top
label $id.in1f.l1 -text "input device 1:"
button $id.in1f.x1 -text [lindex $indevlist $midi_indev1] \
--- 3314,3323 ----
pack $id.buttonframe.apply -side left -expand 1
pack $id.buttonframe.ok -side left -expand 1
!
frame $id.in1f
pack $id.in1f -side top
+ if {$alsa == 0} {
+ # input device 1
label $id.in1f.l1 -text "input device 1:"
button $id.in1f.x1 -text [lindex $indevlist $midi_indev1] \
***************
*** 3374,3381 ****
frame $id.longbutton
pack $id.longbutton -side top
! button $id.longbutton.b -text {use multiple devices} \
-command {pd pd midi-properties 1 \;}
pack $id.longbutton.b
}
}
--- 3406,3422 ----
frame $id.longbutton
pack $id.longbutton -side top
! button $id.longbutton.b -text {use multiple alsa devices} \
-command {pd pd midi-properties 1 \;}
pack $id.longbutton.b
}
+ }
+ if {$alsa} {
+ label $id.in1f.l1 -text "In Channels:"
+ entry $id.in1f.x1 -textvariable midi_alsain -width 4
+ pack $id.in1f.l1 $id.in1f.x1 -side left
+ label $id.in1f.l2 -text "Out Channels:"
+ entry $id.in1f.x2 -textvariable midi_alsaout -width 4
+ pack $id.in1f.l2 $id.in1f.x2 -side left
+ }
}
Index: s_path.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_path.c,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -C2 -d -r1.3 -r1.3.4.1
*** s_path.c 6 Sep 2004 20:20:36 -0000 1.3
--- s_path.c 5 Nov 2004 14:27:47 -0000 1.3.4.1
***************
*** 393,405 ****
rcargv[0] = "."; /* this no longer matters to sys_argparse() */
! for (i = 1; i < NUMARGS-1; i++)
! {
! if (fscanf(file, "%999s", buf) < 0)
! break;
! buf[1000] = 0;
! if (!(rcargv[i] = malloc(strlen(buf) + 1)))
! return (1);
! strcpy(rcargv[i], buf);
}
if (i >= NUMARGS-1)
fprintf(stderr, "startup file too long; extra args dropped\n");
--- 393,423 ----
rcargv[0] = "."; /* this no longer matters to sys_argparse() */
! /* tb: comments in pdrc file { */
! i=1;
! char c[MAXPDSTRING];
! while ( (fgets(c,MAXPDSTRING,file)) != 0)
! {
! if ( c[strlen(c)-1] !='\n')
! {
! //it is unlikely that this is ever the case
! fprintf(stderr, "startup file contains a line that's too long\n");
! while ( fgetc(file) != '\n');
! }
!
! if (c[0] != '#')
! {
! while (sscanf(c,"%999s",buf) != EOF)
! {
! buf[1000] = 0;
! if (!(rcargv[i] = malloc(strlen(buf) + 1)))
! return (1);
! strcpy(rcargv[i], buf);
! strcpy(buf,c+strlen(buf)+1);
! strcpy(c,buf);
! ++i;
! }
! }
}
+ /* } tb */
if (i >= NUMARGS-1)
fprintf(stderr, "startup file too long; extra args dropped\n");
***************
*** 485,489 ****
sprintf(buf, "pdtk_path_dialog %%s %d %d\n", sys_usestdpath, sys_verbose);
! gfxstub_new(&glob_pdobject, glob_start_path_dialog, buf);
}
--- 503,507 ----
sprintf(buf, "pdtk_path_dialog %%s %d %d\n", sys_usestdpath, sys_verbose);
! gfxstub_new(&glob_pdobject, (void *)glob_start_path_dialog, buf);
}
***************
*** 518,522 ****
sprintf(buf, "pdtk_startup_dialog %%s %d \"%s\"\n", sys_defeatrt,
sys_flags->s_name);
! gfxstub_new(&glob_pdobject, glob_start_startup_dialog, buf);
}
--- 536,540 ----
sprintf(buf, "pdtk_startup_dialog %%s %d \"%s\"\n", sys_defeatrt,
sys_flags->s_name);
! gfxstub_new(&glob_pdobject, (void *)glob_start_startup_dialog, buf);
}
Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** s_stuff.h 6 Sep 2004 20:20:36 -0000 1.5
--- s_stuff.h 5 Nov 2004 14:27:47 -0000 1.5.4.1
***************
*** 39,42 ****
--- 39,43 ----
extern int sys_nogui;
extern char *sys_guicmd;
+ extern int sys_tooltips;
EXTERN int sys_nearestfontsize(int fontsize);
***************
*** 152,155 ****
--- 153,157 ----
#define API_JACK 5
#define API_SGI 6
+ #define API_ASIO 7
#ifdef __linux__
***************
*** 233,236 ****
--- 235,247 ----
int maxndev, int devdescsize);
+ void asio_open_audio(int naudioindev, int *audioindev, int nchindev,
+ int *chindev, int naudiooutdev, int *audiooutdev,
+ int nchoutdev, int *choutdev, int srate);
+ void asio_close_audio(void);
+ void asio_getdevs(char *indevlist, int *nindevs,
+ char *outdevlist, int *noutdevs, int *canmulti,
+ int maxndev, int devdescsize);
+ int asio_send_dacs(void);
+
void sys_listmididevs(void);
void sys_set_audio_api(int whichapi);
Index: m_glob.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_glob.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** m_glob.c 6 Sep 2004 20:20:35 -0000 1.4
--- m_glob.c 5 Nov 2004 14:27:46 -0000 1.4.4.1
***************
*** 31,34 ****
--- 31,35 ----
void glob_watchdog(t_pd *dummy);
void glob_savepreferences(t_pd *dummy);
+ void glob_tooltips(t_pd *dummy, t_float f);
void alsa_resync( void);
***************
*** 109,112 ****
--- 110,115 ----
class_addmethod(glob_pdobject, (t_method)glob_savepreferences,
gensym("save-preferences"), 0);
+ class_addmethod(glob_pdobject, (t_method)glob_tooltips,
+ gensym("tooltips"), A_DEFFLOAT, 0);
#ifdef UNIX
class_addmethod(glob_pdobject, (t_method)glob_watchdog,
Index: makefile.nt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile.nt,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -C2 -d -r1.2 -r1.2.4.1
*** makefile.nt 6 Sep 2004 20:20:35 -0000 1.2
--- makefile.nt 5 Nov 2004 14:27:46 -0000 1.2.4.1
***************
*** 1,25 ****
# Makefile for PD on MSW
all: pd gui ..\bin\pd.tk ..\bin\pdsend.exe ..\bin\pdreceive.exe
! VC = "C:\Program Files\Microsoft Visual Studio\VC98"
#VC="\Program Files\DevStudio\Vc"
! INCLUDE = -I.\ -I..\Tcl\include -I$(VC)\include
! LDIR = $(VC)\lib
! LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel \
! /NODEFAULTLIB:uuid \
! $(LDIR)\libc.lib $(LDIR)\oldnames.lib $(LDIR)\kernel32.lib \
! $(LDIR)\wsock32.lib $(LDIR)\winmm.lib $(LDIR)\advapi32.lib \
! ..\bin\pthreadVC.lib
! GLIB = $(LIB) ..\bin\tcl84.lib ..\bin\tk84.lib
! CFLAGS = /nologo /W3 /DMSW /DNT /DPD /DPD_INTERNAL /DWIN32 /DWINDOWS /Ox \
! -DPA_LITTLE_ENDIAN -DUSEAPI_MMIO -DUSEAPI_PORTAUDIO -D__i386__
! LFLAGS = /nologo
! SYSSRC = s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
! s_audio_mmio.c s_midi_mmio.c
SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
--- 1,90 ----
# Makefile for PD on MSW
+ #
+ # This should ideally be started from the compiler console so that it will have
+ # the compiler, include and lib paths defined by environment settings
+ #
+ # nmake -f makefile.nt
all: pd gui ..\bin\pd.tk ..\bin\pdsend.exe ..\bin\pdreceive.exe
! #######################################################
! # define some directories where to find external stuff
! # these are ifdef'd so you can define them on the nmake command line
!
! !ifndef VC
! VC = "E:\Programme\Microsoft Visual Studio 8\VC"
#VC="\Program Files\DevStudio\Vc"
! !endif
! # PTHREADS says where the Pthreads project can be found
! !ifndef PTHREADS
! PTHREADS = ..\..\pthread
! !endif
! # Portmidi should work
! !ifndef PMDIR
! PMDIR = ..\portmidi
! !endif
!
!
! ASIODIR = g:\asiosdk2
! ASIOINC = -I$(ASIODIR)\common -I$(ASIODIR)\host -I$(ASIODIR)\host\pc
!
! # Define the TCL version with TCLVER
! # and the directory of your TCL installation with TCLDIR
!
! !ifndef TCLVER
! TCLVER = 84
! !else
! WISHDEF = -DWISHAPP="\"wish$(TCLVER).exe\""
! !endif
!
! !ifndef TCLDIR
! TCLDIR = C:\Tcl
! !ifndef TCLINC
! TCLINC = C:\Tcl\include
! !endif
!
! !ifndef TCLLIB
! TCLLIB = ..\bin
! !endif
! !else
! TCLINC = $(TCLDIR)\include
! TCLLIB = $(TCLDIR)\lib
! !endif
!
! ########################################################
!
! INC = -I.\ -I$(TCLINC) -I$(PTHREADS) $(ASIOINC)
! !ifdef VC
! INC = $(INC) -I$(VC)\include -I"E:\Programme\Microsoft Platform SDK for Windows XP SP2"\include
! !endif
!
! # the library directory might automatically be found
! #!ifdef LIB
! #LDIR =
! #!else
! # the trailing slash is important!!
! #LDIR = $(VC)\lib\
! LDIR = "E:\Programme\Microsoft Platform SDK for Windows XP SP2"\Lib/
! #!endif
!
! #LIBS = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel \
! # /NODEFAULTLIB:uuid \
! # $(LDIR)libcmt.lib $(LDIR)oldnames.lib $(LDIR)kernel32.lib \
! # $(LDIR)wsock32.lib $(LDIR)winmm.lib $(PTHREADS)\pthreadVC.lib
!
! LIBS = $(LDIR)\wsock32.lib $(LDIR)\winmm.lib $(PTHREADS)\pthreadVC.lib \
! $(LDIR)\ole32.lib $(LDIR)\user32.lib $(LDIR)\advapi32.lib
!
! GLIB = $(LIBS) $(TCLLIB)\tcl$(TCLVER).lib $(TCLLIB)\tk$(TCLVER).lib
! CFLAGS = /nologo /W3 /DMSW /DNT /DPD /DPD_INTERNAL /DWIN32 /DWINDOWS \
! -DPA_LITTLE_ENDIAN -DUSEAPI_ASIO -DUSEAPI_MMIO -DUSEAPI_PORTAUDIO \
! $(WISHDEF) /ZI /DDONTUSESIMD
! LFLAGS = /nologo /DEBUG /MAP /PROFILE
!
! SYSSRC = s_audio_pa.c s_audio_mmio.c s_midi_pm.c
SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
***************
*** 36,66 ****
x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \
x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c d_soundfile.c \
$(SYSSRC)
! PADIR = ..\portaudio
INCPA = -I$(PADIR) -I$(PADIR)\pa_common -I$(PADIR)\pablio -I..\lib\asio
SRCPA = $(PADIR)/pa_common/pa_lib.c $(PADIR)/pa_common/pa_trace.c
SRCASIO = $(PADIR)/pa_asio/pa_asio.cpp
! ASIOLIB = $(LDIR)\user32.lib $(LDIR)\gdi32.lib $(LDIR)\winspool.lib $(LDIR)\comdlg32.lib \
! $(LDIR)\advapi32.lib $(LDIR)\shell32.lib $(LDIR)\ole32.lib $(LDIR)\oleaut32.lib $(LDIR)\uuid.lib \
! $(LDIR)\odbc32.lib $(LDIR)\odbccp32.lib ..\lib\asio\asiolib.lib
- PAOBJ = pa_lib.obj pa_trace.obj pa_asio.obj
! OBJC = $(SRC:.c=.obj) $(PAOBJ)
GSRC = t_main.c t_tkcmd.c
! GOBJ = $(GSRC:.c=.obj)
! .PHONY: pd gui
! ALLCF = $(CFLAGS) $(INCLUDE) $(INCASIO) $(INCPA) $(INCPM) /D_WINDOWS /DPA_NO_DS
.c.obj:
cl /c $(ALLCF) /Tc$*.c
pd: ..\bin\pd.exe
--- 101,146 ----
x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \
x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c d_soundfile.c \
+ m_simd.c m_simd_sse_vc.c m_simd_sse_gcc.c m_simd_ve_gcc.c \
$(SYSSRC)
! PADIR = ..\portaudio_v18
INCPA = -I$(PADIR) -I$(PADIR)\pa_common -I$(PADIR)\pablio -I..\lib\asio
SRCPA = $(PADIR)/pa_common/pa_lib.c $(PADIR)/pa_common/pa_trace.c
SRCASIO = $(PADIR)/pa_asio/pa_asio.cpp
+ PAOBJ = pa_lib.obj pa_trace.obj pa_asio.obj pablio.obj pa_asio.obj \
+ ringbuffer.obj
! INCPM = -I$(PMDIR)\pm_common -I$(PMDIR)\pm_win -I$(PMDIR)\porttime
! SRCPM = \
! $(PMDIR)/pm_common/portmidi.c \
! $(PMDIR)/pm_common/pmutil.c \
! $(PMDIR)/pm_win/pmwin.c \
! $(PMDIR)/pm_win/pmwinmm.c \
! $(PMDIR)/porttime/porttime.c \
! $(PMDIR)/porttime/ptwinmm.c \
+ PMOBJ = portmidi.obj pmutil.obj pmwin.obj pmwinmm.obj porttime.obj ptwinmm.obj
+ OBJC = $(SRC:.c=.obj) $(PMOBJ) $(PAOBJ)
! ASIOBJ = s_audio_asio.obj asio.obj asiolist.obj asiodrivers.obj
GSRC = t_main.c t_tkcmd.c
! GOBJ = $(GSRC:.c=.obj).PHONY: pd gui
! ALLCF = $(CFLAGS) $(INC) $(INCPA) $(INCPM) /D_WINDOWS
.c.obj:
cl /c $(ALLCF) /Tc$*.c
+ ASIOBJ:
+ cl /c $(ALLCF) $(ASIOINC) s_audio_asio.cpp
+ cl /c $(ALLCF) $(ASIOINC) $(ASIODIR)/common/asio.cpp
+ cl /c $(ALLCF) $(ASIOINC) $(ASIODIR)/host/pc/asiolist.cpp
+ cl /c $(ALLCF) $(ASIOINC) $(ASIODIR)/host/asiodrivers.cpp
+
+
pd: ..\bin\pd.exe
***************
*** 69,77 ****
..\bin\pd.exe: s_entry.obj ..\bin\pd.lib
link $(LFLAGS) /out:..\bin\pd.exe /INCREMENTAL:NO s_entry.obj \
! ..\bin\pd.lib $(LIB) $(ASIOLIB)
! ..\bin\pd.dll ..\bin\pd.lib: $(OBJC) $(OBJASIO)
link $(LFLAGS) /dll /export:sys_main /out:..\bin\pd.dll $(OBJC) \
! $(OBJASIO) $(LIB) $(ASIOLIB)
..\bin\pdtcl.dll: t_tkcmd.obj
--- 149,157 ----
..\bin\pd.exe: s_entry.obj ..\bin\pd.lib
link $(LFLAGS) /out:..\bin\pd.exe /INCREMENTAL:NO s_entry.obj \
! ..\bin\pd.lib $(LIBS)
! ..\bin\pd.dll ..\bin\pd.lib: $(OBJC) ASIOBJ
link $(LFLAGS) /dll /export:sys_main /out:..\bin\pd.dll $(OBJC) \
! $(ASIOBJ) $(LIBS) /PDB:..\bin\pddll.pdb
..\bin\pdtcl.dll: t_tkcmd.obj
***************
*** 83,104 ****
..\bin\pdsend.exe: u_pdsend.obj
link $(LFLAGS) /out:..\bin\pdsend.exe /INCREMENTAL:NO u_pdsend.obj \
! $(LIB)
..\bin\pdreceive.exe: u_pdreceive.obj
link $(LFLAGS) /out:..\bin\pdreceive.exe /INCREMENTAL:NO u_pdreceive.obj \
! $(LIB)
# explicit rules to compile portaudio sources:
pa_lib.obj: $(PADIR)\pa_common\pa_lib.c
! cl /c $(ALLCF) $(PADIR)\pa_common\pa_lib.c
pa_trace.obj: $(PADIR)\pa_common\pa_trace.c
! cl /c $(ALLCF) $(PADIR)\pa_common\pa_trace.c
! pablio_pd.obj: $(PADIR)\pablio\pablio_pd.c
! cl /c $(ALLCF) $(PADIR)\pablio\pablio_pd.c
! ringbuffer_pd.obj: $(PADIR)\pablio\ringbuffer_pd.c
! cl /c $(ALLCF) $(PADIR)\pablio\ringbuffer_pd.c
!
pa_asio.obj: $(PADIR)\pa_asio\pa_asio.cpp
! cl /c $(ALLCF) $(PADIR)\pa_asio\pa_asio.cpp
# the following should also clean up "bin" but it doesn't because "bin" holds
--- 163,213 ----
..\bin\pdsend.exe: u_pdsend.obj
link $(LFLAGS) /out:..\bin\pdsend.exe /INCREMENTAL:NO u_pdsend.obj \
! $(LIBS)
..\bin\pdreceive.exe: u_pdreceive.obj
link $(LFLAGS) /out:..\bin\pdreceive.exe /INCREMENTAL:NO u_pdreceive.obj \
! $(LIBS)
# explicit rules to compile portaudio sources:
pa_lib.obj: $(PADIR)\pa_common\pa_lib.c
! cl /c $(ALLCF) $**
pa_trace.obj: $(PADIR)\pa_common\pa_trace.c
! cl /c $(ALLCF) $**
! pa_stream.obj: $(PADIR)\pa_common\pa_stream.c
! cl /c $(ALLCF) $**
! pa_front.obj: $(PADIR)\pa_common\pa_front.c
! cl /c $(ALLCF) $**
! pa_allocation.obj: $(PADIR)\pa_common\pa_allocation.c
! cl /c $(ALLCF) $**
! pa_converters.obj: $(PADIR)\pa_common\pa_converters.c
! cl /c $(ALLCF) $**
! pa_cpuload.obj: $(PADIR)\pa_common\pa_cpuload.c
! cl /c $(ALLCF) $**
! pa_dither.obj: $(PADIR)\pa_common\pa_dither.c
! cl /c $(ALLCF) $**
! pa_process.obj: $(PADIR)\pa_common\pa_process.c
! cl /c $(ALLCF) $**
! pa_skeleton.obj: $(PADIR)\pa_common\pa_skeleton.c
! cl /c $(ALLCF) $**
! pa_winutil.obj: $(PADIR)\pa_win\pa_winutil.c
! cl /c $(ALLCF) $**
pa_asio.obj: $(PADIR)\pa_asio\pa_asio.cpp
! cl /c $(ALLCF) $(ASIOINC) $**
! pablio.obj: $(PADIR)\pablio\pablio.c
! cl /c $(ALLCF) $**
! ringbuffer.obj: $(PADIR)\pablio\ringbuffer.c
! cl /c $(ALLCF) $**
! portmidi.obj: $(PMDIR)\pm_common\portmidi.c
! cl /c $(ALLCF) $**
! pmutil.obj: $(PMDIR)\pm_common\pmutil.c
! cl /c $(ALLCF) $**
! pmwin.obj: $(PMDIR)\pm_win\pmwin.c
! cl /c $(ALLCF) $**
! pmwinmm.obj: $(PMDIR)\pm_win\pmwinmm.c
! cl /c $(ALLCF) $**
! porttime.obj: $(PMDIR)\porttime\porttime.c
! cl /c $(ALLCF) $**
! ptwinmm.obj: $(PMDIR)\porttime\ptwinmm.c
! cl /c $(ALLCF) $**
# the following should also clean up "bin" but it doesn't because "bin" holds
Index: makefile
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -C2 -d -r1.6 -r1.6.4.1
*** makefile 22 Feb 2004 16:00:02 -0000 1.6
--- makefile 5 Nov 2004 14:27:46 -0000 1.6.4.1
***************
*** 1,3 ****
! all:
! ./configure
! make
--- 1,188 ----
! VPATH = ../obj:./
! OBJ_DIR = ../obj
! BIN_DIR = ../bin
! PDEXEC = $(BIN_DIR)/pd
! EXT= pd_linux
! GUINAME= pd-gui
!
! CC = gcc
!
! INSTALL_PREFIX = /usr/local
! GFLAGS = -DINSTALL_PREFIX=\"$(INSTALL_PREFIX)\"
!
! MANDIR = ${prefix}/man
!
! MORECFLAGS = -DDL_OPEN -DPA_USE_OSS -DPA_LITTLE_ENDIAN -DUNIX -DUNISTD -DUSEAPI_OSS -I../portaudio/pa_common -I../portaudio/pablio -I../portaudio/portmidi-macosx -fno-strict-aliasing -DPA_USE_ALSA -DUSEAPI_ALSA -DUSEAPI_JACK -DGARRAY_THREAD_LOCK -DTHREADED_SF -D_GNU_SOURCE -DDEBUG
!
! INCLUDE = -I.
! GINCLUDE = $(INCLUDE)
! GLIB = -ltk8.4 -ltcl8.4 -lX11 -L/usr/X11R6/lib -lrt -ljack -ljack
!
! LDFLAGS = -Wl,-export-dynamic -lasound -lrt -ljack
! LIB = -ldl -lm -lpthread -lasound
!
! OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer -mmmx -msse -mfpmath=sse
! WARN_CFLAGS = -Wall -W -Wstrict-prototypes \
! -Wno-unused -Wno-parentheses -Wno-switch
! ARCH_CFLAGS = -DPD
!
! CFLAGS = -g -O2 $(ARCH_CFLAGS) $(WARN_CFLAGS) $(OPT_CFLAGS) $(MORECFLAGS)
!
! # the sources
!
! SYSSRC += s_midi_oss.c s_audio_oss.c s_audio_alsa.c s_audio_alsamm.c s_audio_jack.c
!
! SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
! g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
! g_all_guis.c g_bang.c g_hdial.c g_hslider.c g_mycanvas.c g_numbox.c \
! g_toggle.c g_vdial.c g_vslider.c g_vumeter.c \
! m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \
! m_conf.c m_glob.c m_sched.c \
! s_main.c s_inter.c s_file.c s_print.c \
! s_loader.c s_path.c s_entry.c s_audio.c s_midi.c \
! d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \
! d_math.c d_fft.c d_mayer_fft.c d_fftroutine.c d_array.c d_global.c \
! d_delay.c d_resample.c \
! x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \
! x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c d_soundfile.c \
! $(SYSSRC) m_simd.c m_simd_sse_gcc.c
!
!
! OBJ = $(SRC:.c=.o)
!
! GSRC = t_main.c t_tkcmd.c
!
! GOBJ = $(GSRC:.c=.o)
!
! #
! # ------------------ targets ------------------------------------
! #
!
! .PHONY: pd gui externs all
!
! all: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
! $(BIN_DIR)/pdreceive $(BIN_DIR)/pd.tk externs
!
! bin: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
! $(BIN_DIR)/pdreceive $(BIN_DIR)/pd.tk
!
! $(OBJ) : %.o : %.c
! $(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
!
! $(GOBJ) : %.o : %.c
! $(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
!
! pd: $(PDEXEC)
!
! gui: $(BIN_DIR)/$(GUINAME)
!
! pd-watchdog: $(BIN_DIR)/pd-watchdog
!
! $(BIN_DIR)/pd-watchdog: s_watchdog.c
! $(CC) -O2 $(STRIPFLAG) -o $(BIN_DIR)/pd-watchdog s_watchdog.c
!
! $(BIN_DIR)/pdsend: u_pdsend.c
! $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdsend u_pdsend.c
!
! $(BIN_DIR)/pdreceive: u_pdreceive.c
! $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdreceive u_pdreceive.c
!
! $(PDEXEC): $(OBJ)
! cd ../obj; $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) \
! $(LIB)
!
! $(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
! cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) \
! $(GLIB)
!
! $(BIN_DIR)/pd.tk: u_main.tk
! echo set pd_nt 0 > $(BIN_DIR)/pd.tk
! grep -v "set pd_nt" < u_main.tk >> $(BIN_DIR)/pd.tk
!
! #this is for Max OSX only...
! $(BIN_DIR)/pdtcl: $(GOBJ) $(GSRC)
! cd ../obj; libtool -dynamic -o $(BIN_DIR)/pdtcl $(GOBJ) \
! ../../Frameworks/Tk.framework/Versions/Current/Tk \
! ../../Frameworks/Tcl.framework/Versions/Current/Tcl \
! /usr/lib/libSystem.B.dylib
!
! externs:
! # cd ../extra/bonk~;make
! # cd ../extra/choice;make
! # cd ../extra/expr~;make
! # cd ../extra/fiddle~;make
! # cd ../extra/loop~;make
! # cd ../extra/lrshift~;make
! # cd ../extra/pique;make
!
! INSTDIR = $(DESTDIR)/$(INSTALL_PREFIX)
! MANINSTDIR = $(DESTDIR)/$(INSTALL_PREFIX)/$(MANDIR)
! BINARYMODE=-m755
!
! install: all
! install -d $(INSTDIR)/lib/pd/bin
! install $(BIN_DIR)/$(GUINAME) $(INSTDIR)/lib/pd/bin/$(GUINAME)
! install $(BIN_DIR)/pd-watchdog $(INSTDIR)/lib/pd/bin/pd-watchdog
! install -m644 $(BIN_DIR)/pd.tk $(INSTDIR)/lib/pd/bin/pd.tk
! install -d $(INSTDIR)/bin
! install $(BINARYMODE) $(PDEXEC) $(INSTDIR)/bin/pd
! install -m755 $(BIN_DIR)/pdsend $(INSTDIR)/bin/pdsend
! install -m755 $(BIN_DIR)/pdreceive $(INSTDIR)/bin/pdreceive
! cp -pr ../doc ../extra $(INSTDIR)/lib/pd/
! rm -f $(INSTDIR)/extra/*/*.o
! install -d $(INSTDIR)/include
! install -m644 m_pd.h $(INSTDIR)/include/m_pd.h
! install -d $(MANINSTDIR)/man1
! gzip < ../man/pd.1 > $(MANINSTDIR)/man1/pd.1.gz
! chmod 644 $(MANINSTDIR)/man1/pd.1.gz
! gzip < ../man/pdsend.1 > $(MANINSTDIR)/man1/pdsend.1.gz
! chmod 644 $(MANINSTDIR)/man1/pdsend.1.gz
! gzip < ../man/pdreceive.1 > $(MANINSTDIR)/man1/pdreceive.1.gz
! chmod 644 $(MANINSTDIR)/man1/pdreceive.1.gz
!
! local-clean:
! -rm -f ../obj/* $(BIN_DIR)/pd $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
! $(BIN_DIR)/pdreceive $(BIN_DIR)/pd-watchdog m_stamp.c
! -rm -f `find ../portaudio ../portaudio_v18 -name "*.o"`
! -rm -f *~
! -(cd ../doc/6.externs; rm -f *.pd_linux)
! -rm -f makefile.dependencies
! touch makefile.dependencies
! chmod 666 makefile.dependencies
!
! extra-clean:
! -rm -f `find ../extra/ -name "*.pd_*"`
! -rm -f tags
!
! clean: extra-clean local-clean
!
! distclean: clean
! rm -rf config.cache config.log config.status makefile tags \
! autom4te-*.cache
! echo all: > makefile
! echo -e "\t./configure" >> makefile
! echo -e "\tmake" >> makefile
!
! tags: $(SRC) $(GSRC); ctags *.[ch]
!
! depend:
! $(CC) $(INCLUDE) $(CFLAGS) -M $(SRC) > makefile.dependencies
!
! uninstall:
! rm -f -r $(INSTDIR)/lib/pd
! rm -f $(INSTDIR)/bin/pd
! rm -f $(INSTDIR)/bin/pdsend
! rm -f $(INSTDIR)/bin/pdreceive
! rm -f $(INSTDIR)/include/m_pd.h
! rm -f $(MANINSTDIR)/man1/pd.1.gz
! rm -f $(MANINSTDIR)/man1/pdsend.1.gz
! rm -f $(MANINSTDIR)/man1/pdreceive.1.gz
!
! include makefile.dependencies
!
!
!
!
!
!
!
Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/notes.txt,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -C2 -d -r1.6 -r1.6.4.1
*** notes.txt 6 Sep 2004 22:37:26 -0000 1.6
--- notes.txt 5 Nov 2004 14:27:46 -0000 1.6.4.1
***************
*** 29,32 ****
--- 29,33 ----
sprout inlets/outlets on objects whose creation failed.
uploaded to CVS
+ bug fix: click on minaturized subpatch fails to "vis" it
doc:
***************
*** 36,40 ****
problems:
- click on minaturized subpatch fails to "vis" it
startup flags need to handle spaces, duh.
test MIDI I/O on all platforms, inc. sysex...
--- 37,40 ----
Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** g_text.c 6 Sep 2004 22:37:26 -0000 1.5
--- g_text.c 5 Nov 2004 14:27:46 -0000 1.5.4.1
***************
*** 110,114 ****
if (!x)
{
-
/* LATER make the color reflect this */
x = (t_text *)pd_new(text_class);
--- 110,113 ----
***************
*** 1172,1177 ****
glist_getcanvas(glist), tag,
x1, y1, x2, y1, x2, y2, x1, y2, x1, y1);
! sys_vgui(".x%lx.c itemconfigure -dash %s\n",
! glist_getcanvas(glist), pattern);
}
}
--- 1171,1176 ----
glist_getcanvas(glist), tag,
x1, y1, x2, y1, x2, y2, x1, y2, x1, y1);
! sys_vgui(".x%lx.c itemconfigure %sR -dash %s\n",
! glist_getcanvas(glist), tag, pattern);
}
}
Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -C2 -d -r1.7 -r1.7.4.1
*** s_main.c 6 Sep 2004 22:37:26 -0000 1.7
--- s_main.c 5 Nov 2004 14:27:47 -0000 1.7.4.1
***************
*** 8,12 ****
*/
! char pd_version[] = "Pd version 0.38 TEST 6\n";
char pd_compiletime[] = __TIME__;
char pd_compiledate[] = __DATE__;
--- 8,12 ----
*/
! char pd_version[] = "Pd version 0.38 TEST7 devel\n";
char pd_compiletime[] = __TIME__;
char pd_compiledate[] = __DATE__;
***************
*** 32,35 ****
--- 32,40 ----
#endif
+ #ifdef DAZ
+ #define _MM_DENORM_ZERO_ON 0x0040
+ #include <xmmintrin.h>
+ #endif
+
void pd_init(void);
int sys_argparse(int argc, char **argv);
***************
*** 41,44 ****
--- 46,53 ----
void alsa_adddev(char *name);
+ #ifdef THREADED_SF
+ void sys_start_sfthread(void);
+ #endif /* THREDED_SF */
+
int sys_debuglevel;
int sys_verbose;
***************
*** 66,69 ****
--- 75,79 ----
int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
+ char sys_font[] = "courier"; /* tb: font name */
static int sys_main_srate;
static int sys_main_advance;
***************
*** 280,283 ****
--- 290,307 ----
if (sys_startgui(sys_guidir->s_name)) /* start the gui */
return(1);
+
+ /* tb: { *
+ * start the soundfiler helper thread */
+ #ifdef THREADED_SF
+ sys_start_sfthread();
+ #endif /* THREDED_SF */
+
+ /* try to set ftz and daz */
+ #ifdef DAZ
+ _mm_setcsr(_MM_FLUSH_ZERO_ON | _MM_MASK_UNDERFLOW | _mm_getcsr());
+ _mm_setcsr(_MM_DENORM_ZERO_ON | _mm_getcsr());
+ #endif /* DAZ */
+ /* } tb */
+
/* jsarlo { */
if (sys_externalschedlib)
***************
*** 347,350 ****
--- 371,378 ----
#endif
+ #ifdef USEAPI_ASIO
+ "-asio_native -- use native ASIO API\n",
+ #endif
+
#ifdef USEAPI_PORTAUDIO
#ifdef MSW
***************
*** 377,380 ****
--- 405,409 ----
"-lib <file> -- load object library(s)\n",
"-font <n> -- specify default font size in points\n",
+ "-typeface <name> -- specify default font (default: courier)\n",
"-verbose -- extra printout on startup and when searching for files\n",
"-version -- don't run Pd; just print out which version it is \n",
***************
*** 646,649 ****
--- 675,686 ----
}
#endif
+ #ifdef USEAPI_ASIO
+ else if (!strcmp(*argv, "-asio_native"))
+ {
+ sys_set_audio_api(API_ASIO);
+ sys_mmio = 0;
+ argc--; argv++;
+ }
+ #endif
#ifdef USEAPI_MMIO
else if (!strcmp(*argv, "-mmio"))
***************
*** 731,734 ****
--- 768,779 ----
argv += 2;
}
+ /* tb: font name { */
+ else if (!strcmp(*argv, "-typeface") && argc > 1)
+ {
+ strcpy(sys_font,*(argv+1));
+ argc -= 2;
+ argv += 2;
+ }
+ /* } tb */
else if (!strcmp(*argv, "-verbose"))
{
Index: g_io.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_io.c,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -C2 -d -r1.3 -r1.3.4.1
*** g_io.c 6 Sep 2004 20:20:34 -0000 1.3
--- g_io.c 5 Nov 2004 14:27:46 -0000 1.3.4.1
***************
*** 24,31 ****
--- 24,33 ----
#include "m_pd.h"
+ #include "m_simd.h"
#include "g_canvas.h"
#include <string.h>
void signal_setborrowed(t_signal *sig, t_signal *sig2);
void signal_makereusable(t_signal *sig);
+ void inlet_sethelp(t_inlet* i,t_symbol* s);
/* ------------------------- vinlet -------------------------- */
***************
*** 54,58 ****
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, 0);
x->x_bufsize = 0;
x->x_buf = 0;
--- 56,60 ----
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, 0, s);
x->x_bufsize = 0;
x->x_buf = 0;
***************
*** 128,131 ****
--- 130,163 ----
}
+ /* tb: vectorized */
+ t_int *vinlet_perf8(t_int *w)
+ {
+ t_vinlet *x = (t_vinlet *)(w[1]);
+ t_float *out = (t_float *)(w[2]);
+ int n = (int)(w[3]);
+ t_float *in = x->x_read;
+
+ for (; n; n -= 8, in += 8, out += 8)
+ {
+ out[0] = in[0]; out[1] = in[1]; out[2] = in[2]; out[3] = in[3];
+ out[4] = in[4]; out[5] = in[5]; out[6] = in[6]; out[7] = in[7];
+ }
+
+ if (in == x->x_endbuf) in = x->x_buf;
+ x->x_read = in;
+ return (w+4);
+ }
+
+ /* T.Grill: SIMD version */
+ t_int *vinlet_perfsimd(t_int *w)
+ {
+ t_vinlet *x = (t_vinlet *)(w[1]);
+ t_float *in = x->x_read;
+ copyvec_simd((t_float *)w[2],in,w[3]);
+ if (in == x->x_endbuf) in = x->x_buf;
+ x->x_read = in;
+ return (w+4);
+ }
+
static void vinlet_dsp(t_vinlet *x, t_signal **sp)
{
***************
*** 141,145 ****
else
{
! dsp_add(vinlet_perform, 3, x, outsig->s_vec, outsig->s_n);
x->x_read = x->x_buf;
}
--- 173,184 ----
else
{
! const int n = outsig->s_n;
! if(n&7)
! dsp_add(vinlet_perform, 3, x, outsig->s_vec,n);
! else if(SIMD_CHECK1(n,outsig->s_vec))
! /* if the outsig->s_vec is aligned the x->x_read will also be... */
! dsp_add(vinlet_perfsimd, 3, x, outsig->s_vec,n);
! else
! dsp_add(vinlet_perf8, 3, x, outsig->s_vec,n);
x->x_read = x->x_buf;
}
***************
*** 212,217 ****
{
t_float *buf = x->x_buf;
! t_freebytes(buf, oldbufsize * sizeof(*buf));
! buf = (t_float *)t_getbytes(bufsize * sizeof(*buf));
memset((char *)buf, 0, bufsize * sizeof(*buf));
x->x_bufsize = bufsize;
--- 251,256 ----
{
t_float *buf = x->x_buf;
! buf = (t_float *)resizealignedbytes(buf,oldbufsize * sizeof(*buf),
! bufsize * sizeof(*buf));
memset((char *)buf, 0, bufsize * sizeof(*buf));
x->x_bufsize = bufsize;
***************
*** 251,261 ****
}
- //static void *vinlet_newsig(void)
static void *vinlet_newsig(t_symbol *s)
{
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, &s_signal);
! x->x_endbuf = x->x_buf = (t_float *)getbytes(0);
x->x_bufsize = 0;
x->x_directsignal = 0;
--- 290,299 ----
}
static void *vinlet_newsig(t_symbol *s)
{
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, &s_signal,s);
! x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
x->x_bufsize = 0;
x->x_directsignal = 0;
***************
*** 388,398 ****
if (tot < 5) post("-buf %lx endbuf %lx", x->x_buf, x->x_endbuf);
#endif
while (n--)
{
*out++ += *in++;
! if (out == x->x_endbuf) out = x->x_buf;
}
outwas += x->x_hop;
! if (outwas >= x->x_endbuf) outwas = x->x_buf;
x->x_write = outwas;
return (w+4);
--- 426,437 ----
if (tot < 5) post("-buf %lx endbuf %lx", x->x_buf, x->x_endbuf);
#endif
+ t_float *end = x->x_endbuf;
while (n--)
{
*out++ += *in++;
! if (out == end) out = x->x_buf;
}
outwas += x->x_hop;
! if (outwas >= end) outwas = x->x_buf;
x->x_write = outwas;
return (w+4);
***************
*** 422,426 ****
{
t_voutlet *x = (t_voutlet *)(w[1]);
- // t_float *dummy = (t_float *)(w[2]);
int n = (int)(w[2]);
t_float *in = x->x_empty;
--- 461,464 ----
***************
*** 506,515 ****
re_parentvecsize = 1;
}
- // bigperiod = (downsample * myvecsize)/(upsample * parentvecsize); /* IOhannes */
bigperiod = myvecsize/re_parentvecsize; /* IOhannes */
if (!bigperiod) bigperiod = 1;
epilogphase = phase & (bigperiod - 1);
blockphase = (phase + period - 1) & (bigperiod - 1) & (- period);
- // bufsize = parentvecsize * upsample; /* IOhannes */
bufsize = re_parentvecsize; /* IOhannes */
if (bufsize < myvecsize) bufsize = myvecsize;
--- 544,551 ----
***************
*** 517,522 ****
{
t_float *buf = x->x_buf;
! t_freebytes(buf, oldbufsize * sizeof(*buf));
! buf = (t_float *)t_getbytes(bufsize * sizeof(*buf));
memset((char *)buf, 0, bufsize * sizeof(*buf));
x->x_bufsize = bufsize;
--- 553,557 ----
{
t_float *buf = x->x_buf;
! buf = (t_float *)resizealignedbytes(buf,oldbufsize * sizeof(*buf),bufsize * sizeof(*buf));
memset((char *)buf, 0, bufsize * sizeof(*buf));
x->x_bufsize = bufsize;
***************
*** 569,573 ****
&x->x_obj.ob_pd, &s_signal);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
! x->x_endbuf = x->x_buf = (t_float *)getbytes(0);
x->x_bufsize = 0;
--- 604,608 ----
&x->x_obj.ob_pd, &s_signal);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
! x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
x->x_bufsize = 0;
Index: s_file.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_file.c,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -C2 -d -r1.2 -r1.2.4.1
*** s_file.c 6 Sep 2004 20:20:35 -0000 1.2
--- s_file.c 5 Nov 2004 14:27:47 -0000 1.2.4.1
***************
*** 85,91 ****
static int sys_getpreference(const char *key, char *value, int size)
{
if (!sys_prefbuf)
return (0);
- char searchfor[80], *where, *whereend;
sprintf(searchfor, "\n%s:", key);
where = strstr(sys_prefbuf, searchfor);
--- 85,91 ----
static int sys_getpreference(const char *key, char *value, int size)
{
+ char searchfor[80], *where, *whereend;
if (!sys_prefbuf)
return (0);
sprintf(searchfor, "\n%s:", key);
where = strstr(sys_prefbuf, searchfor);
***************
*** 158,162 ****
static int sys_getpreference(const char *key, char *value, int size)
{
! HKEY *hkey;
DWORD bigsize = size;
char *val2 = value;
--- 158,162 ----
static int sys_getpreference(const char *key, char *value, int size)
{
! HKEY **hkey;
DWORD bigsize = size;
char *val2 = value;
***************
*** 193,197 ****
static void sys_putpreference(const char *key, const char *value)
{
! HKEY *hkey;
LONG err = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"Software\\Pd", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,
--- 193,197 ----
static void sys_putpreference(const char *key, const char *value)
{
! HKEY **hkey;
LONG err = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"Software\\Pd", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,
Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** s_audio.c 6 Sep 2004 20:20:35 -0000 1.5
--- s_audio.c 5 Nov 2004 14:27:46 -0000 1.5.4.1
***************
*** 137,147 ****
if (sys_soundin)
! free(sys_soundin);
! sys_soundin = (t_float *)malloc(inbytes);
memset(sys_soundin, 0, inbytes);
if (sys_soundout)
! free(sys_soundout);
! sys_soundout = (t_float *)malloc(outbytes);
memset(sys_soundout, 0, outbytes);
--- 137,147 ----
if (sys_soundin)
! freealignedbytes(sys_soundin,inbytes);
! sys_soundin = (t_float *)getalignedbytes(inbytes);
memset(sys_soundin, 0, inbytes);
if (sys_soundout)
! freealignedbytes(sys_soundout,outbytes);
! sys_soundout = (t_float *)getalignedbytes(outbytes);
memset(sys_soundout, 0, outbytes);
***************
*** 342,345 ****
--- 342,351 ----
else
#endif
+ #ifdef USEAPI_ASIO
+ if (sys_audioapi == API_ASIO)
+ asio_open_audio(naudioindev, audioindev, nchindev, chindev,
+ naudiooutdev, audiooutdev, nchoutdev, choutdev, rate);
+ else
+ #endif
post("unknown audio API specified");
}
***************
*** 396,400 ****
else
#endif
! post("sys_close_audio: unknown API %d", sys_audioapi);
sys_inchannels = sys_outchannels = 0;
}
--- 402,411 ----
else
#endif
! #ifdef USEAPI_ASIO
! if (sys_audioapi == API_ASIO)
! asio_close_audio();
! else
! #endif
! post("sys_close_audio: unknown API %d", sys_audioapi);
sys_inchannels = sys_outchannels = 0;
}
***************
*** 469,472 ****
--- 480,488 ----
else
#endif
+ #ifdef USEAPI_ASIO
+ if (sys_audioapi == API_ASIO)
+ return (asio_send_dacs());
+ else
+ #endif
post("unknown API");
return (0);
***************
*** 564,567 ****
--- 580,591 ----
else
#endif
+ #ifdef USEAPI_ASIO
+ if (sys_audioapi == API_ASIO)
+ {
+ asio_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
+ maxndev, devdescsize);
+ }
+ else
+ #endif
{
/* this shouldn't happen once all the above get filled in. */
***************
*** 688,692 ****
rate, advance, canmulti, (flongform != 0));
gfxstub_deleteforkey(0);
! gfxstub_new(&glob_pdobject, glob_audio_properties, buf);
}
--- 712,716 ----
rate, advance, canmulti, (flongform != 0));
gfxstub_deleteforkey(0);
! gfxstub_new(&glob_pdobject, (void *)glob_audio_properties, buf);
}
***************
*** 853,856 ****
--- 877,883 ----
sprintf(buf + strlen(buf), "{OSS %d} ", API_OSS); n++;
#endif
+ #ifdef USEAPI_ASIO
+ sprintf(buf + strlen(buf), "{ASIO %d} ", API_ASIO); n++;
+ #endif
#ifdef USEAPI_MMIO
sprintf(buf + strlen(buf), "{\"standard (MMIO)\" %d} ", API_MMIO); n++;
Index: g_graph.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -C2 -d -r1.3 -r1.3.4.1
*** g_graph.c 6 Sep 2004 20:20:33 -0000 1.3
--- g_graph.c 5 Nov 2004 14:27:45 -0000 1.3.4.1
***************
*** 259,265 ****
! t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *s)
{
t_inlet *ip = inlet_new(&x->gl_obj, who, s, 0);
if (!x->gl_loading && x->gl_owner && glist_isvisible(x->gl_owner))
{
--- 259,266 ----
! t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *s, t_symbol* h)
{
t_inlet *ip = inlet_new(&x->gl_obj, who, s, 0);
+ inlet_settip(ip,h);
if (!x->gl_loading && x->gl_owner && glist_isvisible(x->gl_owner))
{
Index: g_canvas.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.h,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -C2 -d -r1.3 -r1.3.4.1
*** g_canvas.h 6 Sep 2004 20:20:33 -0000 1.3
--- g_canvas.h 5 Nov 2004 14:27:45 -0000 1.3.4.1
***************
*** 37,44 ****
--- 37,50 ----
in future releases. The public (stable) API is in m_pd.h. */
+ #ifndef __G_CANVAS_H
+
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
extern "C" {
#endif
+ #ifdef GARRAY_THREAD_LOCK
+ #include <pthread.h> /* TB: for t_garray */
+ #endif
+
/* --------------------- geometry ---------------------------- */
#define IOWIDTH 7 /* width of an inlet/outlet in pixels */
***************
*** 219,222 ****
--- 225,247 ----
};
+ struct _garray
+ {
+ t_gobj x_gobj;
+ t_glist *x_glist;
+ t_array x_array; /* actual array; note only 4 fields used as below */
+ t_symbol *x_name;
+ t_symbol *x_realname; /* name with "$" expanded */
+ t_float x_firstx; /* X value of first item */
+ t_float x_xinc; /* X increment */
+ char x_usedindsp; /* true if some DSP routine is using this */
+ char x_saveit; /* true if we should save this with parent */
+ char x_drawasrects; /* draw as rectangles, not a polygon */
+ double x_lastupdate; /* T.Grill - clock_getlogicaltime() of last array update */
+ #ifdef GARRAY_THREAD_LOCK
+ pthread_mutex_t * x_mutex; /* TB: mutex */
+ #endif
+ };
+
+
/* structure for traversing all the connections in a glist */
typedef struct _linetraverser
***************
*** 447,451 ****
EXTERN void canvas_redraw(t_canvas *x);
! EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym);
EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
EXTERN t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym);
--- 472,477 ----
EXTERN void canvas_redraw(t_canvas *x);
! EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym,
! t_symbol* h);
EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
EXTERN t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym);
***************
*** 603,604 ****
--- 629,636 ----
}
#endif
+
+ #else
+ #define __G_CANVAS_H
+
+ #endif
+
Index: g_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** g_canvas.c 6 Sep 2004 20:20:33 -0000 1.4
--- g_canvas.c 5 Nov 2004 14:27:45 -0000 1.4.4.1
***************
*** 724,729 ****
if (flag)
{
/* test if we're already visible and toplevel */
! if (glist_isvisible(x) && !x->gl_isgraph)
{ /* just put us in front */
#ifdef MSW
--- 724,732 ----
if (flag)
{
+ /* post("havewindow %d, isgraph %d, isvisible %d editor %d",
+ x->gl_havewindow, x->gl_isgraph, glist_isvisible(x),
+ (x->gl_editor != 0)); */
/* test if we're already visible and toplevel */
! if (x->gl_editor)
{ /* just put us in front */
#ifdef MSW
***************
*** 736,740 ****
#endif
}
! else
{
canvas_create_editor(x, 1);
--- 739,743 ----
#endif
}
! else
{
canvas_create_editor(x, 1);
***************
*** 1115,1118 ****
--- 1118,1129 ----
if (ac && av->a_type == A_SYMBOL)
canvas_rename(x, av->a_w.w_symbol, 0);
+ else if (ac && av->a_type == A_DOLLSYM)
+ {
+ t_canvasenvironment *e = canvas_getenv(x);
+ canvas_setcurrent(x);
+ canvas_rename(x, binbuf_realizedollsym(av->a_w.w_symbol,
+ e->ce_argc, e->ce_argv, 1), 0);
+ canvas_unsetcurrent(x);
+ }
else canvas_rename(x, gensym("Pd"), 0);
}
Index: s_audio_alsa.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsa.c,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** s_audio_alsa.c 6 Sep 2004 20:20:35 -0000 1.5
--- s_audio_alsa.c 5 Nov 2004 14:27:47 -0000 1.5.4.1
***************
*** 135,139 ****
/* set the sampling rate */
! err = snd_pcm_hw_params_set_rate_min(dev->a_handle, hw_params, rate, 0);
check_error(err, "snd_pcm_hw_params_set_rate_min (input)");
#if 0
--- 135,140 ----
/* set the sampling rate */
! err = snd_pcm_hw_params_set_rate_min(dev->a_handle, hw_params,
! (unsigned int *)rate, 0);
check_error(err, "snd_pcm_hw_params_set_rate_min (input)");
#if 0
***************
*** 349,354 ****
}
- // #define DEBUG_ALSA_XFER
-
int alsa_send_dacs(void)
{
--- 350,353 ----
Index: s_loader.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** s_loader.c 6 Sep 2004 20:20:35 -0000 1.4
--- s_loader.c 5 Nov 2004 14:27:47 -0000 1.4.4.1
***************
*** 41,45 ****
".pd_darwin";
#endif
! #ifdef MSW
".dll";
#endif
--- 41,45 ----
".pd_darwin";
#endif
! #if defined(MSW) || defined(__CYGWIN__)
".dll";
#endif
Index: s_midi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_midi.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** s_midi.c 6 Sep 2004 20:20:36 -0000 1.4
--- s_midi.c 5 Nov 2004 14:27:47 -0000 1.4.4.1
***************
*** 449,455 ****
--- 449,457 ----
/******************** dialog window and device listing ********************/
+ #ifndef USEAPI_ALSA
#ifdef USEAPI_OSS
void midi_oss_init( void);
#endif
+ #endif
/* last requested parameters */
***************
*** 487,493 ****
--- 489,497 ----
int nmidioutdev, int *midioutdev, int enable)
{
+ #ifndef USEAPI_ALSA
#ifdef USEAPI_OSS
midi_oss_init();
#endif
+ #endif
if (enable)
sys_do_open_midi(nmidiindev, midiindev, nmidioutdev, midioutdev);
***************
*** 594,601 ****
midioutdev4 = (noutdev > 3 && midioutdev[3]>=0 ? midioutdev[3]+1 : 0);
sprintf(buf,
"pdtk_midi_dialog %%s \
%s %d %d %d %d %s %d %d %d %d \
! %d\n",
indevliststring,
midiindev1, midiindev2, midiindev3, midiindev4,
--- 598,617 ----
midioutdev4 = (noutdev > 3 && midioutdev[3]>=0 ? midioutdev[3]+1 : 0);
+ #ifndef USEAPI_ALSA
+ sprintf(buf,
+ "pdtk_midi_dialog %%s \
+ %s %d %d %d %d %s %d %d %d %d \
+ %d 0\n",
+ indevliststring,
+ midiindev1, midiindev2, midiindev3, midiindev4,
+ outdevliststring,
+ midioutdev1, midioutdev2, midioutdev3, midioutdev4,
+ (flongform != 0));
+ #endif
+ #ifdef USEAPI_ALSA
sprintf(buf,
"pdtk_midi_dialog %%s \
%s %d %d %d %d %s %d %d %d %d \
! %d 1\n",
indevliststring,
midiindev1, midiindev2, midiindev3, midiindev4,
***************
*** 603,608 ****
midioutdev1, midioutdev2, midioutdev3, midioutdev4,
(flongform != 0));
gfxstub_deleteforkey(0);
! gfxstub_new(&glob_pdobject, glob_midi_properties, buf);
}
--- 619,625 ----
midioutdev1, midioutdev2, midioutdev3, midioutdev4,
(flongform != 0));
+ #endif
gfxstub_deleteforkey(0);
! gfxstub_new(&glob_pdobject, (void *)glob_midi_properties, buf);
}
***************
*** 614,617 ****
--- 631,635 ----
int i, nindev, noutdev;
int newmidiindev[4], newmidioutdev[4];
+ int alsadevin, alsadevout;
for (i = 0; i < 4; i++)
***************
*** 637,642 ****
--- 655,668 ----
}
}
+ alsadevin = atom_getintarg(8, argc, argv);
+ alsadevout = atom_getintarg(9, argc, argv);
+
sys_close_midi();
+ #ifndef USEAPI_ALSA
sys_open_midi(nindev, newmidiindev, noutdev, newmidioutdev, 1);
+ #endif
+ #ifdef USEAPI_ALSA
+ sys_open_midi(alsadevin, newmidiindev, alsadevout, newmidioutdev, 1);
+ #endif
}
Index: m_obj.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_obj.c,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -C2 -d -r1.2 -r1.2.4.1
*** m_obj.c 6 Sep 2004 20:20:35 -0000 1.2
--- m_obj.c 5 Nov 2004 14:27:46 -0000 1.2.4.1
***************
*** 23,26 ****
--- 23,28 ----
};
+ int sys_tooltips = 1;
+
struct _inlet
{
***************
*** 31,34 ****
--- 33,37 ----
t_symbol *i_symfrom;
union inletunion i_un;
+ t_symbol* i_tip;
};
***************
*** 58,61 ****
--- 61,65 ----
x->i_symfrom = s1;
x->i_next = 0;
+ x->i_tip = gensym("?");
if (y = owner->ob_inlet)
{
***************
*** 73,76 ****
--- 77,103 ----
}
+ void inlet_settip(t_inlet* i,t_symbol* s)
+ {
+ i->i_tip = s;
+ }
+
+ void glob_tooltips(t_pd *dummy, t_float f)
+ {
+ sys_tooltips = f;
+ }
+
+ char* inlet_tip(t_inlet* i,int num)
+ {
+ if (num < 0) return "???";
+ while (num-- && i)
+ i = i->i_next;
+
+ if (i)
+ if (i->i_tip) {
+ return i->i_tip->s_name;
+ }
+ return "?";
+ }
+
/* LATER figure out how to make these efficient: */
static void inlet_bang(t_inlet *x)
Index: s_audio_alsamm.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsamm.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -C2 -d -r1.1 -r1.1.4.1
*** s_audio_alsamm.c 6 Sep 2004 20:20:35 -0000 1.1
--- s_audio_alsamm.c 5 Nov 2004 14:27:47 -0000 1.1.4.1
***************
*** 489,497 ****
int maxchs,minchs,channels = *chs;
! if((err = snd_pcm_hw_params_get_channels_max(params,&maxchs)) < 0){
check_error(err,"Getting channels_max not available");
return err;
}
! if((err = snd_pcm_hw_params_get_channels_min(params,&minchs)) < 0){
check_error(err,"Getting channels_min not available");
return err;
--- 489,499 ----
int maxchs,minchs,channels = *chs;
! if((err = snd_pcm_hw_params_get_channels_max(params,
! (unsigned int *)&maxchs)) < 0){
check_error(err,"Getting channels_max not available");
return err;
}
! if((err = snd_pcm_hw_params_get_channels_min(params,
! (unsigned int *)&minchs)) < 0){
check_error(err,"Getting channels_min not available");
return err;
***************
*** 524,528 ****
/* testing for channels */
! if((err = snd_pcm_hw_params_get_channels(params,chs)) < 0)
check_error(err,"Get channels not available");
#ifdef ALSAMM_DEBUG
--- 526,530 ----
/* testing for channels */
! if((err = snd_pcm_hw_params_get_channels(params,(unsigned int *)chs)) < 0)
check_error(err,"Get channels not available");
#ifdef ALSAMM_DEBUG
***************
*** 543,547 ****
alsamm_buffer_size = alsamm_buffersize;
! err = snd_pcm_hw_params_set_buffer_size_near(handle, params, &alsamm_buffer_size);
if (err < 0) {
check_error(err,"Unable to set max buffer size");
--- 545,550 ----
alsamm_buffer_size = alsamm_buffersize;
! err = snd_pcm_hw_params_set_buffer_size_near(handle, params,
! (unsigned long *)&alsamm_buffer_size);
if (err < 0) {
check_error(err,"Unable to set max buffer size");
***************
*** 560,564 ****
#endif
! err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &alsamm_buffertime, &dir);
if (err < 0) {
check_error(err,"Unable to set max buffer time");
--- 563,568 ----
#endif
! err = snd_pcm_hw_params_set_buffer_time_near(handle, params,
! &alsamm_buffertime, &dir);
if (err < 0) {
check_error(err,"Unable to set max buffer time");
***************
*** 567,571 ****
}
! err = snd_pcm_hw_params_get_buffer_time(params, &alsamm_buffertime, &dir);
if (err < 0) {
check_error(err,"Unable to get buffer time");
--- 571,576 ----
}
! err = snd_pcm_hw_params_get_buffer_time(params,
! (unsigned int *)&alsamm_buffertime, &dir);
if (err < 0) {
check_error(err,"Unable to get buffer time");
***************
*** 579,583 ****
#endif
! err = snd_pcm_hw_params_get_buffer_size(params, &alsamm_buffer_size);
if (err < 0) {
check_error(err,"Unable to get buffer size");
--- 584,589 ----
#endif
! err = snd_pcm_hw_params_get_buffer_size(params,
! (unsigned long *)&alsamm_buffer_size);
if (err < 0) {
check_error(err,"Unable to get buffer size");
***************
*** 590,594 ****
#endif
! err = snd_pcm_hw_params_get_period_size(params, &alsamm_period_size, &dir);
if (err > 0) {
check_error(err,"Unable to get period size");
--- 596,601 ----
#endif
! err = snd_pcm_hw_params_get_period_size(params,
! (unsigned long *)&alsamm_period_size, &dir);
if (err > 0) {
check_error(err,"Unable to get period size");
***************
*** 1174,1178 ****
oframes = size;
! err = alsamm_get_channels(out, &oframes, &ooffset,ochannels,dev->a_addr);
#ifdef ALSAMM_DEBUG
--- 1181,1186 ----
oframes = size;
! err = alsamm_get_channels(out, (unsigned long *)&oframes,
! (unsigned long *)&ooffset,ochannels,dev->a_addr);
#ifdef ALSAMM_DEBUG
***************
*** 1284,1288 ****
snd_pcm_sframes_t iframes = size;
! err = alsamm_get_channels(in, &iframes, &ioffset,ichannels,dev->a_addr);
if (err < 0){
if ((err = xrun_recovery(in, err)) < 0) {
--- 1292,1297 ----
snd_pcm_sframes_t iframes = size;
! err = alsamm_get_channels(in,
! (unsigned long *)&iframes, (unsigned long *)&ioffset,ichannels,dev->a_addr);
if (err < 0){
if ((err = xrun_recovery(in, err)) < 0) {
Index: t_tkcmd.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/t_tkcmd.c,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -C2 -d -r1.2 -r1.2.4.1
*** t_tkcmd.c 6 Sep 2004 20:20:36 -0000 1.2
--- t_tkcmd.c 5 Nov 2004 14:27:47 -0000 1.2.4.1
***************
*** 438,442 ****
#endif
if (listen(xsock, 5) < 0) pd_sockerror("listen");
! sockfd = accept(xsock, (struct sockaddr *) &server, &len);
if (sockfd < 0) pd_sockerror("accept");
#ifdef DEBUGCONNECT
--- 438,442 ----
#endif
if (listen(xsock, 5) < 0) pd_sockerror("listen");
! sockfd = accept(xsock, (struct sockaddr *) &server, (unsigned int *)&len);
if (sockfd < 0) pd_sockerror("accept");
#ifdef DEBUGCONNECT
Index: s_inter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** s_inter.c 6 Sep 2004 20:20:35 -0000 1.5
--- s_inter.c 5 Nov 2004 14:27:47 -0000 1.5.4.1
***************
*** 28,32 ****
--- 28,34 ----
#include <process.h>
#include <winsock.h>
+ #include <windows.h>
typedef int pid_t;
+ typedef int socklen_t;
#define EADDRINUSE WSAEADDRINUSE
#endif
***************
*** 86,89 ****
--- 88,92 ----
extern char pd_version[];
extern int sys_guisetportnumber;
+ extern char sys_font[]; /* tb: typeface */
static int sys_nfdpoll;
***************
*** 163,166 ****
--- 166,174 ----
for (fp = sys_fdpoll, i = sys_nfdpoll; i--; fp++)
FD_SET(fp->fdp_fd, &readset);
+ #ifdef MSW
+ if (sys_maxfd == 0)
+ Sleep(microsec/1000);
+ else
+ #endif
select(sys_maxfd+1, &readset, &writeset, &exceptset, &timout);
for (i = 0; i < sys_nfdpoll; i++)
***************
*** 174,177 ****
--- 182,190 ----
else
{
+ #ifdef MSW
+ if (sys_maxfd == 0)
+ Sleep(microsec/1000);
+ else
+ #endif
select(0, 0, 0, 0, &timout);
return (0);
***************
*** 249,252 ****
--- 262,269 ----
#endif
+ #ifdef _POSIX_MEMLOCK
+ #include <sys/resource.h>
+ #endif
+
void sys_set_priority(int higher)
{
***************
*** 267,270 ****
--- 284,294 ----
#ifdef _POSIX_MEMLOCK
+ /* tb: force memlock to physical memory { */
+ struct rlimit mlock_limit;
+ mlock_limit.rlim_cur=0;
+ mlock_limit.rlim_max=0;
+ setrlimit(RLIMIT_MEMLOCK,&mlock_limit);
+ /* } tb */
+
if (mlockall(MCL_FUTURE) != -1)
fprintf(stderr, "memory locking enabled.\n");
***************
*** 612,616 ****
sys_guibufhead = sys_guibuftail = 0;
}
! if (sys_guibufhead > sys_guibufsize - 50)
sys_trytogetmoreguibuf(sys_guibufsize + GUI_ALLOCCHUNK);
va_start(ap, fmt);
--- 636,640 ----
sys_guibufhead = sys_guibuftail = 0;
}
! if (sys_guibufhead > sys_guibufsize - (GUI_ALLOCCHUNK/2))
sys_trytogetmoreguibuf(sys_guibufsize + GUI_ALLOCCHUNK);
va_start(ap, fmt);
***************
*** 620,633 ****
if (msglen >= sys_guibufsize - sys_guibufhead)
{
! int newsize = sys_guibufsize + 1 +
(msglen > GUI_ALLOCCHUNK ? msglen : GUI_ALLOCCHUNK);
sys_trytogetmoreguibuf(newsize);
va_start(ap, fmt);
! msglen = vsnprintf(sys_guibuf + sys_guibufhead,
! sys_guibufsize + 1 - sys_guibufhead, fmt, ap);
va_end(ap);
if (msglen >= sys_guibufsize - sys_guibufhead)
! msglen = sys_guibufsize - sys_guibufhead - 1;
}
if (sys_debuglevel & DEBUG_MESSUP)
--- 644,659 ----
if (msglen >= sys_guibufsize - sys_guibufhead)
{
! int msglen2, newsize = sys_guibufsize + 1 +
(msglen > GUI_ALLOCCHUNK ? msglen : GUI_ALLOCCHUNK);
sys_trytogetmoreguibuf(newsize);
va_start(ap, fmt);
! msglen2 = vsnprintf(sys_guibuf + sys_guibufhead,
! sys_guibufsize - sys_guibufhead, fmt, ap);
va_end(ap);
+ if (msglen2 != msglen)
+ bug("sys_vgui");
if (msglen >= sys_guibufsize - sys_guibufhead)
! msglen = sys_guibufsize - sys_guibufhead;
}
if (sys_debuglevel & DEBUG_MESSUP)
***************
*** 1146,1150 ****
int policy = SCHED_RR;
int err;
! param.sched_priority = 80; // adjust 0 : 100
err = pthread_setschedparam(pthread_self(), policy, ¶m);
--- 1172,1176 ----
int policy = SCHED_RR;
int err;
! param.sched_priority = 80; /* adjust 0 : 100 */
err = pthread_setschedparam(pthread_self(), policy, ¶m);
***************
*** 1159,1164 ****
fprintf(stderr, "Waiting for connection request... \n");
if (listen(xsock, 5) < 0) sys_sockerror("listen");
! sys_guisock = accept(xsock, (struct sockaddr *) &server, &len);
#ifdef OOPS
close(xsock);
--- 1185,1192 ----
fprintf(stderr, "Waiting for connection request... \n");
if (listen(xsock, 5) < 0) sys_sockerror("listen");
+
! sys_guisock = accept(xsock, (struct sockaddr *) &server,
! (socklen_t *)&len);
#ifdef OOPS
close(xsock);
***************
*** 1181,1185 ****
#endif
sys_get_audio_apis(buf);
! sys_vgui("pdtk_pd_startup {%s} %s\n", pd_version, buf);
}
return (0);
--- 1209,1214 ----
#endif
sys_get_audio_apis(buf);
! sys_vgui("pdtk_pd_startup {%s} %s {%s}\n", pd_version, buf,
! sys_font);
}
return (0);
Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** m_pd.h 6 Sep 2004 20:20:35 -0000 1.4
--- m_pd.h 5 Nov 2004 14:27:46 -0000 1.4.4.1
***************
*** 12,15 ****
--- 12,17 ----
#define PD_MINOR_VERSION 38
+ #define PD_DEVEL_VERSION 1 /* T.Grill - mark for devel branch */
+
/* old name for "MSW" flag -- we have to take it for the sake of many old
"nmakefiles" for externs, which will define NT and not MSW */
***************
*** 18,23 ****
#endif
! #ifdef MSW
! // #pragma warning( disable : 4091 )
#pragma warning( disable : 4305 ) /* uncast const double to float */
#pragma warning( disable : 4244 ) /* uncast float/int conversion etc. */
--- 20,25 ----
#endif
! #if defined(MSW) && !defined (__GNUC__)
! /* #pragma warning( disable : 4091 ) */
#pragma warning( disable : 4305 ) /* uncast const double to float */
#pragma warning( disable : 4244 ) /* uncast float/int conversion etc. */
***************
*** 25,30 ****
#endif /* MSW */
! /* the external storage class is "extern" in UNIX; in MSW it's ugly. */
! #ifdef MSW
#ifdef PD_INTERNAL
#define EXTERN __declspec(dllexport) extern
--- 27,32 ----
#endif /* MSW */
! /* the external storage class is "extern" in GCC; in MS-C it's ugly. */
! #if defined(MSW) && !defined (__GNUC__)
#ifdef PD_INTERNAL
#define EXTERN __declspec(dllexport) extern
***************
*** 244,247 ****
--- 246,253 ----
EXTERN void *resizebytes(void *x, size_t oldsize, size_t newsize);
+ /* T.Grill - functions for aligned memory (according to CPU SIMD architecture) */
+ EXTERN void *getalignedbytes(size_t nbytes);
+ EXTERN void freealignedbytes(void *x,size_t nbytes);
+ EXTERN void *resizealignedbytes(void *x,size_t oldsize, size_t newsize);
/* -------------------- atoms ----------------------------- */
***************
*** 333,336 ****
--- 339,347 ----
/* ----------------- patchable "objects" -------------- */
+ EXTERN_STRUCT _inlet;
+ #define t_inlet struct _inlet
+ EXTERN_STRUCT _outlet;
+ #define t_outlet struct _outlet
+
EXTERN t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1,
t_symbol *s2);
***************
*** 339,342 ****
--- 350,355 ----
EXTERN t_inlet *symbolinlet_new(t_object *owner, t_symbol **sp);
EXTERN void inlet_free(t_inlet *x);
+ EXTERN void class_settip(t_class *x,t_symbol* s);
+ EXTERN void inlet_settip(t_inlet* i,t_symbol* s);
EXTERN t_outlet *outlet_new(t_object *owner, t_symbol *s);
***************
*** 429,432 ****
--- 442,448 ----
#endif
+ EXTERN void class_settip(t_class *x,t_symbol* s);
+ EXTERN void inlet_settip(t_inlet* i,t_symbol* s);
+
/* ------------ printing --------------------------------- */
EXTERN void post(const char *fmt, ...);
***************
*** 483,490 ****
typedef t_int *(*t_perfroutine)(t_int *args);
! EXTERN t_int *plus_perform(t_int *args);
EXTERN t_int *zero_perform(t_int *args);
EXTERN t_int *copy_perform(t_int *args);
EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
--- 499,570 ----
typedef t_int *(*t_perfroutine)(t_int *args);
! /* tb: exporting basic arithmetic dsp functions {
! *
! * for (n % 8) != 0
! */
EXTERN t_int *zero_perform(t_int *args);
EXTERN t_int *copy_perform(t_int *args);
+ EXTERN t_int *plus_perform(t_int *args);
+ EXTERN t_int *scalarplus_perform(t_int *args);
+ EXTERN t_int *minus_perform(t_int *args);
+ EXTERN t_int *scalarminus_perform(t_int *args);
+ EXTERN t_int *times_perform(t_int *args);
+ EXTERN t_int *scalartimes_perform(t_int *args);
+ EXTERN t_int *over_perform(t_int *args);
+ EXTERN t_int *scalarover_perform(t_int *args);
+
+ EXTERN t_int *max_perform(t_int *args);
+ EXTERN t_int *scalarmax_perform(t_int *args);
+ EXTERN t_int *min_perform(t_int *args);
+ EXTERN t_int *scalarmin_perform(t_int *args);
+
+ EXTERN t_int *sig_tilde_perform(t_int *args);
+
+ /* for (n % 8) == 0 */
+ EXTERN t_int *zero_perf8(t_int *args);
+ EXTERN t_int *copy_perf8(t_int *args);
+
+ EXTERN t_int *plus_perf8(t_int *args);
+ EXTERN t_int *scalarplus_perf8(t_int *args);
+ EXTERN t_int *minus_perf8(t_int *args);
+ EXTERN t_int *scalarminus_perf8(t_int *args);
+ EXTERN t_int *times_perf8(t_int *args);
+ EXTERN t_int *scalartimes_perf8(t_int *args);
+ EXTERN t_int *sqr_perf8(t_int *args);
+ EXTERN t_int *over_perf8(t_int *args);
+ EXTERN t_int *scalarover_perf8(t_int *args);
+
+ EXTERN t_int *max_perf8(t_int *args);
+ EXTERN t_int *scalarmax_perf8(t_int *args);
+ EXTERN t_int *min_perf8(t_int *args);
+ EXTERN t_int *scalarmin_perf8(t_int *args);
+
+ EXTERN t_int *sig_tilde_perf8(t_int *args);
+
+ /* for (n % 8) == 0 && aligned signal vectors
+ * check with simd_checkX functions !!!
+ */
+ EXTERN t_int *zero_perf_simd(t_int *args);
+ EXTERN t_int *copy_perf_simd(t_int *args);
+
+ EXTERN t_int *plus_perf_simd(t_int *args);
+ EXTERN t_int *scalarplus_perf_simd(t_int *args);
+ EXTERN t_int *minus_perf_simd(t_int *args);
+ EXTERN t_int *scalarminus_perf_simd(t_int *args);
+ EXTERN t_int *times_perf_simd(t_int *args);
+ EXTERN t_int *scalartimes_perf_simd(t_int *args);
+ EXTERN t_int *sqr_perf_simd(t_int *args);
+ EXTERN t_int *over_perf_simd(t_int *args);
+ EXTERN t_int *scalarover_perf_simd(t_int *args);
+
+ EXTERN t_int *max_perf_simd(t_int *args);
+ EXTERN t_int *scalarmax_perf_simd(t_int *args);
+ EXTERN t_int *min_perf_simd(t_int *args);
+ EXTERN t_int *scalarmin_perf_simd(t_int *args);
+
+ EXTERN t_int *sig_tilde_perf_simd(t_int *args);
+ /* } tb */
+
EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
***************
*** 542,545 ****
--- 622,653 ----
/* } IOhannes */
+
+ /* tb: exporting basic simd coded dsp functions { */
+
+ /* vectorized, not simd functions*/
+ EXTERN void zerovec_8(t_float *dst,int n);
+ EXTERN void setvec_8(t_float *dst,t_float v,int n);
+ EXTERN void copyvec_8(t_float *dst,const t_float *src,int n);
+ EXTERN void addvec_8(t_float *dst,const t_float *src,int n);
+ EXTERN void testcopyvec_8(t_float *dst,const t_float *src,int n);
+ EXTERN void testaddvec_8(t_float *dst,const t_float *src,int n);
+
+ /* vectorized, simd functions *
+ * dst and src are assumed to be aligned */
+ EXTERN void zerovec_simd(t_float *dst,int n);
+ EXTERN void setvec_simd(t_float *dst,t_float v,int n);
+ EXTERN void copyvec_simd(t_float *dst,const t_float *src,int n);
+ EXTERN void addvec_simd(t_float *dst,const t_float *src,int n);
+ EXTERN void testcopyvec_simd(t_float *dst,const t_float *src,int n);
+ EXTERN void testaddvec_simd(t_float *dst,const t_float *src,int n);
+
+ EXTERN int simd_runtime_check(void);
+ EXTERN int simd_check1(t_int n, t_float* ptr1);
+ EXTERN int simd_check2(t_int n, t_float* ptr1, t_float* ptr2);
+ EXTERN int simd_check3(t_int n, t_float* ptr1, t_float* ptr2, t_float* ptr3);
+
+ /* } tb */
+
+
/* ----------------------- utility functions for signals -------------- */
EXTERN float mtof(float);
***************
*** 566,569 ****
--- 674,678 ----
EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx);
EXTERN void garray_redraw(t_garray *x);
+ EXTERN double garray_updatetime(t_garray *x); /* T.Grill - get last update time (clock_getlogicaltime) */
EXTERN int garray_npoints(t_garray *x);
EXTERN char *garray_vec(t_garray *x);
***************
*** 571,574 ****
--- 680,687 ----
EXTERN void garray_usedindsp(t_garray *x);
EXTERN void garray_setsaveit(t_garray *x, int saveit);
+ EXTERN void garray_lock(t_garray *x); /* TB: array locking */
+ EXTERN void garray_unlock(t_garray *x);
+ EXTERN int garray_trylock(t_garray *x);
+
EXTERN t_class *scalar_class;
Index: g_editor.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** g_editor.c 6 Sep 2004 20:20:33 -0000 1.4
--- g_editor.c 5 Nov 2004 14:27:45 -0000 1.4.4.1
***************
*** 16,19 ****
--- 16,20 ----
void open_via_helppath(const char *name, const char *dir);
char *class_gethelpdir(t_class *c);
+ char* inlet_tip(t_inlet* i,int num);
/* ------------------ forward declarations --------------- */
***************
*** 752,755 ****
--- 753,769 ----
}
+ void canvas_inlettip(t_canvas* x,t_object* ob,int closest,int xpos,int ypos)
+ {
+ if (!sys_tooltips) return;
+ if (ob->ob_pd->c_firstin) closest--;
+ if (closest < 0)
+ sys_vgui(".x%lx.c create text %d %d -anchor sw -text \"%s\" -tags y\n",
+ (t_int)x, xpos, ypos,ob->ob_pd->c_firsttip->s_name);
+ else
+ sys_vgui(".x%lx.c create text %d %d -anchor sw -text \"%s\" -tags y\n",
+ (t_int)x, xpos, ypos-4,inlet_tip(ob->te_inlet,closest));
+ }
+
+
/* check if a point lies in a gobj. */
int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
***************
*** 1065,1069 ****
{
/* look for an outlet */
! int noutlet;
if (ob && (noutlet = obj_noutlets(ob)) && ypos >= y2-4)
{
--- 1079,1083 ----
{
/* look for an outlet */
! int noutlet, ninlet;
if (ob && (noutlet = obj_noutlets(ob)) && ypos >= y2-4)
{
***************
*** 1092,1096 ****
goto nooutletafterall;
}
! /* not in an outlet; select and move */
else if (doit)
{
--- 1106,1126 ----
goto nooutletafterall;
}
!
! /* look for an inlet */
! else if (ob && (ninlet = obj_ninlets(ob)) && ypos <= y1+4)
! {
! int width = x2 - x1;
! int nin1 = (ninlet > 1 ? ninlet - 1 : 1);
! int closest = ((xpos-x1) * (nin1) + width/2)/width;
! int hotspot = x1 +
! (width - IOWIDTH) * closest / (nin1);
! if (closest < ninlet &&
! xpos >= (hotspot-1) && xpos <= hotspot + (IOWIDTH+1))
! {
! canvas_inlettip(x,ob,closest,xpos,ypos);
! }
! }
!
! /* not in an outlet; select and move */
else if (doit)
{
***************
*** 1276,1280 ****
"connect");
}
! else canvas_setcursor(x, CURSOR_EDITMODE_CONNECT);
return;
}
--- 1306,1314 ----
"connect");
}
! else
! {
! canvas_setcursor(x, CURSOR_EDITMODE_CONNECT);
! canvas_inlettip(x,ob2,closest2,xpos,ypos);
! }
return;
}
***************
*** 1502,1505 ****
--- 1536,1542 ----
return;
}
+
+ sys_vgui(".x%lx.c delete y\n",x); /* GG: bad hack */
+
glist_setlastxy(x, xpos, ypos);
if (x->gl_editor->e_onmotion == MA_MOVE)
***************
*** 2063,2066 ****
--- 2100,2104 ----
(src? class_getname(pd_class(&src->g_pd)) : "???"),
(sink? class_getname(pd_class(&sink->g_pd)) : "???"));
+ abort();
}
- Previous message: [PD-cvs] pd/src m_binbuf.c,1.4,1.4.4.1 m_class.c,1.3,1.3.4.1 m_imp.h,1.3,1.3.4.1 m_memory.c,1.2,1.2.4.1
- Next message: [PD-cvs] pd/src d_soundfile.c,1.1.1.2.2.29,1.1.1.2.2.30
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list