README.md : Updates.
This commit is contained in:
parent
ffda85b4ad
commit
6e56bec206
108
README.md
108
README.md
@ -941,27 +941,46 @@ resolvable without more information.
|
|||||||
|
|
||||||
### TODO:
|
### TODO:
|
||||||
|
|
||||||
|
- Eliminate the value() custom proc_t function and replace it by setting a 'delta flag' on the
|
||||||
|
variables that change. Optionally a linked list of changed variables could be implemented to
|
||||||
|
avoid having to search for changed variable values - although this list might have to be implemented as a thread safe linked list.
|
||||||
|
|
||||||
|
- Allow proc's to send messages to the UI. Implementation: During exec() the proc builds a global list of variables whose values
|
||||||
|
should be passed to the UI. Adding to the list must be done atomically, but removing can be non-atomic because it will happen
|
||||||
|
at the end of the network 'exec' cycle when no proc's are being executed. See cwMpScNbQueue push() for an example of how to do this.
|
||||||
|
|
||||||
|
- Allow min/max limits on numeric variables.
|
||||||
|
|
||||||
- Add a 'doc' string-list to the class desc.
|
- Add a 'doc' string-list to the class desc.
|
||||||
|
|
||||||
|
- Try using adding 'time' type and 'cfg' types to a 'log:{...}' stmt.
|
||||||
|
|
||||||
|
- print_network_fl and print_proc_dict_fl should be given from the command line.
|
||||||
|
(but it's ok to leave them as cfg flags also)
|
||||||
|
|
||||||
|
- Add 'doc' strings to all proc classes.
|
||||||
|
|
||||||
|
- Add 'doc' strings to user-defined proc data structure.
|
||||||
|
|
||||||
|
- It is an error to specify a suffix_id on a poly network proc because the suffix_id's are generated automatically.
|
||||||
|
This error should be caught by the compiler.
|
||||||
|
|
||||||
|
- How do user defined procedures handle suffix id's?
|
||||||
|
|
||||||
|
- Add a 'preset' arg to 'poly' so that a preset can be selected via the owning network.
|
||||||
|
Currently it is not possible to select a preset for a poly.
|
||||||
|
|
||||||
|
- Automatic assignment of sfx_id's should only occur when the network is a 'poly'.
|
||||||
|
This should be easy to detect.
|
||||||
|
|
||||||
- When a var value is given to var_create() it does not appear to channelize the
|
- When a var value is given to var_create() it does not appear to channelize the
|
||||||
var if value is a list. Is a value ever given directly to `var_create()`?
|
var if value is a list. Is a value ever given directly to `var_create()`?
|
||||||
Look at all the places `var_create()` is called can the value arg. be removed?
|
Look at all the places `var_create()` is called can the value arg. be removed?
|
||||||
|
|
||||||
- var_channelize() should never be called at runtime.
|
- var_channelize() should never be called at runtime.
|
||||||
|
|
||||||
- DONE: Remove `preset_label` and `type_src_label` from `_var_channelize()` and report error
|
|
||||||
locations from the point of call.
|
|
||||||
|
|
||||||
- Re-write the currawong circuit with caw.
|
- Re-write the currawong circuit with caw.
|
||||||
|
|
||||||
- DONE: Move proc_dict.cfg to libcw directory.
|
|
||||||
|
|
||||||
- DONE: The proc inst 'args' should be able to create mult variables. The only way to instantiate
|
|
||||||
new mult variables now is via the 'in' stmt.
|
|
||||||
|
|
||||||
- DONE: The `audio_merge` implementaiton is wrong. It should mimic `audio_mix` where all igain
|
|
||||||
coeff's are instantiated even if they are not referenced.
|
|
||||||
|
|
||||||
- Finish audio feedback example - this will probably involve writing an `audio_silence` class.
|
- Finish audio feedback example - this will probably involve writing an `audio_silence` class.
|
||||||
|
|
||||||
- Issue a warning if memory is allocated during runtime.
|
- Issue a warning if memory is allocated during runtime.
|
||||||
@ -969,8 +988,7 @@ coeff's are instantiated even if they are not referenced.
|
|||||||
- String assignment is allocating memory:
|
- String assignment is allocating memory:
|
||||||
See: `rc_t _val_set( value_t* val, const char* v ) cwFlowTypes.cpp line:464.`
|
See: `rc_t _val_set( value_t* val, const char* v ) cwFlowTypes.cpp line:464.`
|
||||||
|
|
||||||
|
- cwMpScNbQueue is allocating memory. This makes it blocking.
|
||||||
- DONE: Add the `caw` examples to the test suite.
|
|
||||||
|
|
||||||
- Check for illegal variable names in class descriptions. (no periods, trailing digits, or trailing underscores)
|
- Check for illegal variable names in class descriptions. (no periods, trailing digits, or trailing underscores)
|
||||||
|
|
||||||
@ -984,13 +1002,22 @@ coeff's are instantiated even if they are not referenced.
|
|||||||
initially applied - does that mean an uninitialized channel is just sitting there? (... no i think
|
initially applied - does that mean an uninitialized channel is just sitting there? (... no i think
|
||||||
the previous channel is duplicated in var_channelize())
|
the previous channel is duplicated in var_channelize())
|
||||||
|
|
||||||
|
- UI Issues:
|
||||||
|
+ When UI appIdMap[] labels do not match ui.cfg labels no error is generated. All appIdMap[] labels should be
|
||||||
|
validated to avoid this problem.
|
||||||
|
|
||||||
|
+ The reliance on using UUId to build UI's should be eliminated. It is very clunky.
|
||||||
|
|
||||||
|
+ UI elements should form proper tree's where elements know their children. As it is the links only go up the tree
|
||||||
|
from child to parent - searching down the tree is not possible.
|
||||||
|
|
||||||
|
|
||||||
- Class presets cannot address 'mult' variables. Maybe this is ok since 'mult' variables are generally connected to a source?
|
- Class presets cannot address 'mult' variables. Maybe this is ok since 'mult' variables are generally connected to a source?
|
||||||
... although 'gain' mult variables are not necessarily connected to a source see: `audio_split` or `audio_mix`.
|
... although 'gain' mult variables are not necessarily connected to a source see: `audio_split` or `audio_mix`.
|
||||||
Has this problem been addressed by allowing mult variables to be instantiated in the 'args' statement?
|
Has this problem been addressed by allowing mult variables to be instantiated in the 'args' statement?
|
||||||
|
|
||||||
- Documentation w/ examples.
|
- Documentation w/ examples.
|
||||||
+ Write the rules for each implementing member function.
|
+ Write the rules for each implementing member functions.
|
||||||
|
|
||||||
- value() should return a special return-code value to indicate that the
|
- value() should return a special return-code value to indicate that the
|
||||||
value should not be updated and distinguish it from an error code - which should stop the system.
|
value should not be updated and distinguish it from an error code - which should stop the system.
|
||||||
@ -1010,7 +1037,6 @@ value should not be updated and distinguish it from an error code - which should
|
|||||||
|
|
||||||
- Should the `object_t` be used in place of `value_t`?
|
- Should the `object_t` be used in place of `value_t`?
|
||||||
|
|
||||||
- Allow min/max limits on numeric variables.
|
|
||||||
|
|
||||||
- log:
|
- log:
|
||||||
+ should print the values for all channels - right now it is only
|
+ should print the values for all channels - right now it is only
|
||||||
@ -1021,7 +1047,7 @@ value should not be updated and distinguish it from an error code - which should
|
|||||||
This will allow feedback connections to be attached to them at a later stage of the network
|
This will allow feedback connections to be attached to them at a later stage of the network
|
||||||
instantiation.
|
instantiation.
|
||||||
|
|
||||||
- Implement subnet preset application.
|
- Implement user-defined-proc preset application.
|
||||||
|
|
||||||
- Implement the var attributes and attribute checking.
|
- Implement the var attributes and attribute checking.
|
||||||
|
|
||||||
@ -1031,7 +1057,7 @@ value should not be updated and distinguish it from an error code - which should
|
|||||||
|
|
||||||
- Implement dynamic loading of procs.
|
- Implement dynamic loading of procs.
|
||||||
|
|
||||||
- Implement a debug mode to aid in building networks and subnets (or is logging good enough)
|
- Implement a debug mode to aid in building networks and user-defined-procs (or is logging good enough)
|
||||||
|
|
||||||
- Implement multi-field messages.
|
- Implement multi-field messages.
|
||||||
|
|
||||||
@ -1042,26 +1068,6 @@ It's not clear there is a difference between specifying `_` and the default beh
|
|||||||
Is there a way to tell it to search the entire network from the root? Isn't that
|
Is there a way to tell it to search the entire network from the root? Isn't that
|
||||||
what '_' is supposed to do?
|
what '_' is supposed to do?
|
||||||
|
|
||||||
TODO: 9/24
|
|
||||||
- Try using adding 'time' type and 'cfg' types to a 'log:{...}' stmt.
|
|
||||||
|
|
||||||
- print_network_fl and print_proc_dict_fl should be given from the command line.
|
|
||||||
(but it's ok to leave them as cfg flags also)
|
|
||||||
|
|
||||||
- Add 'doc' strings to all proc classes.
|
|
||||||
|
|
||||||
- Add 'doc' strings to subnet data structure.
|
|
||||||
|
|
||||||
- It is an error to specify a suffix_id on a poly network proc because the suffix_id's are generated automatically.
|
|
||||||
This error should be caught by the compiler.
|
|
||||||
|
|
||||||
- How do user defined procedures handle suffix id's?
|
|
||||||
|
|
||||||
- Add a 'preset' arg to 'poly' so that a preset can be selected via the owning network.
|
|
||||||
Currently it is not possible to select a preset for a poly.
|
|
||||||
|
|
||||||
- Automatic assignment of sfx_id's should only occur when the network is a 'poly'.
|
|
||||||
This should be easy to detect.
|
|
||||||
|
|
||||||
|
|
||||||
Host Environments:
|
Host Environments:
|
||||||
@ -1072,6 +1078,20 @@ Host Environments:
|
|||||||
|
|
||||||
Done
|
Done
|
||||||
----
|
----
|
||||||
|
- DONE: Remove `preset_label` and `type_src_label` from `_var_channelize()` and report error
|
||||||
|
locations from the point of call.
|
||||||
|
|
||||||
|
- DONE: Move proc_dict.cfg to libcw directory.
|
||||||
|
|
||||||
|
- DONE: The proc inst 'args' should be able to create mult variables. The only way to instantiate
|
||||||
|
new mult variables now is via the 'in' stmt.
|
||||||
|
|
||||||
|
- DONE: The `audio_merge` implementaiton is wrong. It should mimic `audio_mix` where all igain
|
||||||
|
coeff's are instantiated even if they are not referenced.
|
||||||
|
|
||||||
|
- DONE: Add the `caw` examples to the test suite.
|
||||||
|
|
||||||
|
|
||||||
- DONE: Remove the multiple 'args' thing and and 'argsLabel'. 'args' should be a simple set of arg's.
|
- DONE: Remove the multiple 'args' thing and and 'argsLabel'. 'args' should be a simple set of arg's.
|
||||||
|
|
||||||
- DONE: Compile presets: at load time the presets should be resolved
|
- DONE: Compile presets: at load time the presets should be resolved
|
||||||
@ -1110,21 +1130,21 @@ ports of the internal elements.
|
|||||||
This might be a better approach to logging than having a 'printer' object.
|
This might be a better approach to logging than having a 'printer' object.
|
||||||
Add proc instance field: `log:{ var_label_0:0, var_label_1:0 } `
|
Add proc instance field: `log:{ var_label_0:0, var_label_1:0 } `
|
||||||
|
|
||||||
- Complete subnets:
|
- Complete user-def-procs:
|
||||||
+ Subnets should have presets written in terms of the subnet vars rather than the network vars
|
+ User-Def-Procs should have presets written in terms of the user-def-proc vars rather than the network vars
|
||||||
or the value application needs to follow the internal variable src_var back to the proxy var.
|
or the value application needs to follow the internal variable src_var back to the proxy var.
|
||||||
|
|
||||||
+ DONE: write a paragraph in the flow_doc.md about overall approach taken to subnet implementation.
|
+ DONE: write a paragraph in the flow_doc.md about overall approach taken to user-def-proc implementation.
|
||||||
|
|
||||||
+ DONE: subnet var desc's should be the same as non+subnet vars but also include the 'proxy' field.
|
+ DONE: user-def-proc var desc's should be the same as non+user-def-proc vars but also include the 'proxy' field.
|
||||||
In particular they should get default values.
|
In particular they should get default values.
|
||||||
If a var desc is part of a subnet then it must have a proxy.
|
If a var desc is part of a user-def-proc then it must have a proxy.
|
||||||
The output variables of var desc's must have the 'out' attribute
|
The output variables of var desc's must have the 'out' attribute
|
||||||
|
|
||||||
|
|
||||||
+ DONE: improve the subnet creating code by using consistent naming + use proxy or wrap but not both
|
+ DONE: improve the user-def-proc creating code by using consistent naming + use proxy or wrap but not both
|
||||||
|
|
||||||
+ DONE: improve code comments on subnet creation
|
+ DONE: improve code comments on user-def-proc creation
|
||||||
|
|
||||||
|
|
||||||
- DONE: Implement feedback
|
- DONE: Implement feedback
|
||||||
|
Loading…
Reference in New Issue
Block a user