WIP: private patch abstractions [ab]. first approach
Merge request reports
Activity
Quite a usability enhancement to create an
[ab foo]
and start editing it without having to touch the filesystem!A few immediate things spring to mind:
- Any problem with [ab] taking A_DEFSYM? It's just a nice pattern for the user to be able to create without args. For example, sometimes users will instantiate an object just to right-click "Help."
- How to handle saving. It took me awhile to get my changes to show up in subsequent abstractions because I hadn't thought to save the original [ab]. Also, it feels a bit weird to successfully save an [ab] in a patch which itself hasn't been saved. But I don't yet have any suggestions on alternative behavior to address this.
- It appears that a new [ab] instance with signal objects inside it isn't added to the DSP graph until you open it and create a new object.
1.Any problem with [ab] taking A_DEFSYM? It's just a nice pattern for the user to be able to create without args. For example, sometimes users will instantiate an object just to right-click "Help."
As far as I know, it is not possible to combine a GIMME arg type with other types (e.j. [...] A_DEFSYMBOL, A_GIMME, A_NULL). Therefore, the GIMME type is the only option to allow the abstraction to take arguments.
2.How to handle saving. It took me awhile to get my changes to show up in subsequent abstractions because I hadn't thought to save the original [ab]. Also, it feels a bit weird to successfully save an [ab] in a patch which itself hasn't been saved. But I don't yet have any suggestions on alternative behavior to address this.
Yes, I don't really like it either, but it is the most straighforward way I have come up with so far.
3.1. It appears that a new [ab] instance with signal objects inside it isn't added to the DSP graph until you open it and create a new object.
I'll take a look.
added 1 commit
- 7b6edd1b - some clean up. getbytes + memcpy + freebytes -> resizebytes
Therefore, the GIMME type is the only option to allow the abstraction to take arguments.
Ah, that's correct.
I think it's still worth special casing this in ab_new. If argc = 0, choose a default symbol to bind to. I'm not sure if
&s_
would cause problems when saving. If so, there are workarounds for that.
added 1 commit
- 3960a88a - some clean up, change a couple of names and add missing dynamic mem dealloc
added 2 commits
added 1 commit
- e381b8c8 - open instance canvas when first (empty) ab instance is created, prevent abs...
added 1 commit
- f92a829b - open instance canvas when first (empty) ab instance is created, dinamically...
added 1 commit
- 5d648090 - ab private abstractions clone integration [abclone]. first approach
added 1 commit
- fac506d1 - ab private abstractions clone integration [abclone]. first approach
added 1 commit
- 31ad71a1 - visual markings for dirty abstractions, first approach
added 1 commit
- bbd9c4a1 - add visual markings for dirty abstractions all the way up
added 1 commit
- 0bda995a - return a dummy object when creating [ab] objects during ab definitions...
added 1 commit
- ca33e6db - now you can create local private abstractions. usage: [ab bash-<name>]
added 1 commit
- cfb49499 - fix dirty markings when reloading abstractions
added 1 commit
- 2e5ccab5 - fix wrong initalized env for [ab] that prevented them from using filesystem utilities
added 2 commits