diff --git a/README.md b/README.md index b16ebd8..eba6238 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,22 @@ # To Do +- Remove applications from the libcw folder and put them in their +own folders. + +- The UI needs to be better documented. Start by giving clear names +to the various parts: Browser, UI Manager, UI Server, Application. +Maybe describe in Model,View,Controller terms? + +- Document the meaning and way that id's and names/labels are used, +and intended to be used, and found by UI. As it is they are confusing. + +- The UI app id map should be validated after the UI is created. +In otherwords the parent/child pairs shoud actually exists. + +- Arrange the project layout so that all the UI based apps use the same ui.js. +Currently changes and improvements to one version of ui.js cannot be automatically +shared. - The ui manageer should buffer the current valid value of a given control so that the value can be accessed synchronously. This would prevent the application @@ -11,14 +27,19 @@ read by the app (e.g. getUiValue( appId, valueRef)) just prior to being used. As it is the UI values that are on the interface cannot be accessed synchronously instead the app is forced to notice all 'value' changes and store the last legal value. +- Add an ui::appIdToUuId() that returns the first matching appId, and then +optionally looks for duplicates as an error checking scheme. + +- The ui eleA[] data structure should be changed to a tree +because the current expandable array allows empty slots which need to be checked +for whenever the list is iterated. It is also very inefficient to delete from the +eleA[] because an exhaustive search is required to find all the children of the +element to be deleted. + - Should a warning be issued by audioBuf functions which return a set of values: muteFlags(),toneFlags(), gain( ... gainA) but where the size of the dest array does not match the actual number of channesl? -- Document the meaning and way that id's and names/labels are used, -and intended to be used, and found by UI. As it is they are confusing. - - - Any socket function which takes a IP/port address should have a version which also takes a sockaddr_in*. @@ -47,17 +68,7 @@ This is easy to reproduce by simply decreasing the size of the buffers in the pr - numeric_convert() d_min is NOT zero, it's smallest positive number, this fails when src == 0. min value is now set to zero. -- The UI app id map should be validated after the UI is created. -In otherwords the parent/child pairs shoud actually exists. -- Add an ui::appIdToUuId() that returns the first matching appId, and then -optionally looks for duplicates as an error checking scheme. - -- The ui eleA[] data structure should be changed to a tree -because the current expandable array allows empty slots which need to be checked -for whenever the list is iterated. It is also very inefficient to delete from the -eleA[] because an exhaustive search is required to find all the children of the -element to be deleted. - thread needs setters and getters for internal variables @@ -65,7 +76,7 @@ element to be deleted. - cwAudioBuf.cpp - the ch->fn in update() does not have the correct memory fence. -- change file names to match object names +- Change file names to match object names - Replace 24 bit read/write in cwAudioFile.cpp @@ -90,9 +101,9 @@ The 'jsUuId' is generated by the JS client when the UI element is created. The 'uuId' is generated by the UI server when the JS client registers the control. The 'appId' is assigned by the UI server when the JS client regsiters the control. -Client sends 'init' message. -Server sends 'create' messages. -Client sends 'register' messages. +Client sends 'init' message. +Server sends 'create' messages. +Client sends 'register' messages. Server send' 'id_assign' messages. # sockaddr_in reference @@ -115,10 +126,14 @@ struct in_addr { # Development Setup +0) +``` + sudo dnf install g++ fftw-devel alsa-lib-devel libubsan +``` 1) Install libwebsockets. ``` - sudo dnf install g++ openssl-devel cmake + sudo dnf install openssl-devel cmake cd sdk git clone https://libwebsockets.org/repo/libwebsockets cd libwebsockets @@ -145,7 +160,6 @@ struct in_addr { # Flow Notes: -- Add a version of var_register() that both registers and returns the value of the variable. - When a variable has a variant with a numberic channel should the 'all' channel variant be removed? @@ -167,6 +181,7 @@ specific types, to pass through. For example a 'selector' (n inputs, 1 output) o - Create a master cross-fader. +DONE: Add a version of var_register() that both registers and returns the value of the variable. Flow Instance Creation: -----------------------