Experimental real-time audio and signal processing application development framework.
Go to file
2020-03-23 16:48:43 -04:00
dns_sd cwDnsSd, dns_sd/ : Updates to integrate Arduino version with Linux version. 2020-03-23 16:48:17 -04:00
html cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
study/serial Many changes and additions. 2019-12-24 10:05:24 -05:00
.gitignore .gitignore : updates 2020-03-23 10:51:18 -04:00
cwAudioBuf.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwAudioBuf.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioBufDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioDevice.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioDevice.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioDeviceAlsa.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwAudioDeviceAlsa.h Changed audio system to use external driver modules. 2019-12-25 21:44:14 -05:00
cwAudioDeviceDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioDeviceTest.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwAudioDeviceTest.h Added cw::audio::device::report(); 2020-02-12 13:22:48 -05:00
cwAvahiSurface.cpp Updated dns_sd/ to match the Arduino build. 2020-02-13 11:29:52 -05:00
cwCommon.h cwCommon.h : Add literal result code values to result code comments. 2020-03-16 22:58:05 -04:00
cwCommonImpl.cpp Initial commit 2019-12-18 22:24:12 -05:00
cwCommonImpl.h Initial implementation cwTcpSocket* 2019-12-27 16:52:45 -05:00
cwDnsSd.cpp cwDnsSd, dns_sd/ : Updates to integrate Arduino version with Linux version. 2020-03-23 16:48:17 -04:00
cwDnsSd.h cwUtility, cwDnsSd, cwEuCon : Initial commit. 2020-02-12 13:43:00 -05:00
cwEuCon.cpp cwEuCon.cpp : Handshake protocol no longer waits for a heart-beat before sending second handshake msg (i.e. 0xc ...) 2020-03-23 15:58:13 -04:00
cwEuCon.h cwUtility, cwDnsSd, cwEuCon : Initial commit. 2020-02-12 13:43:00 -05:00
cwFile.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwFile.h Changed audio system to use external driver modules. 2019-12-25 21:44:14 -05:00
cwFileSys.cpp cwFileSys.cpp : Added comments. 2020-01-27 17:49:19 -05:00
cwFileSys.h Implemented filesys::dirEntries() 2019-12-27 23:35:39 -05:00
cwIo.cpp cwIo* : Updates to include 'decl' files in header and initial sketch of interface. 2020-03-23 13:14:42 -04:00
cwIo.h cwIo* : Updates to include 'decl' files in header and initial sketch of interface. 2020-03-23 13:14:42 -04:00
cwIoTest.cpp cwIo* : Updates to include 'decl' files in header and initial sketch of interface. 2020-03-23 13:14:42 -04:00
cwIoTest.h cwIo.h/cpp, cwIoTest.h/cpp : Initial commit. 2020-01-27 17:53:44 -05:00
cwLex.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwLex.h Initial implementation cwTcpSocket* 2019-12-27 16:52:45 -05:00
cwLib.cpp cwLib.h/cpp, cwMutex.h/cpp : Initial commit. 2020-03-04 14:05:54 -05:00
cwLib.h cwLib.h/cpp, cwMutex.h/cpp : Initial commit. 2020-03-04 14:05:54 -05:00
cwLog.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwLog.h Initial implementation cwTcpSocket* 2019-12-27 16:52:45 -05:00
cwMdns.cpp cwDnsSd.cpp/cwMdns.cpp : Remove use of socket handle in calls to socket::initAddr(). 2020-03-16 22:55:39 -04:00
cwMdns.h cwMdns.h/cpp : Initial commit. 2020-01-27 17:51:38 -05:00
cwMem.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwMem.h Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwMidi.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMidi.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMidiAlsa.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMidiDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMidiPort.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMidiPort.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwMpScNbQueue.h cwMpScNbQueue.h : Added comments. 2020-01-27 17:50:02 -05:00
cwMutex.cpp cwLib.h/cpp, cwMutex.h/cpp : Initial commit. 2020-03-04 14:05:54 -05:00
cwMutex.h cwLib.h/cpp, cwMutex.h/cpp : Initial commit. 2020-03-04 14:05:54 -05:00
cwNbMem.cpp cwNbMem.h/cpp : Initial commit. 2020-01-27 17:51:56 -05:00
cwNbMem.h cwNbMem.h/cpp : Initial commit. 2020-01-27 17:51:56 -05:00
cwNumericConvert.h cwNumericConvert.h : Added string_to_number<boo>() 2020-03-23 10:43:38 -04:00
cwObject.cpp cwObject.cpp,cwObjectTemplate.h,main.cpp : Fixed cwObject bool parsing. 2020-02-29 00:12:15 -05:00
cwObject.h cwObject.h/cpp : Added list_ele(). 2020-01-27 17:48:17 -05:00
cwObjectTemplate.h cwObject.cpp,cwObjectTemplate.h,main.cpp : Fixed cwObject bool parsing. 2020-02-29 00:12:15 -05:00
cwSerialPort.cpp cwSerialPort.cpp : fix bug where the incorrect byte count could be sent on a receive callback. 2020-03-16 22:54:14 -04:00
cwSerialPort.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwSerialPortDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwSerialPortSrv.cpp cwSerialPort.h/cpp,cwSerialPortSrv.h/cpp : serialPort now manages multiple ports. 2020-03-05 22:04:53 -05:00
cwSerialPortSrv.h cwSerialPort.h/cpp,cwSerialPortSrv.h/cpp : serialPort now manages multiple ports. 2020-03-05 22:04:53 -05:00
cwSocket.cpp cwSocket.cpp : Sockets are now automatically closed when poll() detects HUP or NVAL conditions. 2020-03-18 19:54:01 -04:00
cwSocket.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwSocketDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwTcpSocket.cpp cwTcpSocket.cpp : Changed select_receive() to use p->fdH when available. 2020-03-23 16:46:04 -04:00
cwTcpSocket.h cwTcpSocket.h/cpp : Remove the handle_t argument in initAddr() 2020-03-16 22:52:21 -04:00
cwTcpSocketSrv.cpp Many changes and additions to cwTcpSocket* to support MDNS and DNS-SD operations. 2020-02-12 13:25:13 -05:00
cwTcpSocketSrv.h Many changes and additions to cwTcpSocket* to support MDNS and DNS-SD operations. 2020-02-12 13:25:13 -05:00
cwTcpSocketTest.cpp Many changes and additions to cwTcpSocket* to support MDNS and DNS-SD operations. 2020-02-12 13:25:13 -05:00
cwTcpSocketTest.h Many changes and additions to cwTcpSocket* to support MDNS and DNS-SD operations. 2020-02-12 13:25:13 -05:00
cwText.cpp cwText.h/cpp : Added nextNonWhiteChar() functions and toText() functions. 2020-03-23 10:42:16 -04:00
cwText.h cwText.h/cpp : Added nextNonWhiteChar() functions and toText() functions. 2020-03-23 10:42:16 -04:00
cwTextBuf.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwTextBuf.h Many changes and additions. 2019-12-24 10:05:24 -05:00
cwThread.cpp cwThread.cpp : Threads are no longer created in detached state 2020-03-18 19:05:48 -04:00
cwThread.h cwThread.h/cpp : thread_id_t is changed form unsigned to unsigned long long. 2020-01-27 17:50:57 -05:00
cwTime.cpp cwTime.h : Added now(), advanceMs() and futureMs(). 2020-03-04 14:06:27 -05:00
cwTime.h cwTime.h : Added now(), advanceMs() and futureMs(). 2020-03-04 14:06:27 -05:00
cwUi.cpp cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
cwUi.h cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
cwUiDecls.h cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
cwUiTest.cpp cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
cwUiTest.h cwUi* : Initial implementation. 2020-03-23 10:50:10 -04:00
cwUtility.cpp cwUtility, cwDnsSd, cwEuCon : Initial commit. 2020-02-12 13:43:00 -05:00
cwUtility.h cwUtility, cwDnsSd, cwEuCon : Initial commit. 2020-02-12 13:43:00 -05:00
cwWebSock.cpp Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwWebSock.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwWebSockDecls.h Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
cwWebSockSvr.cpp Standardized filesys and mem namespaces. 2019-12-27 21:51:28 -05:00
cwWebSockSvr.h Implemented filesys::dirEntries() 2019-12-27 23:35:39 -05:00
main.cfg Initial commit 2019-12-18 22:24:12 -05:00
main.cpp main.cpp : Updated 'sockMgrTest' usage string. 2020-03-23 16:48:43 -04:00
Makefile Added 'decls' include files to hold public declarations for audio,midi,serial,socket, and websock modules. 2020-03-23 10:41:28 -04:00
README.md README.md : updates 2020-03-23 10:51:29 -04:00
setup.sh Changed audio system to use external driver modules. 2019-12-25 21:44:14 -05:00
valgrind_test.sh valgrind_test.sh : Add 5th command line argument placeholder. 2020-03-16 22:59:31 -04:00

To Do

  • Look at 'BUG' warnings in cwNumericConvert.h.

  • cwObject must be able to parse without dynamic memory allocation into a fixed buffer

  • cwObject must be able to be composed without dynamic memory allocation or from a fixed buffer.

  • cwWebsock is allocating memory on send().

  • cwWebsock: if the size of the recv and xmt buffer, as passed form the protocolArray[], is too small send() will fail without an error message. This is easy to reproduce by simply decreasing the size of the buffers in the protocol array.

  • Clean up the cwObject namespace - add an 'object' namespace inside 'cw'

  • Add underscore to the member variables of object_t.

  • logDefaultFormatter() in cwLog.cpp uses stack allocated memory in a way that could easily be exploited.

  • lexIntMatcher() in cwLex.cpp doesn't handle 'e' notation correctly. See note in code.

  • numeric_convert() in cwNumericConvert.h could be made more efficient using type_traits.

  • thread needs setters and getters for internal variables

  • change cwMpScNbQueue so that it does not require 'new'.

  • cwAudioBuf.cpp - the ch->fn in update() does not have the correct memory fence.

  • change file names to match object names

  • (DONE) change all NULL's to nullptr

  • (DONE) implement kTcpFl in cwTcpSocket.cpp

Development Setup

  1. Install libwebsockets.
    sudo dnf install g++ openssl-devel cmake
    cd sdk
    git clone https://libwebsockets.org/repo/libwebsockets
    cd libwebsockets
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/kevin/sdk/libwebsockets/build/out ..
  1. Environment setup:

    export LD_LIBRARY_PATH=~/sdk/libwebsockets/build/out/lib