libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kevin Larke 1fc5183394 cmXScore.h/c,Makefile.am : Initial commit. 8 jaren geleden
app cmXScore.h/c,Makefile.am : Initial commit. 8 jaren geleden
dsp cmDspPgmKr.c : Set useInCompFl to false in _cmDspSysPgm_TimeLine(). 9 jaren geleden
linux cmAudioPortAlsa.c : Added _cmApDevReportFormats(). Added, but disabled, _cmApS24_3BE*(). Added i/oSignFl and i/oSwapFl to device record. Changed sample format selection algorithm to use fmt[]. 9 jaren geleden
osx cmAudioPortOsx.c : Replaced deprecated Core Audio API. 10 jaren geleden
sa sa/cmSaProc.c : Fixed bug where surroundstream.h/c inclusion was controlled by incorrect pre-processor flag. 9 jaren geleden
vop cmVectOps.h/c : Added use of _cmVOU_Abs() to eliminate warning regarding abs(unsigned). 9 jaren geleden
.gitignore .gitignore : Initial commit. 10 jaren geleden
Makefile.am cmXScore.h/c,Makefile.am : Initial commit. 8 jaren geleden
cmApBuf.c cmApBuf.h/c : Added code to handle audio timestamps. cmApBufUpdate() sets an input/output timestamp on each device according to the audio packet timestamp. cmApBufGetIO() returns the timestamp associated with each returned buffer. Added cmApBufOnPortEnable() to zero the timestamp when a port is enabled. This implementation of the audio timestamping processes is a hack because only the first timestamp is stored (after a call to cmApBufOnPortEnable()) and all subsequent timestamps are generated by incrementing this value according to the incoming/outgoing sample count. 11 jaren geleden
cmApBuf.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmArray.c cmArray.c: When the array handle is invalid cmArrayCount() now returns 0 instead of throwing an error. 11 jaren geleden
cmArray.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudDsp.c cmAudDsp.c : Added call to cmDspPgmJsonToDot() following cmDspSysPrintPgm(). 9 jaren geleden
cmAudDsp.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudDspIF.c cmAudioDsp.c,cmAudDspIF.h/c,cmMsgProtocol.h,cmDspClass.h:Changes to new procedure cmDspSysPrintPgm(). 11 jaren geleden
cmAudDspIF.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudDspLocal.c Added cmAudDspLocalSendSetup() and cmAudDspSendSetup() 12 jaren geleden
cmAudDspLocal.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudLabelFile.c cmAudLabelFile.c:Fixed uninitialzed 'rc' in cmGrObjWorldExt(). 11 jaren geleden
cmAudLabelFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioAggDev.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmAudioAggDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioBuf.c Initial commit 12 jaren geleden
cmAudioBuf.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioFile.c cmAudioFile.h/c : Added cmAudioFileSetSRate(), cmAudioFileSine() and chnaged cmAudioFileTest() to take a variable argument list. Added the ability to write WAV files. cmAudioFileCreate() now creates a WAV or AIF header based on the file name extension. 9 jaren geleden
cmAudioFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioFileDev.c cmAudioFileDev.c : Now includes cmCtx.h to allow for cmCtx dependency in public interface of cmAudioFile.h. 9 jaren geleden
cmAudioFileDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioFileMgr.c Initial commit 12 jaren geleden
cmAudioFileMgr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioNrtDev.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmAudioNrtDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioPort.c cmAudioPort.c : cmApTest() now accepts sample rate as a command line arg.. 9 jaren geleden
cmAudioPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioPortFile.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmAudioPortFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioSys.c cmAudioSys.h/c : cmAudioSysCtx_t now have time stamps which are set in the cmApBufGetIO() calls in _cmAsDspExecCallback(). _cmAudioSysEnable() now calls cmApBufOnPortEnable() to that cmApBuf() can be aware to when audio streaming is starting and stopping. 11 jaren geleden
cmAudioSys.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmAudioSysMsg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmComplexTypes.c cmComplexTypes.h/c : Added cmVOCR_MultVFV() and cmVOCR_DivVFV(). Implemented cmVOCR_Abs(). 9 jaren geleden
cmComplexTypes.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmCsv.c cmCsv.h/c: CSV reader now uses a hash table rather than symbol table. 10 jaren geleden
cmCsv.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmCtx.c Initial commit 12 jaren geleden
cmCtx.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmDList.c cmDList.h/c/Tpl.h : Changes to support initial debugging of cmDList. 9 jaren geleden
cmDList.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmDListTpl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmData.c cmData.h/c : Changed cmDataRecdAllocXXX() to return a cmDtRC_t. 11 jaren geleden
cmData.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmDevCfg.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmDevCfg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmDocMain.h Initial commit 12 jaren geleden
cmErr.c cmErr.c: Fix bug in use of va_list which showed up on spat-lab Mac port. 11 jaren geleden
cmErr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmExec.c cmExec.h/c, Makefile.am : Initial commit. 9 jaren geleden
cmExec.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFeatFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFeatFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFileSys.c cmFileSys.c : Fixed harmless compiler warning in _cmFileSysDirGetEntries(). 9 jaren geleden
cmFileSys.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFloatTypes.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFrameFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmFrameFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGlobal.c Initial commit 12 jaren geleden
cmGlobal.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGnuPlot.c cmGnuPlot.c : Removed 'inline' from _cmPrintData(). 9 jaren geleden
cmGnuPlot.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGr.c cmGr.c : Changed mouse drag logic in _cmGrEventMsMove(). 9 jaren geleden
cmGr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGrDevCtx.c cmGrDevCtx.c Added _cmGrDcOffs() macros. 11 jaren geleden
cmGrDevCtx.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGrPage.c cmGrPageLayout() now returns bool. 12 jaren geleden
cmGrPage.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGrPlot.c cmGrPlot.h : Make callbacks for deselected objects when a new object is selected. Added cmPlotObjCb() function. 9 jaren geleden
cmGrPlot.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmGrPlotAudio.c cmGrPlotAudio.c : The audio plot object no longer uses the underlying graphic objects 'user' pointer. This was a bug because the user of the audio object itself might use this pointer thereby overwrite the pointer set internally by the audio object. 11 jaren geleden
cmGrPlotAudio.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmHashTbl.c cmHashTbl.h/c : Initial commit. 10 jaren geleden
cmHashTbl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmJson.c cmJson.h/c:Added cmJsonIsModified(). 11 jaren geleden
cmJson.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmKeyboard.c cmKeyboard.h/c : Added cmIsKeyWaiting(). 9 jaren geleden
cmKeyboard.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmLex.c cmLex.c : Fixed bug in _cmLexIntMatcher(). 9 jaren geleden
cmLex.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmLib.c cmLib.c : Attempts to load non-library files now fail silently. 10 jaren geleden
cmLib.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmLinkedHeap.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmLinkedHeap.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMain.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMallocDebug.c cmMallocDebug.c:Fixed bug in cmMdAllocStr() where terminating zero was not always inserted. 11 jaren geleden
cmMallocDebug.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMath.c cmMath.h/c : Added cmModIncr(). 9 jaren geleden
cmMath.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMem.c cmMem.c : Added a comment at the location where breakpoints may be set to stop on the reallocation of a memory block with a known 'uniqueId'. 10 jaren geleden
cmMem.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMidi.c cmMidi.h/c : Added pedal related functions and control codes. 9 jaren geleden
cmMidi.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMidiFile.c cmMidiFile.h/c : Fixed bug where tempo changes were not being applied dtick instead of atick. 9 jaren geleden
cmMidiFile.h cmMidiFile.h/c : Fixed bug where tempo changes were not being applied dtick instead of atick. 9 jaren geleden
cmMidiFilePlay.c cmMidiFilePlay.c : Updates to use amicro instead of dtick in MIDI msg. 9 jaren geleden
cmMidiFilePlay.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMidiPort.c cmMidiPort.h/c : cmMpParseMidiData() and cmMpParseMidiTriple() now take a MIDI time stamp as part of the incoming message. 11 jaren geleden
cmMidiPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmMsgProtocol.c Initial commit 12 jaren geleden
cmMsgProtocol.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmPgmOpts.c cmPgmOpt.c : Fixed minor formatting of --help text. 9 jaren geleden
cmPgmOpts.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmPrefix.h Initial commit 12 jaren geleden
cmPrefs.c cmPrefs.h/c: Added cmPrefsGetUInt(). 11 jaren geleden
cmPrefs.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProc.c cmProc.c: Chnaged labs() to fabs() in calc of 'dLogProb' in cmChmmTrain(). 9 jaren geleden
cmProc.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProc2.c cmProc2.h/c : Added statVa to cmSpecDist(). 9 jaren geleden
cmProc2.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProc3.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmProc3.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProc4.c cmDspProc4.h/c : Added 'decl' entry type to scMod. 9 jaren geleden
cmProc4.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProc5.c cmProc5.h/c : Added parameter setters to cmNlmsEc. 9 jaren geleden
cmProc5.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProcObj.c cmProc.h,cmProcObj.c: Comment updates. 11 jaren geleden
cmProcObj.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmProcTest.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmProcTest.h Initial commit 12 jaren geleden
cmRbm.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmRbm.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmRpt.c cmRpt.c : Fixed bug in _cmDefaultPrint() where stdin was used with fputs() instead of stdout. 9 jaren geleden
cmRpt.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmRtNet.c cmRtNet.c : Changes to port number and bcastAddr in cmRtNetTest(). 10 jaren geleden
cmRtNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmRtSys.c cmRtNet.h/c : Corrected mispelling in #ifdef header guards. On failure of cmThreadMutexWaitOnCondVar() in _cmRtThreadCallback() the correct result code is now reported. 10 jaren geleden
cmRtSys.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmRtSysMsg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmSerialize.c Initial commit 12 jaren geleden
cmSerialize.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmStack.c cmStack.h/c: Added cmStackTop() to return the top stack element. 11 jaren geleden
cmStack.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmStrStream.c cmStrStream.c : Completed initial tests and fixed bugs in cmOStrStreamWrite(). 11 jaren geleden
cmStrStream.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmSymTbl.c cmSymTbl.c: Fixed cmSymTblRegisterFmt() to return new symbol id. 11 jaren geleden
cmSymTbl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmSyncRecd.c cmSyncRecd.h/c : Changed result codes from cmXXXSrRC to cmXXXSyRc to avoid conflicts with same named result codes from cmSerialize.h. 10 jaren geleden
cmSyncRecd.h cmSyncRecd.h/c : Changed result codes from cmXXXSrRC to cmXXXSyRc to avoid conflicts with same named result codes from cmSerialize.h. 10 jaren geleden
cmTagFile.c cmTagFile.h/c : cmTagFile now recognizes function definition, and structure and union tags. 11 jaren geleden
cmTagFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmTaskMgr.c cmTaskMgr.h/c : Many updates and changes to complete the initial development. 11 jaren geleden
cmTaskMgr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmText.c cmText.c : Implemented cmTextEncodeBase64(). 9 jaren geleden
cmText.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmTextTemplate.c Many changes 12 jaren geleden
cmTextTemplate.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmThread.c cmThread.c : Fixed bug in cmThPtrCAS() where #ifdef OS_VER_10_5 was used instead of #ifdef OS_64. 10 jaren geleden
cmThread.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmTime.c cmTime.h/c : Added cmTimeDiffMicros(),cmTimeIsLTE(),cmTimeIsGTE(),cmTimeIsEqual(),cmTimeIsZero(),cmTimeSetZero(). 11 jaren geleden
cmTime.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmUdpNet.c cmUdpNet.h/c : Changed argv[] in cmUdpNetTest() from char* to const char*. 10 jaren geleden
cmUdpNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmUdpPort.c cmUdpPort.c : Fixed bug in cmUdpTestV() where arguments were not correctly selected from 'arv'. 10 jaren geleden
cmUdpPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmUi.c cmUi.c : Removed unused variable from cmUiSelectPanel(). 10 jaren geleden
cmUi.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmUiDrvr.c cmUi.h/c and cmUiDrvr.h/c: Many changes and additions. 11 jaren geleden
cmUiDrvr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmUiRtSysMstr.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 jaren geleden
cmUiRtSysMstr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmVirtNet.c Initial commit 12 jaren geleden
cmVirtNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 jaren geleden
cmXml.c cmXml.h/c : Added cmXmlFindAttr(), cmXmlAttrInt(), cmXmlNodeValue(), cmXmlNodeInt() (and related functions.) cmXmlAlloc() now automatically parses file if 'fn' arg. is given. Fixed bug in cmXmlSearch() which did not return node when attribute keys were not given. 8 jaren geleden
cmXml.h cmXml.h/c : Added cmXmlFindAttr(), cmXmlAttrInt(), cmXmlNodeValue(), cmXmlNodeInt() (and related functions.) cmXmlAlloc() now automatically parses file if 'fn' arg. is given. Fixed bug in cmXmlSearch() which did not return node when attribute keys were not given. 8 jaren geleden