diff options
-rw-r--r-- | CHANGELOG.txt | 2 | ||||
-rwxr-xr-x | Framestein.exe | bin | 912384 -> 912384 bytes | |||
-rw-r--r-- | Patches/00.example-basics.pd | 6 | ||||
-rw-r--r-- | Patches/01.example-video.pd | 4 | ||||
-rw-r--r-- | Patches/04-03.example-draganddrop.pd | 12 | ||||
-rw-r--r-- | Patches/05.example-plugins.pd | 154 | ||||
-rw-r--r-- | Patches/09.example-sonogram.pd | 4 | ||||
-rw-r--r-- | Patches/fs.copy.pd | 102 | ||||
-rw-r--r-- | Patches/fs.frame.pd | 14 | ||||
-rw-r--r-- | Patches/makefile | 5 | ||||
-rw-r--r-- | Patches/vplugin.pd | 4 | ||||
-rw-r--r-- | Source/README.txt | 11 | ||||
-rw-r--r-- | Source/configureunit.dfm | 3 | ||||
-rw-r--r-- | Source/configureunit.pas | 12 | ||||
-rw-r--r-- | Source/fsframeunit.pas | 3 | ||||
-rw-r--r-- | Source/mainunit.pas | 6 |
16 files changed, 146 insertions, 196 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 02fff71..79cdb5d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,6 @@ 0.32 - new plugin: lightspeed -- fs.frame: |title this is the main window( +- fs.frame: |title this is the main window( and |undock( commands - fs.copy: transcolor <r> <g> <b> to set the transparent color - better gol algo (Plugins\gol.c) - added 1d cell automata where each iteration will add a new row: Plugins\rowca diff --git a/Framestein.exe b/Framestein.exe Binary files differindex dd85da6..6502003 100755 --- a/Framestein.exe +++ b/Framestein.exe diff --git a/Patches/00.example-basics.pd b/Patches/00.example-basics.pd index dba54df..9fed9ea 100644 --- a/Patches/00.example-basics.pd +++ b/Patches/00.example-basics.pd @@ -1,4 +1,4 @@ -#N canvas 228 3 650 663 12; +#N canvas 228 3 652 665 12; #X obj 5 31 fs.main; #X msg 5 7 6001; #X msg 56 7 reset; @@ -12,8 +12,6 @@ at a time!; #X obj 358 273 fs.fx; #X text 120 304 1st outlet: fs.frame ID. Connect this to other fs.*-objects \, like fs.copy \, fs.info \, fs.event etc.; -#X text 120 344 2nd outlet: reports mouse movement in the frame when -mousetrack_1 is set. See example-docking.pd!; #X text 119 384 3rd outlet: report the window position when docked \, see example-docking2.pd!; #X obj 45 442 fs.copy; @@ -34,6 +32,8 @@ patch.; plugins \, photoshop-filters \, interaction and more ...; #X text 49 602 Have fun! (close this patch before loading another) ; +#X text 120 344 2nd outlet: reports mouse movement in the frame when +mousetrack_1 is set. See example-info-rgb-event.pd!; #X connect 1 0 0 0; #X connect 1 0 2 0; #X connect 2 0 0 1; diff --git a/Patches/01.example-video.pd b/Patches/01.example-video.pd index 3624331..a8a2be8 100644 --- a/Patches/01.example-video.pd +++ b/Patches/01.example-video.pd @@ -1,4 +1,4 @@ -#N canvas 243 28 638 555 12; +#N canvas 243 28 642 559 12; #X obj 7 34 fs.main; #X msg 7 8 6001; #X msg 46 8 reset; @@ -7,7 +7,7 @@ #X text 41 64 drag & drop your favorite .avi here; #X obj 442 185 init; #X obj 303 121 hsl 256 15 0 1 0 0 empty empty empty 20 8 0 8 -262144 --1 -1 9200 1; +-1 -1 0 1; #X obj 300 272 fs.copy; #X msg 300 146 seek \$1* \, bang; #X obj 300 348 fs.framed video; diff --git a/Patches/04-03.example-draganddrop.pd b/Patches/04-03.example-draganddrop.pd index 1bb9741..8dfb923 100644 --- a/Patches/04-03.example-draganddrop.pd +++ b/Patches/04-03.example-draganddrop.pd @@ -1,4 +1,4 @@ -#N canvas 323 36 591 432 12; +#N canvas 323 36 593 434 12; #X obj 15 37 fs.main; #X msg 66 12 reset; #X obj 38 234 fs.event; @@ -8,14 +8,14 @@ -1; #X text 352 180 Drop a file here:; #X msg 15 12 6001; -#X msg 50 387 ÌßÀÒà1; #X text 18 95 Using fs.frame and fs.event to provide drag & drop:; #X obj 38 185 fs.framed draganddrop 352+233; +#X msg 50 387 drop a file..; #X connect 1 0 0 1; #X connect 2 0 3 0; -#X connect 3 0 8 0; -#X connect 4 0 10 0; -#X connect 5 0 10 0; +#X connect 3 0 10 0; +#X connect 4 0 9 0; +#X connect 5 0 9 0; #X connect 7 0 0 0; #X connect 7 0 1 0; -#X connect 10 0 2 0; +#X connect 9 0 2 0; diff --git a/Patches/05.example-plugins.pd b/Patches/05.example-plugins.pd index f6187a2..0512c54 100644 --- a/Patches/05.example-plugins.pd +++ b/Patches/05.example-plugins.pd @@ -1,127 +1,41 @@ -#N canvas 344 18 621 620 12; +#N canvas 106 10 878 657 12; #X obj 11 41 fs.main; #X msg 11 11 6001; #X msg 62 12 reset; -#X obj 70 216 fs.frame; -#X msg 103 177 noize; -#X text 106 154 send the name of the plugin to fs.frame to execute -; -#X obj 70 466 fs.frame; -#X obj 70 302 fs.copy; -#X msg 141 216 bang; -#X text 161 249 plugins can also be copy operations; -#X msg 153 177 colortv; -#X msg 158 278 colortv; -#X msg 220 177 subtract \$1 \$2 \$3; -#X obj 376 205 pack f f f; -#X floatatom 368 177 4 0 0; -#X floatatom 409 177 4 0 0; -#X floatatom 450 177 4 0 0; -#X msg 460 205 bang; -#X obj 255 355 pack f f; -#X msg 323 355 bang; -#X floatatom 255 331 4 0 0; -#X floatatom 295 331 4 0 0; -#X obj 466 408 int; -#X msg 320 379 \$1 180; -#N canvas 686 105 602 402 funny 0; -#X obj 47 97 random 352; -#X obj 135 97 random 352; -#X obj 73 145 pack f f; -#X obj 80 186 outlet; -#X obj 76 13 inlet; -#X obj 86 56 t b b; -#X connect 0 0 2 0; -#X connect 1 0 2 1; -#X connect 2 0 3 0; -#X connect 4 0 5 0; -#X connect 5 0 0 0; -#X connect 5 1 1 0; -#X restore 255 412 pd funny; -#X msg 324 412 bang; -#X msg 158 331 xbend \$1 \$2; -#N canvas 638 233 375 411 bend 0; -#X obj 18 328 outlet; -#X msg 43 281 bend \$1 \$2 \$3 \$4; -#X obj 55 242 pack f f f f; -#X msg 158 242 bang; -#X floatatom 35 159 4 0 0; -#X floatatom 77 159 4 0 0; -#X floatatom 124 159 4 0 0; -#X floatatom 168 159 4 0 0; -#X msg 200 262 158 161 154 214; -#X text 187 315 oh i'm sorry virve...; -#X msg 209 290 94 95 280 214; -#X msg 187 339 169 144 262 162; -#X text 132 365 but this thing is killing me; -#X text 67 13 bend works in both x and y; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 2 1; -#X connect 5 0 3 0; -#X connect 6 0 2 2; -#X connect 6 0 3 0; -#X connect 7 0 2 3; -#X connect 7 0 3 0; -#X connect 8 0 1 0; -#X connect 10 0 1 0; -#X connect 11 0 1 0; -#X restore 255 442 pd bend; -#X text 71 503 note: 16 bit display is way faster than 24 or 32 in -my machine \, so i recommend trying out which one performs best.; -#X text 69 555 there are more plugins.. see the Framestein/Plugins-dir. -; -#X msg 70 118 virvezoom.jpg; -#X obj 186 118 init; -#X obj 94 407 init; -#X text 367 412 click here; -#X text 320 442 look here; -#X msg 94 438 291 x 325 \, 0 + 370; -#X obj 466 433 sameonce; -#X obj 466 384 ramp; -#X msg 466 356 220 66 10; -#X msg 466 333 66 220 10; -#X text 467 309 and here ..; -#X text 340 330 try these ..; -#X text 147 42 PLUGINS -- effects and copy operations; +#X text 157 37 Using Plugins; +#X obj 65 224 fs.framed plugins; +#X msg 209 225 76 + 446; +#X msg 34 95 noize; +#X msg 52 122 green; +#X msg 66 148 colortv; +#X msg 78 174 lightspeed 100; +#X text 157 102 Plugins are short pieces of code written in C \, C++ +or ASM that manipulate one or more frames. Send the plugin name to +fs.frame to execute it.; +#X obj 87 290 fs.copy; +#X obj 96 359 fs.framed plugins; +#X msg 239 359 266 + 446; +#X obj 37 241 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 337 258 Send the plugin name to fs.copy to use it as a copy +operation.; +#X msg 202 262 tile 3; +#X msg 209 289 xbend 40 140; #X connect 1 0 0 0; #X connect 1 0 2 0; #X connect 2 0 0 1; -#X connect 3 0 7 0; -#X connect 4 0 3 0; -#X connect 7 0 6 0; -#X connect 8 0 3 0; -#X connect 10 0 3 0; -#X connect 11 0 7 1; -#X connect 11 0 8 0; -#X connect 12 0 3 0; +#X connect 4 0 11 0; +#X connect 4 2 5 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X connect 9 0 4 0; +#X connect 11 0 12 0; +#X connect 12 2 13 0; #X connect 13 0 12 0; -#X connect 14 0 13 0; -#X connect 15 0 13 1; -#X connect 15 0 17 0; -#X connect 16 0 13 2; -#X connect 16 0 17 0; -#X connect 17 0 13 0; -#X connect 18 0 26 0; -#X connect 19 0 18 0; -#X connect 20 0 18 0; -#X connect 21 0 18 1; -#X connect 21 0 19 0; -#X connect 22 0 36 0; -#X connect 23 0 18 0; -#X connect 24 0 26 0; -#X connect 25 0 24 0; -#X connect 26 0 7 1; -#X connect 26 0 8 0; -#X connect 27 0 7 1; -#X connect 27 0 8 0; -#X connect 30 0 3 0; -#X connect 31 0 30 0; -#X connect 32 0 35 0; -#X connect 35 0 6 0; -#X connect 36 0 18 0; -#X connect 37 0 22 0; -#X connect 38 0 37 0; -#X connect 39 0 37 0; +#X connect 14 0 4 0; +#X connect 16 0 11 1; +#X connect 16 0 14 0; +#X connect 17 0 11 1; +#X connect 17 0 14 0; diff --git a/Patches/09.example-sonogram.pd b/Patches/09.example-sonogram.pd index 319e943..1bf6c87 100644 --- a/Patches/09.example-sonogram.pd +++ b/Patches/09.example-sonogram.pd @@ -1,4 +1,4 @@ -#N canvas 308 -3 607 678 12; +#N canvas 308 -3 609 680 12; #X obj 13 40 fs.main; #X msg 13 13 6001; #X msg 64 12 reset; @@ -51,7 +51,7 @@ #X text 77 636 modify fs.sonogram.pd for a proper temporary path.; #X obj 330 451 *~ 4; #X obj 479 592 init; -#X msg 248 48 g:/fsrel/framestein/extract.wav; +#X msg 248 48 e:/fs/framestein/extract.wav; #X connect 1 0 0 0; #X connect 1 0 2 0; #X connect 2 0 0 1; diff --git a/Patches/fs.copy.pd b/Patches/fs.copy.pd index c646056..2214150 100644 --- a/Patches/fs.copy.pd +++ b/Patches/fs.copy.pd @@ -1,53 +1,61 @@ -#N canvas 52 54 936 448 12; -#X obj 173 21 loadbang; -#X obj 208 271 fs_sender; -#X msg 173 204 copy \$1; -#X obj 352 14 inlet; -#X text 465 118 dest_all; -#X text 465 132 dest_random; -#X text 465 152 copy; -#X text 465 167 alpha <value>; -#X text 466 197 sub <value>; -#X text 465 183 add <value>; -#X text 466 62 source_all; -#X text 466 79 source_random; -#X obj 23 22 inlet; -#X obj 23 155 outlet; -#X obj 23 62 pack s s; -#X msg 23 95 fs_op \$2 \$1; -#X obj 352 156 pack s s; -#X msg 352 185 \$2 \$1; -#X obj 352 127 l2s; -#X text 466 47 source <left> <top> <right> <bottom>; -#X text 465 104 dest <left> <top> <right> <bottom>; -#X text 399 15 for these commands:; -#X obj 173 174 symbol; -#X obj 194 114 r fs_reset; -#X msg 194 140 bang; -#X text 467 267 blackness dstinvert mergecopy mergepaint notsrccopy +#N canvas 52 54 727 454 12; +#X text 253 117 dest_all; +#X text 253 131 dest_random; +#X text 253 151 copy; +#X text 253 166 alpha <value>; +#X text 254 196 sub <value>; +#X text 253 182 add <value>; +#X text 254 61 source_all; +#X text 254 78 source_random; +#X text 254 46 source <left> <top> <right> <bottom>; +#X text 253 103 dest <left> <top> <right> <bottom>; +#X text 255 266 blackness dstinvert mergecopy mergepaint notsrccopy notsrcerase patcopy patinvert patpaint srcand srccopy srcerase srcinvert srcpaint whiteness; -#X text 466 226 try these raster operations: (some of them do nothing) +#X text 254 225 try these raster operations: (some of them do nothing) ; -#X text 468 329 transparent_0/1 mirrorleftright_0/1 mirrorupdown_0/1 +#X text 256 328 transparent_0/1 mirrorleftright_0/1 mirrorupdown_0/1 ; -#X text 467 378 "plugin_name" (see example-plugins.pd); -#X obj 173 51 symbol \$0C; -#X text 466 404 "filter_name" (see example-photoshopfilters.pd); -#X text 468 349 transcolor <r> <g> <b> to set the transparent color +#X text 255 377 "plugin_name" (see example-plugins.pd); +#X text 254 403 "filter_name" (see example-photoshopfilters.pd); +#X text 256 348 transcolor <r> <g> <b> to set the transparent color ; -#X connect 0 0 29 0; +#N canvas 254 135 586 445 guts 0; +#X obj 231 48 loadbang; +#X obj 266 298 fs_sender; +#X msg 231 231 copy \$1; +#X obj 410 41 inlet; +#X obj 81 49 inlet; +#X obj 81 182 outlet; +#X obj 81 89 pack s s; +#X msg 81 122 fs_op \$2 \$1; +#X obj 410 183 pack s s; +#X msg 410 212 \$2 \$1; +#X obj 410 154 l2s; +#X obj 231 201 symbol; +#X obj 252 141 r fs_reset; +#X msg 252 167 bang; +#X obj 231 78 symbol \$0C; +#X connect 0 0 14 0; #X connect 2 0 1 0; -#X connect 3 0 18 0; -#X connect 12 0 14 0; -#X connect 14 0 15 0; -#X connect 15 0 13 0; -#X connect 16 0 17 0; -#X connect 17 0 1 0; -#X connect 18 0 16 0; -#X connect 22 0 2 0; -#X connect 23 0 24 0; -#X connect 24 0 29 0; -#X connect 29 0 14 1; -#X connect 29 0 16 1; -#X connect 29 0 22 0; +#X connect 3 0 10 0; +#X connect 4 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 8 0; +#X connect 11 0 2 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 6 1; +#X connect 14 0 8 1; +#X connect 14 0 11 0; +#X restore 45 84 pd guts; +#X obj 45 30 inlet; +#X obj 96 30 inlet; +#X obj 45 149 outlet; +#X text 187 14 The right inlet accepts these commands:; +#X connect 16 0 19 0; +#X connect 17 0 16 0; +#X connect 18 0 16 1; diff --git a/Patches/fs.frame.pd b/Patches/fs.frame.pd index 7ec1c9d..71979cb 100644 --- a/Patches/fs.frame.pd +++ b/Patches/fs.frame.pd @@ -1,11 +1,9 @@ -#N canvas 44 16 905 629 12; +#N canvas 44 16 907 631 12; #X text 346 170 "next" "prev" "random" "seek <number>" to show frames in video or buffered images.; #X text 347 211 "clear" to flush buffered images.; #X text 347 237 "flip_auto" "flip_manual" "flip" controls how the display should reflect changes in the image.; -#X text 348 282 "320x240" to set image size "100+100" to set frame -position "display 600x450" to set display size; #X text 348 329 "borders_0" "borders_1" "stayontop_0"/1 "mute_0"/1 \, also right-click the image for display options.; #X text 327 59 inlet accepts:; @@ -140,7 +138,9 @@ you load a patch.; ; #X text 351 544 minimize \, maximize \, bringtofront \, hidecursor_1 \, hidecursor_0; -#X connect 15 0 17 0; -#X connect 16 0 15 0; -#X connect 18 0 9 0; -#X connect 18 1 11 0; +#X text 348 282 "320 x 240" to set image size "100 + 100" to set frame +position "display 600 x 450" to set display size; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 17 0 8 0; +#X connect 17 1 10 0; diff --git a/Patches/makefile b/Patches/makefile index e27df95..6097c42 100644 --- a/Patches/makefile +++ b/Patches/makefile @@ -1,4 +1,4 @@ -all: vframe vsig vsnapshot vrgb vcolor vframeread vdrawarray arraysize buildstr l2s +all: vframe vsig vsnapshot vrgb vcolor vframeread vdrawarray arraysize buildstr l2s system # FLAGS: # @@ -36,3 +36,6 @@ buildstr: l2s: cl l2s.c $(F) /link /export:l2s_setup $(L) + +system: + cl system.c $(F) /link /export:system_setup $(L) diff --git a/Patches/vplugin.pd b/Patches/vplugin.pd index e3177bf..55945de 100644 --- a/Patches/vplugin.pd +++ b/Patches/vplugin.pd @@ -1,9 +1,9 @@ -#N canvas 0 0 468 318 12; +#N canvas 0 0 470 320 12; #X obj 70 26 inlet; #X obj 70 272 outlet; #X text 125 200 correct this path to your installation; #X obj 70 142 l2s; -#X obj 70 172 makefilename e:/fsrel/framestein/plugins/%s; +#X obj 70 173 makefilename e:/fs/framestein/plugins/%s; #X connect 0 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; diff --git a/Source/README.txt b/Source/README.txt index 4037c52..dd13ea8 100644 --- a/Source/README.txt +++ b/Source/README.txt @@ -15,7 +15,7 @@ http://turbo.gamedev.net/delphix.asp - Install TScanDir in Filez.pas (in this directory). -- Correct your Search path and compile! +- Correct your Search path and compile Framestein.dpr! - Framestein needs ijl15.dll (included in Framestein-directory) to load/save jpegs @@ -24,7 +24,6 @@ http://turbo.gamedev.net/delphix.asp --- note to versions >= 0.27 --- - The photoshop filter host functionality is based on commercial code from http://www.case2000.com. Due to my modifications the original component won't compile with Framestein and I don't have the permission to release my modified version. @@ -34,3 +33,11 @@ the implementation in pshostunit.pas. I'm planning a .dll of my version of the component to rid of this problem. Mail me for info. + + +--- versions > 0.31: + +Framestein.dpr is the Delphi-project to use. FramesteinLib.dpr is an experimental +project to compile Framestein as a Pure Data library, loaded with the -lib-parameter. +This seems to give a better response, but still crashes when quitting Pd, so no binary +is yet distributed. diff --git a/Source/configureunit.dfm b/Source/configureunit.dfm index f171463..a3baf5f 100644 --- a/Source/configureunit.dfm +++ b/Source/configureunit.dfm @@ -21,12 +21,13 @@ object configure: Tconfigure Top = 0 Width = 427 Height = 275 - ActivePage = TSFolders + ActivePage = TSConnections Align = alClient TabOrder = 0 object TSFolders: TTabSheet Caption = 'Folders' ImageIndex = 2 + TabVisible = False object Label6: TLabel Left = 16 Top = 36 diff --git a/Source/configureunit.pas b/Source/configureunit.pas index b4a1dab..321efc5 100644 --- a/Source/configureunit.pas +++ b/Source/configureunit.pas @@ -67,12 +67,14 @@ begin main.FSPort := StrToInt(EditFsPort.Text); main.EnableFSConns := CBEnableFSConns.Checked; main.DockMain := CBDockMain.Checked; +{$IFDEF FSDLL} if main.FSFolder <> EditFSFolder.Text then begin main.FSFolder := EditFSFolder.Text; main.Plugins.Clear; main.Plugins.ReLoad; main.SearchPath.Add(main.FSFolder); end; +{$ENDIF} try if Reg.OpenKey('\Software\Framestein', True) then begin @@ -82,7 +84,9 @@ begin Reg.WriteInteger('FSPort', main.FSPort); Reg.WriteBool('EnableFSConns', main.EnableFSConns); Reg.WriteBool('DockMain', main.DockMain); +{$IFDEF FSDLL} Reg.WriteString('FSFolder', main.FSFolder); +{$ENDIF} end; except end; @@ -113,6 +117,14 @@ end; procedure Tconfigure.Execute; begin +{$IFDEF FSDLL} + TSFolders.TabVisible := True; + TSFolders.Visible := True; +{$ELSE} + TSFolders.TabVisible := False; + TSFolders.Visible := False; +{$ENDIF} + // load values from main EditPdHost.Text := main.PdHost; if EditPdHost.Text='' then EditPdHost.Text:='localhost'; diff --git a/Source/fsframeunit.pas b/Source/fsframeunit.pas index 449d8fc..ccaafbf 100644 --- a/Source/fsframeunit.pas +++ b/Source/fsframeunit.pas @@ -601,6 +601,9 @@ begin end;
end;
end else
+ if s1='UNDOCK' then begin
+ MiUndock.Click;
+ end else
if s1='SHOW' then begin
Self.Top := prevtop;
if not prevmute and MiMute.Checked then
diff --git a/Source/mainunit.pas b/Source/mainunit.pas index 8a4a495..797b125 100644 --- a/Source/mainunit.pas +++ b/Source/mainunit.pas @@ -112,9 +112,9 @@ type const
{$IFDEF FSDLL}
- STARTMSG = 'FramesteinLib 0.32 DLL TEST 1 running...';
+ STARTMSG = 'FramesteinLib 0.32 DLL running...';
{$ELSE}
- STARTMSG = 'Framestein 0.32 dev running...';
+ STARTMSG = 'Framestein 0.32 running...';
{$ENDIF}
MCAPTION = 'Framestein 0.32';
SocketBufferSize = 100000;
@@ -495,9 +495,11 @@ begin FSPort := Reg.ReadInteger('FSPort');
EnableFSConns := Reg.ReadBool('EnableFSConns');
DockMain := Reg.ReadBool('DockMain');
+{$IFDEF FSDLL}
FSFolder := Reg.ReadString('FSFolder');
if FSFolder='' then
FSFolder := ExtractFilePath(Application.Exename);
+{$ENDIF}
end;
except
RunConfig := True;
|