libcm is a C development framework with an emphasis on audio signal processing applications.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
kevin df71bdfc70 Merge branch 'master' of klarke.webfactional.com:webapps/gitweb/repos/libcm 7 anos atrás
app cmXScore.c : Changed to fix problem with dynamic forks interpretation. 7 anos atrás
dsp Fixed bug in cmDspSys.c cmDspSysRcvMsg() where the value.flags field in the MIDI packet broadcast message was not initialized. 7 anos atrás
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 anos atrás
osx cmAudioPortOsx.c : Replaced deprecated Core Audio API. 10 anos atrás
sa sa/cmSaProc.c : Fixed bug where surroundstream.h/c inclusion was controlled by incorrect pre-processor flag. 9 anos atrás
vop cmProcTemplateMain.h : Added ending #include "cmProcTemplateUndef.h" 8 anos atrás
.gitignore .gitignore : Ignore .DS_Store. 8 anos atrás
Makefile.am cmSvgWriter.h/c,Makefile.am : Initial commit. 8 anos atrás
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 anos atrás
cmApBuf.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmArray.c cmArray.c: When the array handle is invalid cmArrayCount() now returns 0 instead of throwing an error. 11 anos atrás
cmArray.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudDsp.c cmAudDsp.c : Added _cmAdSendProgramDefault(0 and _cmAdSendAudioSysCfgDefault(). 8 anos atrás
cmAudDsp.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudDspIF.c cmAudioDsp.c,cmAudDspIF.h/c,cmMsgProtocol.h,cmDspClass.h:Changes to new procedure cmDspSysPrintPgm(). 11 anos atrás
cmAudDspIF.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudDspLocal.c Added cmAudDspLocalSendSetup() and cmAudDspSendSetup() 12 anos atrás
cmAudDspLocal.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudLabelFile.c cmAudLabelFile.c:Fixed uninitialzed 'rc' in cmGrObjWorldExt(). 11 anos atrás
cmAudLabelFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioAggDev.c cmAudioAggDev.c : Added AudioFileDevice and NRT device initialization to cmApAggTest() (Could not get Soundflower and Traveller aggregate device to work.) 8 anos atrás
cmAudioAggDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioBuf.c Initial commit 12 anos atrás
cmAudioBuf.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
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 anos atrás
cmAudioFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioFileDev.c cmAudioFileDev.c : Now includes cmCtx.h to allow for cmCtx dependency in public interface of cmAudioFile.h. 9 anos atrás
cmAudioFileDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioFileMgr.c Initial commit 12 anos atrás
cmAudioFileMgr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioNrtDev.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmAudioNrtDev.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioPort.c cmAudioPort.c : cmApTest() now accepts sample rate as a command line arg.. 9 anos atrás
cmAudioPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioPortFile.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmAudioPortFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
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 anos atrás
cmAudioSys.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmAudioSysMsg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmComplexTypes.c cmComplexTypes.h/c : Added cmVOCR_MultVFV() and cmVOCR_DivVFV(). Implemented cmVOCR_Abs(). 9 anos atrás
cmComplexTypes.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmCsv.c cmCsv.h : Renamed cmCsvInsertTextColAfter() to cmCsvInsertQTestColAfter() to be clear that the output will be quoted. Added cmCsvInsertIdentColAfter() to insert non-quoted text. 8 anos atrás
cmCsv.h cmCsv.h : Renamed cmCsvInsertTextColAfter() to cmCsvInsertQTestColAfter() to be clear that the output will be quoted. Added cmCsvInsertIdentColAfter() to insert non-quoted text. 8 anos atrás
cmCtx.c Initial commit 12 anos atrás
cmCtx.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmDList.c cmDList.h/c/Tpl.h : Changes to support initial debugging of cmDList. 9 anos atrás
cmDList.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmDListTpl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmData.c cmData.h/c : Changed cmDataRecdAllocXXX() to return a cmDtRC_t. 11 anos atrás
cmData.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmDevCfg.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmDevCfg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmDocMain.h Initial commit 12 anos atrás
cmErr.c cmErr.c: Fix bug in use of va_list which showed up on spat-lab Mac port. 11 anos atrás
cmErr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmExec.c cmExec.h/c, Makefile.am : Initial commit. 9 anos atrás
cmExec.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFeatFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFeatFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFileSys.c cmFileSys.h/c : Added cmFileSysMakeDirFn(),cmFileSysMakeUserDirFn(). 8 anos atrás
cmFileSys.h cmFileSys.h/c : Added cmFileSysMakeDirFn(),cmFileSysMakeUserDirFn(). 8 anos atrás
cmFloatTypes.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFrameFile.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmFrameFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGlobal.c Initial commit 12 anos atrás
cmGlobal.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGnuPlot.c cmGnuPlot.c : Removed 'inline' from _cmPrintData(). 9 anos atrás
cmGnuPlot.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGr.c cmGr.c : Changed mouse drag logic in _cmGrEventMsMove(). 9 anos atrás
cmGr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGrDevCtx.c cmGrDevCtx.c Added _cmGrDcOffs() macros. 11 anos atrás
cmGrDevCtx.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGrPage.c cmGrPageLayout() now returns bool. 12 anos atrás
cmGrPage.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmGrPlot.c cmGrPlot.c : Fixed an apparent bug in cmGrPlotObjSetStateFlags() where _cmGrPlotObjSetFocus() was only called if the focus flag was already set when it appears it should only called when it is not already set. 8 anos atrás
cmGrPlot.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
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 anos atrás
cmGrPlotAudio.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmHashTbl.c cmHashTbl.h/c : Initial commit. 10 anos atrás
cmHashTbl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmJson.c cmJson.h/c : Added cmJsonMemberAtIndex(). 8 anos atrás
cmJson.h cmJson.h/c : Added cmJsonMemberAtIndex(). 8 anos atrás
cmKeyboard.c cmKeyboard.h/c : Added cmIsKeyWaiting(). 9 anos atrás
cmKeyboard.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmLex.c cmLex.c : Fixed bug in _cmLexIntMatcher(). 9 anos atrás
cmLex.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmLib.c cmLib.c : Attempts to load non-library files now fail silently. 10 anos atrás
cmLib.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmLinkedHeap.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmLinkedHeap.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMain.c *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMallocDebug.c cmMallocDebug.c:Fixed bug in cmMdAllocStr() where terminating zero was not always inserted. 11 anos atrás
cmMallocDebug.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMath.c cmMath.h/c : Added cmModIncr(). 9 anos atrás
cmMath.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
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'. 11 anos atrás
cmMem.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMidi.c cmMidi.h/c : Added cmSciPitchToMidiPitch(). 8 anos atrás
cmMidi.h cmMidi.h/c : Added cmSciPitchToMidiPitch(). 8 anos atrás
cmMidiFile.c cmMidiFile.h/c : Added cmMidiFileGenSvgFile() 8 anos atrás
cmMidiFile.h cmMidiFile.h/c : Added cmMidiFileGenSvgFile() 8 anos atrás
cmMidiFilePlay.c cmMidiFile.h/c,cmMidiFilePlay.c : Added cmMidiFileCreate(), cmMidiFileInsertTrack???Msg(). Removed cmMidiFileIsNull() and _cmMidiFileMalloc(). 8 anos atrás
cmMidiFilePlay.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMidiPort.c cmMidiPort.h/c : cmMpParseMidiData() and cmMpParseMidiTriple() now take a MIDI time stamp as part of the incoming message. 11 anos atrás
cmMidiPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmMsgProtocol.c Initial commit 12 anos atrás
cmMsgProtocol.h cmMsgProtocol.h : Added kProgramDfltDuiId and kAudioSysCfgDfltDuiId. 8 anos atrás
cmPgmOpts.c cmPgmOpt.c : Fixed minor formatting of --help text. 9 anos atrás
cmPgmOpts.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmPrefix.h Initial commit 12 anos atrás
cmPrefs.c cmPrefs.h/c: Added cmPrefsGetUInt(). 11 anos atrás
cmPrefs.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmProc.c cmProc.c: Chnaged labs() to fabs() in calc of 'dLogProb' in cmChmmTrain(). 9 anos atrás
cmProc.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmProc2.c cmProc2.h/c : Added cmSpecDist2(). 7 anos atrás
cmProc2.h cmProc2.h/c : Added cmSpecDist2(). 7 anos atrás
cmProc3.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmProc3.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmProc4.c cmProc4.c : Fixed bug in _cmScModulatorReset() where the selected entry group was always the first entry group. 8 anos atrás
cmProc4.h cmProc4.h/c, cmDspKr.c : Changed cmScModulator to use entry groups rather than a single entry list. 8 anos atrás
cmProc5.c cmProc5.h/c : Added cmSeqAlign. 8 anos atrás
cmProc5.h cmProc5.h/c : Added cmSeqAlign. 8 anos atrás
cmProcObj.c cmProc.h,cmProcObj.c: Comment updates. 11 anos atrás
cmProcObj.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmProcTest.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmProcTest.h Initial commit 12 anos atrás
cmRbm.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmRbm.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmRpt.c cmRpt.c : Fixed bug in _cmDefaultPrint() where stdin was used with fputs() instead of stdout. 9 anos atrás
cmRpt.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmRtNet.c cmRtNet.c : Changes to port number and bcastAddr in cmRtNetTest(). 10 anos atrás
cmRtNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
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 anos atrás
cmRtSys.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmRtSysMsg.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmSerialize.c Initial commit 12 anos atrás
cmSerialize.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmStack.c cmStack.h/c: Added cmStackTop() to return the top stack element. 11 anos atrás
cmStack.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmStrStream.c cmStrStream.c : Completed initial tests and fixed bugs in cmOStrStreamWrite(). 11 anos atrás
cmStrStream.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmSvgWriter.c cmSvgWriter.c : Removed pan-zoom code from HTML header. 8 anos atrás
cmSvgWriter.h cmSvgWriter.h/c : Added calls to use svg-pan-zoom.js to HTML header. 8 anos atrás
cmSymTbl.c cmSymTbl.c: Fixed cmSymTblRegisterFmt() to return new symbol id. 11 anos atrás
cmSymTbl.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmSyncRecd.c cmSyncRecd.h/c : Changed result codes from cmXXXSrRC to cmXXXSyRc to avoid conflicts with same named result codes from cmSerialize.h. 10 anos atrás
cmSyncRecd.h cmSyncRecd.h/c : Changed result codes from cmXXXSrRC to cmXXXSyRc to avoid conflicts with same named result codes from cmSerialize.h. 10 anos atrás
cmTagFile.c cmTagFile.h/c : cmTagFile now recognizes function definition, and structure and union tags. 11 anos atrás
cmTagFile.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmTaskMgr.c cmTaskMgr.h/c : Many updates and changes to complete the initial development. 11 anos atrás
cmTaskMgr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmText.c cmText.h/c : Added cmTextLineCount(). 8 anos atrás
cmText.h cmText.h/c : Added cmTextLineCount(). 8 anos atrás
cmTextTemplate.c cmTextTemplate.c : Changed cmTextTemplateTest() to use cmFsMakeUserDirFn() to make platform independent. 8 anos atrás
cmTextTemplate.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmThread.c cmThread.c : Fixed bug in cmThPtrCAS() where #ifdef OS_VER_10_5 was used instead of #ifdef OS_64. 10 anos atrás
cmThread.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmTime.c cmTime.h/c : Added cmTimeDiffMicros(),cmTimeIsLTE(),cmTimeIsGTE(),cmTimeIsEqual(),cmTimeIsZero(),cmTimeSetZero(). 11 anos atrás
cmTime.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmUdpNet.c cmUdpNet.h/c : Changed argv[] in cmUdpNetTest() from char* to const char*. 10 anos atrás
cmUdpNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmUdpPort.c cmUdpPort.c : Fixed bug in cmUdpTestV() where arguments were not correctly selected from 'arv'. 10 anos atrás
cmUdpPort.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmUi.c cmUi.c : Removed unused variable from cmUiSelectPanel(). 10 anos atrás
cmUi.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmUiDrvr.c cmUi.h/c and cmUiDrvr.h/c: Many changes and additions. 11 anos atrás
cmUiDrvr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmUiRtSysMstr.c Many Files (See list in comment): Added #include "cmTime.h" to support Audio and MIDI time stamps. 11 anos atrás
cmUiRtSysMstr.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmVirtNet.c Initial commit 12 anos atrás
cmVirtNet.h *.h/c : Added 'cdg' markup to virtually all source files in libcm, libcm/app and libcm/dsp. 9 anos atrás
cmXml.c cmXml.c : Rewrote _cmXmlNodeHasChildR() to fix bug where all possible children were not visited. 8 anos atrás
cmXml.h cmXml.h/c : Added cmXmlNodeHasChildWithAttr() and cmXmlNodeHasChildWithAttrAndValue(). 8 anos atrás