| Mode | Name | Size | |
| -rw-r--r-- | Makefile | 1031 | logplain |
| -rw-r--r-- | SOURCES | 17543 | logplain |
| -rw-r--r-- | brickmania_ball.3x3x1.bmp | 108 | logplain |
| -rw-r--r-- | brickmania_ball.4x4x16.bmp | 102 | logplain |
| -rw-r--r-- | brickmania_ball.5x5x16.bmp | 134 | logplain |
| -rw-r--r-- | brickmania_ball.5x5x2.bmp | 138 | logplain |
| -rw-r--r-- | brickmania_break.132x80x16.bmp | 1062 | logplain |
| -rw-r--r-- | brickmania_break.160x128x16.bmp | 1736 | logplain |
| -rw-r--r-- | brickmania_break.160x128x2.bmp | 2614 | logplain |
| -rw-r--r-- | brickmania_break.176x132x16.bmp | 1876 | logplain |
| -rw-r--r-- | brickmania_break.220x176x16.bmp | 2616 | logplain |
| -rw-r--r-- | brickmania_break.320x240x16.bmp | 8120 | logplain |
| -rw-r--r-- | brickmania_bricks.112x64x1.bmp | 1064 | logplain |
| -rw-r--r-- | brickmania_bricks.128x128x16.bmp | 1314 | logplain |
| -rw-r--r-- | brickmania_bricks.132x80x16.bmp | 1062 | logplain |
| -rw-r--r-- | brickmania_bricks.138x110x2.bmp | 2014 | logplain |
| -rw-r--r-- | brickmania_bricks.160x128x16.bmp | 2408 | logplain |
| -rw-r--r-- | brickmania_bricks.160x128x2.bmp | 468 | logplain |
| -rw-r--r-- | brickmania_bricks.176x132x16.bmp | 2604 | logplain |
| -rw-r--r-- | brickmania_bricks.220x176x16.bmp | 3640 | logplain |
| -rw-r--r-- | brickmania_bricks.320x240x16.bmp | 8120 | logplain |
| -rw-r--r-- | brickmania_gameover.112x54x16.bmp | 18198 | logplain |
| -rw-r--r-- | brickmania_gameover.59x30x1.bmp | 5454 | logplain |
| -rw-r--r-- | brickmania_gameover.86x43x2.bmp | 11234 | logplain |
| -rw-r--r-- | brickmania_menu_bg.128x128x16.bmp | 49206 | logplain |
| -rw-r--r-- | brickmania_menu_bg.132x80x16.bmp | 31734 | logplain |
| -rw-r--r-- | brickmania_menu_bg.160x128x16.bmp | 61494 | logplain |
| -rw-r--r-- | brickmania_menu_bg.160x128x2.bmp | 3676 | logplain |
| -rw-r--r-- | brickmania_menu_bg.176x132x16.bmp | 69752 | logplain |
| -rw-r--r-- | brickmania_menu_bg.220x176x16.bmp | 116216 | logplain |
| -rw-r--r-- | brickmania_menu_bg.240x320x16.bmp | 230454 | logplain |
| -rw-r--r-- | brickmania_menu_bg.320x240x16.bmp | 230454 | logplain |
| -rw-r--r-- | brickmania_menu_items.112x64x1.bmp | 23454 | logplain |
| -rw-r--r-- | brickmania_menu_items.132x80x16.bmp | 24678 | logplain |
| -rw-r--r-- | brickmania_menu_items.160x128x16.bmp | 31806 | logplain |
| -rw-r--r-- | brickmania_menu_items.160x128x2.bmp | 26730 | logplain |
| -rw-r--r-- | brickmania_menu_items.176x132x16.bmp | 36774 | logplain |
| -rw-r--r-- | brickmania_menu_items.220x176x16.bmp | 60534 | logplain |
| -rw-r--r-- | brickmania_pads.112x64x1.bmp | 220 | logplain |
| -rw-r--r-- | brickmania_pads.132x80x16.bmp | 810 | logplain |
| -rw-r--r-- | brickmania_pads.160x128x16.bmp | 1436 | logplain |
| -rw-r--r-- | brickmania_pads.160x128x2.bmp | 316 | logplain |
| -rw-r--r-- | brickmania_pads.176x132x16.bmp | 1856 | logplain |
| -rw-r--r-- | brickmania_pads.220x176x16.bmp | 1856 | logplain |
| -rw-r--r-- | brickmania_pads.320x240x16.bmp | 3584 | logplain |
| -rw-r--r-- | brickmania_powerups.112x64x1.bmp | 244 | logplain |
| -rw-r--r-- | brickmania_powerups.132x80x16.bmp | 754 | logplain |
| -rw-r--r-- | brickmania_powerups.160x128x16.bmp | 1400 | logplain |
| -rw-r--r-- | brickmania_powerups.160x128x2.bmp | 412 | logplain |
| -rw-r--r-- | brickmania_powerups.176x132x16.bmp | 1400 | logplain |
| -rw-r--r-- | brickmania_powerups.220x176x16.bmp | 1400 | logplain |
| -rw-r--r-- | brickmania_powerups.320x240x16.bmp | 3416 | logplain |
| -rw-r--r-- | bubbles_background.128x128x16.bmp | 49206 | logplain |
| -rw-r--r-- | bubbles_background.132x80x16.bmp | 31734 | logplain |
| -rw-r--r-- | bubbles_background.160x128x16.bmp | 61494 | logplain |
| -rw-r--r-- | bubbles_background.176x132x16.bmp | 69750 | logplain |
| -rw-r--r-- | bubbles_background.176x220x16.bmp | 116214 | logplain |
| -rw-r--r-- | bubbles_background.220x176x16.bmp | 116214 | logplain |
| -rw-r--r-- | bubbles_background.240x320x16.bmp | 230454 | logplain |
| -rw-r--r-- | bubbles_background.320x240x16.bmp | 230454 | logplain |
| -rw-r--r-- | bubbles_emblem.112x64x1.bmp | 222 | logplain |
| -rw-r--r-- | bubbles_emblem.132x80x16.bmp | 1014 | logplain |
| -rw-r--r-- | bubbles_emblem.138x110x2.bmp | 1014 | logplain |
| -rw-r--r-- | bubbles_emblem.160x128x16.bmp | 1590 | logplain |
| -rw-r--r-- | bubbles_emblem.160x128x2.bmp | 1590 | logplain |
| -rw-r--r-- | bubbles_emblem.220x176x16.bmp | 3510 | logplain |
| -rw-r--r-- | bubbles_emblem.320x240x16.bmp | 6198 | logplain |
| -rw-r--r-- | card_back.13x13x1.bmp | 114 | logplain |
| -rw-r--r-- | card_back.15x20x16.bmp | 1014 | logplain |
| -rw-r--r-- | card_back.15x20x2.bmp | 392 | logplain |
| -rw-r--r-- | card_back.18x23x16.bmp | 1342 | logplain |
| -rw-r--r-- | card_back.18x23x2.bmp | 532 | logplain |
| -rw-r--r-- | card_back.26x33x16.bmp | 2694 | logplain |
| -rw-r--r-- | card_back.37x49x16.bmp | 5542 | logplain |
| -rw-r--r-- | card_deck.169x52x1.bmp | 1310 | logplain |
| -rw-r--r-- | card_deck.195x80x16.bmp | 47094 | logplain |
| -rw-r--r-- | card_deck.195x80x2.bmp | 15752 | logplain |
| -rw-r--r-- | card_deck.234x92x16.bmp | 64822 | logplain |
| -rw-r--r-- | card_deck.234x92x2.bmp | 21784 | logplain |
| -rw-r--r-- | card_deck.338x132x16.bmp | 134166 | logplain |
| -rw-r--r-- | card_deck.481x196x16.bmp | 283078 | logplain |
| -rw-r--r-- | chessbox_pieces.104x104x2.bmp | 5476 | logplain |
| -rw-r--r-- | chessbox_pieces.128x128x1.bmp | 1726 | logplain |
| -rw-r--r-- | chessbox_pieces.128x128x2.bmp | 7734 | logplain |
| -rw-r--r-- | chessbox_pieces.176x176x16.bmp | 38950 | logplain |
| -rw-r--r-- | chessbox_pieces.240x240x16.bmp | 25526 | logplain |
| -rw-r--r-- | chessbox_pieces.64x64x1.bmp | 894 | logplain |
| -rw-r--r-- | chessbox_pieces.80x64x1.bmp | 894 | logplain |
| -rw-r--r-- | chessbox_pieces.80x80x16.bmp | 8374 | logplain |
| -rw-r--r-- | clock_binary.112x64x1.bmp | 1974 | logplain |
| -rw-r--r-- | clock_binary.128x128x16.bmp | 3414 | logplain |
| -rwxr-xr-x | clock_binary.132x80x16.bmp | 2854 | logplain |
| -rw-r--r-- | clock_binary.138x110x2.bmp | 2614 | logplain |
| -rw-r--r-- | clock_binary.160x128x16.bmp | 5374 | logplain |
| -rw-r--r-- | clock_binary.160x128x2.bmp | 3038 | logplain |
| -rw-r--r-- | clock_binary.220x176x16.bmp | 10638 | logplain |
| -rw-r--r-- | clock_binary.320x240x16.bmp | 21334 | logplain |
| -rw-r--r-- | clock_digits.112x64x1.bmp | 1102 | logplain |
| -rw-r--r-- | clock_digits.128x128x16.bmp | 21894 | logplain |
| -rwxr-xr-x | clock_digits.132x80x16.bmp | 14406 | logplain |
| -rw-r--r-- | clock_digits.138x110x2.bmp | 11062 | logplain |
| -rw-r--r-- | clock_digits.160x128x16.bmp | 34634 | logplain |
| -rw-r--r-- | clock_digits.160x128x2.bmp | 13818 | logplain |
| -rw-r--r-- | clock_digits.220x176x16.bmp | 68850 | logplain |
| -rw-r--r-- | clock_digits.320x240x16.bmp | 138374 | logplain |
| -rw-r--r-- | clock_logo.112x64x1.bmp | 864 | logplain |
| -rw-r--r-- | clock_logo.128x128x16.bmp | 24632 | logplain |
| -rwxr-xr-x | clock_logo.132x80x16.bmp | 26190 | logplain |
| -rw-r--r-- | clock_logo.138x110x2.bmp | 10740 | logplain |
| -rw-r--r-- | clock_logo.160x128x16.bmp | 38456 | logplain |
| -rw-r--r-- | clock_logo.160x128x2.bmp | 13880 | logplain |
| -rw-r--r-- | clock_logo.176x132x16.bmp | 46520 | logplain |
| -rw-r--r-- | clock_logo.220x176x16.bmp | 72656 | logplain |
| -rw-r--r-- | clock_logo.320x240x16.bmp | 153656 | logplain |
| -rw-r--r-- | clock_messages.112x64x1.bmp | 1408 | logplain |
| -rw-r--r-- | clock_messages.128x128x16.bmp | 36920 | logplain |
| -rwxr-xr-x | clock_messages.132x80x16.bmp | 33318 | logplain |
| -rw-r--r-- | clock_messages.138x110x2.bmp | 15360 | logplain |
| -rw-r--r-- | clock_messages.160x128x16.bmp | 57656 | logplain |
| -rw-r--r-- | clock_messages.160x128x2.bmp | 20280 | logplain |
| -rw-r--r-- | clock_messages.176x132x16.bmp | 69752 | logplain |
| -rw-r--r-- | clock_messages.220x176x16.bmp | 106976 | logplain |
| -rw-r--r-- | clock_messages.320x240x16.bmp | 230456 | logplain |
| -rw-r--r-- | clock_segments.112x64x1.bmp | 1102 | logplain |
| -rw-r--r-- | clock_segments.128x128x16.bmp | 21896 | logplain |
| -rwxr-xr-x | clock_segments.132x80x16.bmp | 14406 | logplain |
| -rw-r--r-- | clock_segments.138x110x2.bmp | 11064 | logplain |
| -rw-r--r-- | clock_segments.160x128x16.bmp | 34636 | logplain |
| -rw-r--r-- | clock_segments.160x128x2.bmp | 13820 | logplain |
| -rw-r--r-- | clock_segments.220x176x16.bmp | 68852 | logplain |
| -rw-r--r-- | clock_segments.320x240x16.bmp | 138376 | logplain |
| -rw-r--r-- | clock_smalldigits.112x64x1.bmp | 582 | logplain |
| -rw-r--r-- | clock_smalldigits.128x128x16.bmp | 5880 | logplain |
| -rwxr-xr-x | clock_smalldigits.132x80x16.bmp | 4786 | logplain |
| -rw-r--r-- | clock_smalldigits.160x128x16.bmp | 5880 | logplain |
| -rw-r--r-- | clock_smalldigits.160x128x2.bmp | 3264 | logplain |
| -rw-r--r-- | clock_smalldigits.220x176x16.bmp | 5880 | logplain |
| -rw-r--r-- | clock_smalldigits.320x240x16.bmp | 13160 | logplain |
| -rw-r--r-- | clock_smallsegments.112x64x1.bmp | 686 | logplain |
| -rw-r--r-- | clock_smallsegments.128x128x16.bmp | 5880 | logplain |
| -rwxr-xr-x | clock_smallsegments.132x80x16.bmp | 4786 | logplain |
| -rw-r--r-- | clock_smallsegments.160x128x16.bmp | 5880 | logplain |
| -rw-r--r-- | clock_smallsegments.160x128x2.bmp | 3264 | logplain |
| -rw-r--r-- | clock_smallsegments.220x176x16.bmp | 5880 | logplain |
| -rw-r--r-- | clock_smallsegments.320x240x16.bmp | 13160 | logplain |
| -rw-r--r-- | flipit_cursor.17x17x16.bmp | 938 | logplain |
| -rw-r--r-- | flipit_cursor.25x25x16.bmp | 1954 | logplain |
| -rw-r--r-- | flipit_cursor.28x28x16.bmp | 2406 | logplain |
| -rw-r--r-- | flipit_cursor.40x40x16.bmp | 4854 | logplain |
| -rw-r--r-- | flipit_cursor.56x56x16.bmp | 9462 | logplain |
| -rw-r--r-- | flipit_tokens.16x26x1.bmp | 1302 | logplain |
| -rw-r--r-- | flipit_tokens.17x34x16.bmp | 1822 | logplain |
| -rw-r--r-- | flipit_tokens.25x50x16.bmp | 3854 | logplain |
| -rw-r--r-- | flipit_tokens.25x50x2.bmp | 2478 | logplain |
| -rw-r--r-- | flipit_tokens.28x56x16.bmp | 4758 | logplain |
| -rw-r--r-- | flipit_tokens.28x56x2.bmp | 1638 | logplain |
| -rw-r--r-- | flipit_tokens.40x80x16.bmp | 9654 | logplain |
| -rw-r--r-- | flipit_tokens.56x112x16.bmp | 18870 | logplain |
| -rw-r--r-- | invadrox.160x128x2.bmp | 934 | logplain |
| -rw-r--r-- | invadrox.176x132x16.bmp | 938 | logplain |
| -rw-r--r-- | invadrox.320x240x16.bmp | 1726 | logplain |
| -rw-r--r-- | invadrox_left.320x240x16.bmp | 5830 | logplain |
| -rw-r--r-- | invadrox_logo.176x220x16.bmp | 12886 | logplain |
| -rw-r--r-- | invadrox_logo.240x320x16.bmp | 19766 | logplain |
| -rw-r--r-- | invadrox_right.320x240x16.bmp | 5830 | logplain |
| -rw-r--r-- | jackpot_slots.30x420x1.bmp | 1742 | logplain |
| -rw-r--r-- | jewels.112x64x1.bmp | 798 | logplain |
| -rw-r--r-- | jewels.128x128x16.bmp | 14222 | logplain |
| -rwxr-xr-x | jewels.132x80x16.bmp | 7414 | logplain |
| -rw-r--r-- | jewels.138x110x2.bmp | 5862 | logplain |
| -rw-r--r-- | jewels.160x128x16.bmp | 17718 | logplain |
| -rw-r--r-- | jewels.160x128x2.bmp | 6966 | logplain |
| -rw-r--r-- | jewels.220x176x16.bmp | 34462 | logplain |
| -rw-r--r-- | jewels.320x240x16.bmp | 63534 | logplain |
| -rwxr-xr-x | matrix_bold.bmp | 17694 | logplain |
| -rwxr-xr-x | matrix_normal.bmp | 17694 | logplain |
| -rw-r--r-- | minesweeper_tiles.10x10x24.bmp | 4214 | logplain |
| -rw-r--r-- | minesweeper_tiles.12x12x2.bmp | 2950 | logplain |
| -rw-r--r-- | minesweeper_tiles.12x12x24.bmp | 5672 | logplain |
| -rw-r--r-- | minesweeper_tiles.16x16x24.bmp | 10040 | logplain |
| -rw-r--r-- | minesweeper_tiles.8x8x1.bmp | 2550 | logplain |
| -rw-r--r-- | pictureflow_emptyslide.100x100x16.bmp | 30054 | logplain |
| -rw-r--r-- | pictureflow_emptyslide.50x50x16.bmp | 7654 | logplain |
| -rw-r--r-- | pictureflow_logo.100x18x16.bmp | 5454 | logplain |
| -rw-r--r-- | pictureflow_logo.193x34x16.bmp | 19776 | logplain |
| -rw-r--r-- | rockblox_background.128x128x16.bmp | 49206 | logplain |
| -rwxr-xr-x | rockblox_background.132x80x16.bmp | 31734 | logplain |
| -rw-r--r-- | rockblox_background.138x110x2.bmp | 15472 | logplain |
| -rw-r--r-- | rockblox_background.160x128x16.bmp | 61496 | logplain |
| -rw-r--r-- | rockblox_background.160x128x2.bmp | 21560 | logplain |
| -rw-r--r-- | rockblox_background.176x132x16.bmp | 69752 | logplain |
| -rw-r--r-- | rockblox_background.176x220x16.bmp | 116214 | logplain |
| -rw-r--r-- | rockblox_background.220x176x16.bmp | 116216 | logplain |
| -rw-r--r-- | rockblox_background.240x320x16.bmp | 230454 | logplain |
| -rw-r--r-- | rockblox_background.320x240x16.bmp | 230456 | logplain |
| -rw-r--r-- | rockpaint.8x8x24.bmp | 3726 | logplain |
| -rw-r--r-- | rockpaint_hsvrgb.8x10x24.bmp | 2934 | logplain |
| -rw-r--r-- | sliding_puzzle.110x110x2.bmp | 13398 | logplain |
| -rw-r--r-- | sliding_puzzle.128x128x16.bmp | 49206 | logplain |
| -rw-r--r-- | sliding_puzzle.128x128x2.bmp | 17462 | logplain |
| -rw-r--r-- | sliding_puzzle.176x176x16.bmp | 92982 | logplain |
| -rw-r--r-- | sliding_puzzle.240x240x16.bmp | 172854 | logplain |
| -rw-r--r-- | sliding_puzzle.80x64x1.bmp | 830 | logplain |
| -rw-r--r-- | sliding_puzzle.80x80x16.bmp | 19254 | logplain |
| -rw-r--r-- | sliding_puzzle.bmp | 480054 | logplain |
| -rw-r--r-- | snake2_bottom.160x128x16.bmp | 4856 | logplain |
| -rw-r--r-- | snake2_bottom.160x128x2.bmp | 918 | logplain |
| -rw-r--r-- | snake2_bottom.176x132x16.bmp | 5336 | logplain |
| -rw-r--r-- | snake2_bottom.220x176x16.bmp | 6654 | logplain |
| -rw-r--r-- | snake2_bottom.240x320x16.bmp | 7256 | logplain |
| -rw-r--r-- | snake2_bottom.320x240x16.bmp | 9656 | logplain |
| -rw-r--r-- | snake2_header1.160x128x16.bmp | 18296 | logplain |
| -rw-r--r-- | snake2_header1.160x128x2.bmp | 3158 | logplain |
| -rw-r--r-- | snake2_header1.176x132x16.bmp | 20120 | logplain |
| -rw-r--r-- | snake2_header1.220x176x16.bmp | 25136 | logplain |
| -rw-r--r-- | snake2_header1.240x320x16.bmp | 27416 | logplain |
| -rw-r--r-- | snake2_header1.320x240x16.bmp | 36536 | logplain |
| -rw-r--r-- | snake2_header2.160x128x16.bmp | 18296 | logplain |
| -rw-r--r-- | snake2_header2.160x128x2.bmp | 3158 | logplain |
| -rw-r--r-- | snake2_header2.176x132x16.bmp | 20120 | logplain |
| -rw-r--r-- | snake2_header2.220x176x16.bmp | 25136 | logplain |
| -rw-r--r-- | snake2_header2.240x320x16.bmp | 27416 | logplain |
| -rw-r--r-- | snake2_header2.320x240x16.bmp | 36536 | logplain |
| -rw-r--r-- | snake2_left.160x128x16.bmp | 2616 | logplain |
| -rw-r--r-- | snake2_left.160x128x2.bmp | 758 | logplain |
| -rw-r--r-- | snake2_left.176x132x16.bmp | 2744 | logplain |
| -rw-r--r-- | snake2_left.220x176x16.bmp | 4150 | logplain |
| -rw-r--r-- | snake2_left.240x320x16.bmp | 3894 | logplain |
| -rw-r--r-- | snake2_left.320x240x16.bmp | 6200 | logplain |
| -rw-r--r-- | snake2_right.160x128x16.bmp | 2616 | logplain |
| -rw-r--r-- | snake2_right.160x128x2.bmp | 758 | logplain |
| -rw-r--r-- | snake2_right.176x132x16.bmp | 2744 | logplain |
| -rw-r--r-- | snake2_right.220x176x16.bmp | 4150 | logplain |
| -rw-r--r-- | snake2_right.240x320x16.bmp | 3894 | logplain |
| -rw-r--r-- | snake2_right.320x240x16.bmp | 6200 | logplain |
| -rw-r--r-- | sokoban_tiles.14x14.bmp | 4366 | logplain |
| -rw-r--r-- | sokoban_tiles.6x6.bmp | 894 | logplain |
| -rw-r--r-- | sokoban_tiles.6x6x2.bmp | 894 | logplain |
| -rw-r--r-- | sokoban_tiles.9x9.bmp | 1818 | logplain |
| -rw-r--r-- | solitaire_suitsi.13x52x1.bmp | 270 | logplain |
| -rw-r--r-- | solitaire_suitsi.15x80x16.bmp | 3894 | logplain |
| -rw-r--r-- | solitaire_suitsi.15x80x2.bmp | 1350 | logplain |
| -rw-r--r-- | solitaire_suitsi.18x92x16.bmp | 5206 | logplain |
| -rw-r--r-- | solitaire_suitsi.18x92x2.bmp | 1914 | logplain |
| -rw-r--r-- | solitaire_suitsi.26x132x16.bmp | 10614 | logplain |
| -rw-r--r-- | solitaire_suitsi.37x196x16.bmp | 22006 | logplain |
| -rw-r--r-- | star_tiles.10x10.bmp | 1654 | logplain |
| -rw-r--r-- | star_tiles.10x10.grey.bmp | 1678 | logplain |
| -rw-r--r-- | star_tiles.11x11.bmp | 2034 | logplain |
| -rw-r--r-- | star_tiles.13x13.bmp | 2654 | logplain |
| -rw-r--r-- | star_tiles.15x15.bmp | 3654 | pt">*a;
int npoints;
t_float *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
else if (!garray_getfloatarray(a, &npoints, &vec))
pd_error(x, "%s: bad template for tabread4", x->x_arrayname->s_name);
else if (npoints < 4)
outlet_float(x->x_obj.ob_outlet, 0);
else if (f <= 1)
outlet_float(x->x_obj.ob_outlet, vec[1]);
else if (f >= npoints - 2)
outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]);
else
{
int n = f;
float a, b, c, d, cminusb, frac, *fp;
if (n >= npoints - 2)
n = npoints - 3;
fp = vec + n;
frac = f - n;
a = fp[-1];
b = fp[0];
c = fp[1];
d = fp[2];
cminusb = c-b;
outlet_float(x->x_obj.ob_outlet, b + frac * (
cminusb - 0.1666667f * (1.-frac) * (
(d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b))));
}
}
static void tabread4_set(t_tabread4 *x, t_symbol *s)
{
x->x_arrayname = s;
}
static void *tabread4_new(t_symbol *s)
{
t_tabread4 *x = (t_tabread4 *)pd_new(tabread4_class);
x->x_arrayname = s;
outlet_new(&x->x_obj, &s_float);
return (x);
}
static void tabread4_setup(void)
{
tabread4_class = class_new(gensym("tabread4"), (t_newmethod)tabread4_new,
0, sizeof(t_tabread4), 0, A_DEFSYM, 0);
class_addfloat(tabread4_class, (t_method)tabread4_float);
class_addmethod(tabread4_class, (t_method)tabread4_set, gensym("set"),
A_SYMBOL, 0);
}
/* ------------------ tabwrite: control ------------------------ */
static t_class *tabwrite_class;
typedef struct _tabwrite
{
t_object x_obj;
t_symbol *x_arrayname;
t_clock *x_clock;
float x_ft1;
double x_updtime;
int x_set;
} t_tabwrite;
static void tabwrite_tick(t_tabwrite *x)
{
t_garray *a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class);
if (!a) bug("tabwrite_tick");
else garray_redraw(a);
x->x_set = 0;
x->x_updtime = clock_getsystime();
}
static void tabwrite_float(t_tabwrite *x, t_float f)
{
int i, vecsize;
t_garray *a;
t_float *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
else if (!garray_getfloatarray(a, &vecsize, &vec))
pd_error(x, "%s: bad template for tabwrite", x->x_arrayname->s_name);
else
{
int n = x->x_ft1;
double timesince = clock_gettimesince(x->x_updtime);
if (n < 0) n = 0;
else if (n >= vecsize) n = vecsize-1;
vec[n] = f;
if (timesince > 1000)
{
tabwrite_tick(x);
}
else
{
if (x->x_set == 0)
{
clock_delay(x->x_clock, 1000 - timesince);
x->x_set = 1;
}
}
}
}
static void tabwrite_set(t_tabwrite *x, t_symbol *s)
{
x->x_arrayname = s;
}
static void tabwrite_free(t_tabwrite *x)
{
clock_free(x->x_clock);
}
static void *tabwrite_new(t_symbol *s)
{
t_tabwrite *x = (t_tabwrite *)pd_new(tabwrite_class);
x->x_ft1 = 0;
x->x_arrayname = s;
x->x_updtime = clock_getsystime();
x->x_clock = clock_new(x, (t_method)tabwrite_tick);
floatinlet_new(&x->x_obj, &x->x_ft1);
return (x);
}
void tabwrite_setup(void)
{
tabwrite_class = class_new(gensym("tabwrite"), (t_newmethod)tabwrite_new,
(t_method)tabwrite_free, sizeof(t_tabwrite), 0, A_DEFSYM, 0);
class_addfloat(tabwrite_class, (t_method)tabwrite_float);
class_addmethod(tabwrite_class, (t_method)tabwrite_set, gensym("set"), A_SYMBOL, 0);
}
/* ------------------------ global setup routine ------------------------- */
void d_array_setup(void)
{
tabwrite_tilde_setup();
tabplay_tilde_setup();
tabread_tilde_setup();
tabread4_tilde_setup();
tabosc4_tilde_setup();
tabsend_setup();
tabreceive_setup();
tabread_setup();
tabread4_setup();
tabwrite_setup();
}