Paul Batchelorinitial work for libsndkit759997e5 years agoHistory
912 lines · 15.7 KB · C
RawDownload
/*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.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t