/*5:*/#line 4 "./header.w" #ifndef PATCHWERK_H#define PATCHWERK_H#include <stdio.h> #include <stdarg.h> /*6:*/#line 15 "./header.w" #ifndef PWFLT#define PWFLT float#endif typedef struct pw_node pw_node;typedef struct pw_pointer pw_pointer;typedef void(*pw_function)(pw_node*);typedef void(*pw_nodefun)(pw_node*,void*);/*56:*/#line 22 "./cable.w" typedef struct pw_cable pw_cable; /*:56*//*117:*/#line 18 "./pointer.w" typedef void(*pw_pointer_function)(pw_pointer*p); /*:117*//*123:*/#line 54 "./pointer.w" typedef struct{/*124:*/#line 62 "./pointer.w" pw_pointer*root;pw_pointer*last; /*:124*//*125:*/#line 68 "./pointer.w" unsigned int size; /*:125*/#line 56 "./pointer.w" }pw_pointerlist; /*:123*//*151:*/#line 19 "./pool.w" typedef struct pw_buffer pw_buffer;typedef struct pw_bufferpool pw_bufferpool; /*:151*//*220:*/#line 22 "./stack.w"typedef struct pw_stack pw_stack; /*:220*//*251:*/#line 18 "./patch.w" typedef struct pw_patch pw_patch; /*:251*//*312:*/#line 32 "./subpatch.w" typedef struct{pw_node*nodes;pw_node*last;int nnodes;pw_cable*out;pw_pointerlist plist;}pw_subpatch; /*:312*//*332:*/#line 14 "./egraph.w" typedef struct pw_evnode pw_evnode; /*:332*//*363:*/#line 262 "./egraph.w" typedef struct{/*364:*/#line 284 "./egraph.w" pw_evnode*node;int count;int terminal; /*:364*/#line 264 "./egraph.w" }pw_evwalker; /*:363*//*393:*/#line 55 "./memory.w" typedef int(*pw_mallocfun)(pw_patch*,size_t,void**);typedef int(*pw_freefun)(pw_patch*,void**); /*:393*/#line 24 "./header.w" /*:6*//*7:*/#line 27 "./header.w" /*55:*/#line 14 "./cable.w" struct pw_cable{/*57:*/#line 27 "./cable.w" pw_node*node; /*:57*//*58:*/#line 33 "./cable.w" PWFLT*val;PWFLT ival; /*:58*//*59:*/#line 44 "./cable.w" PWFLT*blk;int blksize; /*:59*//*60:*/#line 51 "./cable.w" unsigned char type; /*:60*//*62:*/#line 70 "./cable.w" pw_cable*pcable; /*:62*//*63:*/#line 80 "./cable.w" pw_buffer*buf; /*:63*/#line 16 "./cable.w" }; /*:55*/#line 28 "./header.w" #line 1 "./node.w"/*:7*//*22:*/#line 76 "./node.w" size_t pw_node_size(); /*:22*//*24:*/#line 92 "./node.w" void pw_node_init(pw_node*node,int blksize); /*:24*//*26:*/#line 116 "./node.w" int pw_node_get_id(pw_node*node); /*:26*//*28:*/#line 126 "./node.w" void pw_node_set_id(pw_node*node,int id); /*:28*//*30:*/#line 138 "./node.w" void pw_node_set_setup(pw_node*node,pw_function fun);void pw_node_set_compute(pw_node*node,pw_function fun);void pw_node_set_destroy(pw_node*node,pw_function fun); /*:30*//*32:*/#line 163 "./node.w" void pw_node_setup(pw_node*node);void pw_node_compute(pw_node*node);void pw_node_destroy(pw_node*node); /*:32*//*34:*/#line 187 "./node.w" void pw_node_set_data(pw_node*node,void*data);void*pw_node_get_data(pw_node*node); /*:34*//*36:*/#line 204 "./node.w" int pw_node_cables_alloc(pw_node*node,int ncables); /*:36*//*38:*/#line 227 "./node.w" int pw_node_cables_free(pw_node*node); /*:38*//*40:*/#line 248 "./node.w" int pw_node_get_cable(pw_node*node,int id,pw_cable**cable); /*:40*//*42:*/#line 264 "./node.w" int pw_node_blksize(pw_node*node); /*:42*//*44:*/#line 277 "./node.w" int pw_node_set_block(pw_node*node,int id); /*:44*//*46:*/#line 306 "./node.w" int pw_node_get_ncables(pw_node*node); /*:46*//*48:*/#line 317 "./node.w" int pw_node_get_type(pw_node*node);void pw_node_set_type(pw_node*node,int type); /*:48*//*50:*/#line 336 "./node.w" void pw_node_set_patch(pw_node*node,pw_patch*patch);int pw_node_get_patch(pw_node*node,pw_patch**patch); /*:50*//*52:*/#line 354 "./node.w" pw_node*pw_node_get_next(pw_node*node);void pw_node_set_next(pw_node*node,pw_node*next); /*:52*//*65:*/#line 88 "./cable.w" void pw_cable_init(pw_node*node,pw_cable*cable); /*:65*//*67:*/#line 108 "./cable.w" void pw_cable_free(pw_cable*cable); /*:67*//*70:*/#line 130 "./cable.w" void pw_cable_set_block(pw_cable*cable,PWFLT*blk,int blksize); /*:70*//*71:*/#line 134 "./cable.w" void pw_cable_set_constant(pw_cable*cable,PWFLT val); /*:71*//*73:*/#line 150 "./cable.w" void pw_cable_set_value(pw_cable*c,PWFLT val); /*:73*//*75:*/#line 163 "./cable.w" PWFLT pw_cable_get(pw_cable*cable,int pos); /*:75*//*77:*/#line 176 "./cable.w" void pw_cable_set(pw_cable*cable,int pos,PWFLT val); /*:77*//*79:*/#line 198 "./cable.w" int pw_cable_connect(pw_cable*c1,pw_cable*c2); /*:79*//*81:*/#line 220 "./cable.w" void pw_cable_connect_nocheck(pw_cable*c1,pw_cable*c2); /*:81*//*84:*/#line 255 "./cable.w"int pw_cable_pop(pw_cable*cab); /*:84*//*86:*/#line 272 "./cable.w"void pw_cable_push(pw_cable*cab); /*:86*//*88:*/#line 284 "./cable.w" int pw_cable_is_block(pw_cable*cab); /*:88*//*90:*/#line 296 "./cable.w" int pw_cable_is_constant(pw_cable*cab); /*:90*//*92:*/#line 316 "./cable.w" pw_buffer*pw_cable_get_buffer(pw_cable*cab);void pw_cable_set_buffer(pw_cable*cab,pw_buffer*buf); /*:92*//*94:*/#line 351 "./cable.w" int pw_cable_make_block(pw_cable*cable,pw_stack*stack,int blksize); /*:94*//*96:*/#line 370 "./cable.w" int pw_cable_clear(pw_cable*cab); /*:96*//*98:*/#line 389 "./cable.w" int pw_cable_mix(pw_cable*in,pw_cable*sum,PWFLT mix); /*:98*//*100:*/#line 400 "./cable.w" int pw_cable_blksize(pw_cable*cable); /*:100*//*102:*/#line 407 "./cable.w" void pw_cable_override(pw_cable*c1,pw_cable*c2); /*:102*//*105:*/#line 427 "./cable.w" void pw_cable_copy(pw_cable*c1,pw_cable*c2); /*:105*//*108:*/#line 7 "./error.w" enum{/*109:*/#line 34 "./error.w" PW_OK,PW_NOT_OK,PW_INVALID_CABLE,PW_INVALID_NODE,PW_INVALID_BUFFER,PW_ALREADY_ALLOCATED,PW_CONNECTION_MISMATCH,PW_INVALID_ENTRY,PW_NOT_ENOUGH_NODES,PW_NULL_VALUE,PW_I_DONT_KNOW,PW_POOL_FULL,PW_STACK_OVERFLOW /*:109*/#line 9 "./error.w" }; /*:108*//*111:*/#line 70 "./error.w" const char*pw_error(int rc); /*:111*//*113:*/#line 86 "./error.w" #define PW_ERROR_CHECK(rc) if(rc != PW_OK) return rc#line 1 "./pointer.w"/*:113*//*128:*/#line 76 "./pointer.w" int pw_pointer_create(pw_patch*patch,pw_pointer**pointer,pw_pointer_function free,void*ud); /*:128*//*130:*/#line 112 "./pointer.w" void pw_pointer_destroy(pw_pointer**pointer); /*:130*//*132:*/#line 124 "./pointer.w" void*pw_pointer_data(pw_pointer*pointer); /*:132*//*134:*/#line 135 "./pointer.w" void pw_pointer_set_type(pw_pointer*pointer,int id);int pw_pointer_get_type(pw_pointer*pointer); /*:134*//*136:*/#line 153 "./pointer.w" pw_pointer*pw_pointer_get_next(pw_pointer*p); /*:136*//*138:*/#line 163 "./pointer.w" void pw_pointer_set_next(pw_pointer*p,pw_pointer*next); /*:138*//*141:*/#line 177 "./pointer.w" void pw_pointerlist_init(pw_pointerlist*plist); /*:141*//*143:*/#line 189 "./pointer.w" pw_pointer*pw_pointerlist_top(pw_pointerlist*plist); /*:143*//*145:*/#line 202 "./pointer.w" void pw_pointerlist_append(pw_pointerlist*plist,pw_pointer*p); /*:145*//*147:*/#line 227 "./pointer.w" void pw_pointerlist_free(pw_pointerlist*plist); /*:147*//*162:*/#line 82 "./pool.w" size_t pw_buffer_size(void); /*:162*//*164:*/#line 93 "./pool.w"void pw_buffer_alloc(pw_patch*patch,pw_buffer*buf,int size); /*:164*//*167:*/#line 102 "./pool.w"void pw_buffer_free(pw_patch*patch,pw_buffer*buf); /*:167*//*169:*/#line 113 "./pool.w"void pw_buffer_init(pw_buffer*buf); /*:169*//*171:*/#line 123 "./pool.w"void pw_buffer_reinit(pw_buffer*buf); /*:171*//*173:*/#line 135 "./pool.w"void pw_buffer_mark(pw_buffer*buf); /*:173*//*175:*/#line 160 "./pool.w"int pw_buffer_unmark(pw_buffer*buf); /*:175*//*177:*/#line 169 "./pool.w"PWFLT*pw_buffer_data(pw_buffer*buf); /*:177*//*178:*/#line 175 "./pool.w"void pw_buffer_hold(pw_buffer*buf); /*:178*//*180:*/#line 191 "./pool.w"void pw_buffer_holdu(pw_buffer*buf); /*:180*//*183:*/#line 211 "./pool.w"int pw_buffer_unhold(pw_buffer*buf); /*:183*//*185:*/#line 221 "./pool.w" int pw_buffer_id(pw_buffer*buf); /*:185*//*187:*/#line 235 "./pool.w" void pw_bufferpool_init(pw_bufferpool*pool); /*:187*//*189:*/#line 259 "./pool.w" void pw_bufferpool_create(pw_patch*patch,pw_bufferpool*pool,int nbuf,int blksize); /*:189*//*191:*/Lines 1–500 of 912. Load more
/*5:*/ #line 4 "./header.w" #ifndef PATCHWERK_H #define PATCHWERK_H #include <stdio.h> #include <stdarg.h> /*6:*/ #line 15 "./header.w" #ifndef PWFLT #define PWFLT float #endif typedef struct pw_node pw_node; typedef struct pw_pointer pw_pointer; typedef void(*pw_function)(pw_node*); typedef void(*pw_nodefun)(pw_node*,void*); /*56:*/ #line 22 "./cable.w" typedef struct pw_cable pw_cable; /*:56*//*117:*/ #line 18 "./pointer.w" typedef void(*pw_pointer_function)(pw_pointer*p); /*:117*//*123:*/ #line 54 "./pointer.w" typedef struct{ /*124:*/ #line 62 "./pointer.w" pw_pointer*root; pw_pointer*last; /*:124*//*125:*/ #line 68 "./pointer.w" unsigned int size; /*:125*/ #line 56 "./pointer.w" }pw_pointerlist; /*:123*//*151:*/ #line 19 "./pool.w" typedef struct pw_buffer pw_buffer; typedef struct pw_bufferpool pw_bufferpool; /*:151*//*220:*/ #line 22 "./stack.w" typedef struct pw_stack pw_stack; /*:220*//*251:*/ #line 18 "./patch.w" typedef struct pw_patch pw_patch; /*:251*//*312:*/ #line 32 "./subpatch.w" typedef struct{ pw_node*nodes; pw_node*last; int nnodes; pw_cable*out; pw_pointerlist plist; }pw_subpatch; /*:312*//*332:*/ #line 14 "./egraph.w" typedef struct pw_evnode pw_evnode; /*:332*//*363:*/ #line 262 "./egraph.w" typedef struct{ /*364:*/ #line 284 "./egraph.w" pw_evnode*node; int count; int terminal; /*:364*/ #line 264 "./egraph.w" }pw_evwalker; /*:363*//*393:*/ #line 55 "./memory.w" typedef int(*pw_mallocfun)(pw_patch*,size_t,void**); typedef int(*pw_freefun)(pw_patch*,void**); /*:393*/ #line 24 "./header.w" /*:6*//*7:*/ #line 27 "./header.w" /*55:*/ #line 14 "./cable.w" struct pw_cable{ /*57:*/ #line 27 "./cable.w" pw_node*node; /*:57*//*58:*/ #line 33 "./cable.w" PWFLT*val; PWFLT ival; /*:58*//*59:*/ #line 44 "./cable.w" PWFLT*blk; int blksize; /*:59*//*60:*/ #line 51 "./cable.w" unsigned char type; /*:60*//*62:*/ #line 70 "./cable.w" pw_cable*pcable; /*:62*//*63:*/ #line 80 "./cable.w" pw_buffer*buf; /*:63*/ #line 16 "./cable.w" }; /*:55*/ #line 28 "./header.w" #line 1 "./node.w" /*:7*//*22:*/ #line 76 "./node.w" size_t pw_node_size(); /*:22*//*24:*/ #line 92 "./node.w" void pw_node_init(pw_node*node,int blksize); /*:24*//*26:*/ #line 116 "./node.w" int pw_node_get_id(pw_node*node); /*:26*//*28:*/ #line 126 "./node.w" void pw_node_set_id(pw_node*node,int id); /*:28*//*30:*/ #line 138 "./node.w" void pw_node_set_setup(pw_node*node,pw_function fun); void pw_node_set_compute(pw_node*node,pw_function fun); void pw_node_set_destroy(pw_node*node,pw_function fun); /*:30*//*32:*/ #line 163 "./node.w" void pw_node_setup(pw_node*node); void pw_node_compute(pw_node*node); void pw_node_destroy(pw_node*node); /*:32*//*34:*/ #line 187 "./node.w" void pw_node_set_data(pw_node*node,void*data); void*pw_node_get_data(pw_node*node); /*:34*//*36:*/ #line 204 "./node.w" int pw_node_cables_alloc(pw_node*node,int ncables); /*:36*//*38:*/ #line 227 "./node.w" int pw_node_cables_free(pw_node*node); /*:38*//*40:*/ #line 248 "./node.w" int pw_node_get_cable(pw_node*node,int id,pw_cable**cable); /*:40*//*42:*/ #line 264 "./node.w" int pw_node_blksize(pw_node*node); /*:42*//*44:*/ #line 277 "./node.w" int pw_node_set_block(pw_node*node,int id); /*:44*//*46:*/ #line 306 "./node.w" int pw_node_get_ncables(pw_node*node); /*:46*//*48:*/ #line 317 "./node.w" int pw_node_get_type(pw_node*node); void pw_node_set_type(pw_node*node,int type); /*:48*//*50:*/ #line 336 "./node.w" void pw_node_set_patch(pw_node*node,pw_patch*patch); int pw_node_get_patch(pw_node*node,pw_patch**patch); /*:50*//*52:*/ #line 354 "./node.w" pw_node*pw_node_get_next(pw_node*node); void pw_node_set_next(pw_node*node,pw_node*next); /*:52*//*65:*/ #line 88 "./cable.w" void pw_cable_init(pw_node*node,pw_cable*cable); /*:65*//*67:*/ #line 108 "./cable.w" void pw_cable_free(pw_cable*cable); /*:67*//*70:*/ #line 130 "./cable.w" void pw_cable_set_block(pw_cable*cable,PWFLT*blk,int blksize); /*:70*//*71:*/ #line 134 "./cable.w" void pw_cable_set_constant(pw_cable*cable,PWFLT val); /*:71*//*73:*/ #line 150 "./cable.w" void pw_cable_set_value(pw_cable*c,PWFLT val); /*:73*//*75:*/ #line 163 "./cable.w" PWFLT pw_cable_get(pw_cable*cable,int pos); /*:75*//*77:*/ #line 176 "./cable.w" void pw_cable_set(pw_cable*cable,int pos,PWFLT val); /*:77*//*79:*/ #line 198 "./cable.w" int pw_cable_connect(pw_cable*c1,pw_cable*c2); /*:79*//*81:*/ #line 220 "./cable.w" void pw_cable_connect_nocheck(pw_cable*c1,pw_cable*c2); /*:81*//*84:*/ #line 255 "./cable.w" int pw_cable_pop(pw_cable*cab); /*:84*//*86:*/ #line 272 "./cable.w" void pw_cable_push(pw_cable*cab); /*:86*//*88:*/ #line 284 "./cable.w" int pw_cable_is_block(pw_cable*cab); /*:88*//*90:*/ #line 296 "./cable.w" int pw_cable_is_constant(pw_cable*cab); /*:90*//*92:*/ #line 316 "./cable.w" pw_buffer*pw_cable_get_buffer(pw_cable*cab); void pw_cable_set_buffer(pw_cable*cab,pw_buffer*buf); /*:92*//*94:*/ #line 351 "./cable.w" int pw_cable_make_block(pw_cable*cable,pw_stack*stack,int blksize); /*:94*//*96:*/ #line 370 "./cable.w" int pw_cable_clear(pw_cable*cab); /*:96*//*98:*/ #line 389 "./cable.w" int pw_cable_mix(pw_cable*in,pw_cable*sum,PWFLT mix); /*:98*//*100:*/ #line 400 "./cable.w" int pw_cable_blksize(pw_cable*cable); /*:100*//*102:*/ #line 407 "./cable.w" void pw_cable_override(pw_cable*c1,pw_cable*c2); /*:102*//*105:*/ #line 427 "./cable.w" void pw_cable_copy(pw_cable*c1,pw_cable*c2); /*:105*//*108:*/ #line 7 "./error.w" enum{ /*109:*/ #line 34 "./error.w" PW_OK, PW_NOT_OK, PW_INVALID_CABLE, PW_INVALID_NODE, PW_INVALID_BUFFER, PW_ALREADY_ALLOCATED, PW_CONNECTION_MISMATCH, PW_INVALID_ENTRY, PW_NOT_ENOUGH_NODES, PW_NULL_VALUE, PW_I_DONT_KNOW, PW_POOL_FULL, PW_STACK_OVERFLOW /*:109*/ #line 9 "./error.w" }; /*:108*//*111:*/ #line 70 "./error.w" const char*pw_error(int rc); /*:111*//*113:*/ #line 86 "./error.w" #define PW_ERROR_CHECK(rc) if(rc != PW_OK) return rc #line 1 "./pointer.w" /*:113*//*128:*/ #line 76 "./pointer.w" int pw_pointer_create( pw_patch*patch, pw_pointer**pointer, pw_pointer_function free, void*ud ); /*:128*//*130:*/ #line 112 "./pointer.w" void pw_pointer_destroy(pw_pointer**pointer); /*:130*//*132:*/ #line 124 "./pointer.w" void*pw_pointer_data(pw_pointer*pointer); /*:132*//*134:*/ #line 135 "./pointer.w" void pw_pointer_set_type(pw_pointer*pointer,int id); int pw_pointer_get_type(pw_pointer*pointer); /*:134*//*136:*/ #line 153 "./pointer.w" pw_pointer*pw_pointer_get_next(pw_pointer*p); /*:136*//*138:*/ #line 163 "./pointer.w" void pw_pointer_set_next(pw_pointer*p,pw_pointer*next); /*:138*//*141:*/ #line 177 "./pointer.w" void pw_pointerlist_init(pw_pointerlist*plist); /*:141*//*143:*/ #line 189 "./pointer.w" pw_pointer*pw_pointerlist_top(pw_pointerlist*plist); /*:143*//*145:*/ #line 202 "./pointer.w" void pw_pointerlist_append(pw_pointerlist*plist,pw_pointer*p); /*:145*//*147:*/ #line 227 "./pointer.w" void pw_pointerlist_free(pw_pointerlist*plist); /*:147*//*162:*/ #line 82 "./pool.w" size_t pw_buffer_size(void); /*:162*//*164:*/ #line 93 "./pool.w" void pw_buffer_alloc(pw_patch*patch,pw_buffer*buf,int size); /*:164*//*167:*/ #line 102 "./pool.w" void pw_buffer_free(pw_patch*patch,pw_buffer*buf); /*:167*//*169:*/ #line 113 "./pool.w" void pw_buffer_init(pw_buffer*buf); /*:169*//*171:*/ #line 123 "./pool.w" void pw_buffer_reinit(pw_buffer*buf); /*:171*//*173:*/ #line 135 "./pool.w" void pw_buffer_mark(pw_buffer*buf); /*:173*//*175:*/ #line 160 "./pool.w" int pw_buffer_unmark(pw_buffer*buf); /*:175*//*177:*/ #line 169 "./pool.w" PWFLT*pw_buffer_data(pw_buffer*buf); /*:177*//*178:*/ #line 175 "./pool.w" void pw_buffer_hold(pw_buffer*buf); /*:178*//*180:*/ #line 191 "./pool.w" void pw_buffer_holdu(pw_buffer*buf); /*:180*//*183:*/ #line 211 "./pool.w" int pw_buffer_unhold(pw_buffer*buf); /*:183*//*185:*/ #line 221 "./pool.w" int pw_buffer_id(pw_buffer*buf); /*:185*//*187:*/ #line 235 "./pool.w" void pw_bufferpool_init(pw_bufferpool*pool); /*:187*//*189:*/ #line 259 "./pool.w" void pw_bufferpool_create(pw_patch*patch, pw_bufferpool*pool,int nbuf,int blksize); /*:189*//*191:*/