diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile index c4648af3e1473fbef6352fa52a94f3f6ad793e64..868055b94a695ed35b1bee7151b9761249bca654 100644 --- a/Builds/Linux/Makefile +++ b/Builds/Linux/Makefile @@ -54,6 +54,7 @@ OBJECTS := \ $(OBJDIR)/AccessClass_de9602d5.o \ $(OBJDIR)/PracticalSocket_2574ecc8.o \ $(OBJDIR)/AudioComponent_521bd9c9.o \ + $(OBJDIR)/Rectifier_21cc94b6.o \ $(OBJDIR)/ArduinoOutput_d5a968de.o \ $(OBJDIR)/ArduinoOutputEditor_e1b7e52b.o \ $(OBJDIR)/AudioEditor_3931be27.o \ @@ -219,6 +220,11 @@ $(OBJDIR)/AudioComponent_521bd9c9.o: ../../Source/Audio/AudioComponent.cpp @echo "Compiling AudioComponent.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/Rectifier_21cc94b6.o: ../../Source/Processors/Rectifier/Rectifier.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling Rectifier.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/ArduinoOutput_d5a968de.o: ../../Source/Processors/ArduinoOutput/ArduinoOutput.cpp -@mkdir -p $(OBJDIR) @echo "Compiling ArduinoOutput.cpp" diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj index 182e007e92dcade4db8b8ffb275bfc63726d25a4..e6ef7acea6ef2aa03e7e4cf356bdcaecc8009784 100644 --- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 14BDAEA656AAFA60334CC55C = {isa = PBXBuildFile; fileRef = 420B0E95F1300ABFDC125DBF; }; C853FCE2F6C91B3643322CF0 = {isa = PBXBuildFile; fileRef = 9F577889CB6C54A2F7B1CA80; }; 0AE243437B40602D35435C32 = {isa = PBXBuildFile; fileRef = B04D87ED6AA4897B6CD3CCF6; }; + 9A7123033870A3CDE76FA585 = {isa = PBXBuildFile; fileRef = 8A651860B4EAFA5E94DEF3C7; }; 55227B30828797A8DCB0B91D = {isa = PBXBuildFile; fileRef = 95A64508FF3D0140D3001A19; }; 527EB48A4A9C2F4FF1BC4FB2 = {isa = PBXBuildFile; fileRef = E850C14F13F9855CE1E14C1A; }; 8352817FEDC7542D3E65B49A = {isa = PBXBuildFile; fileRef = DA4EAC64A750D0C3DEE83C5D; }; @@ -792,6 +793,7 @@ 89CDE7ED25D0EB7452486E85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SpikeDetector.cpp; path = ../../Source/Processors/SpikeDetector/SpikeDetector.cpp; sourceTree = "SOURCE_ROOT"; }; 8A026DB58E3555F7B070DA61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../JuceLibraryCode/modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; 8A07B5B6D56277A222AC0E90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HDF5Recording.h; path = ../../Source/Processors/RecordNode/HDF5Recording.h; sourceTree = "SOURCE_ROOT"; }; + 8A651860B4EAFA5E94DEF3C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Rectifier.cpp; path = ../../Source/Processors/Rectifier/Rectifier.cpp; sourceTree = "SOURCE_ROOT"; }; 8A989F74B1957BCB3B9BA398 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = rhd2000registers.h; path = "../../Source/Processors/DataThreads/rhythm-api/rhd2000registers.h"; sourceTree = "SOURCE_ROOT"; }; 8AE2DDA47B2DFDEEEF69B12F = {isa = PBXFileReference; lastKnownFileType = image.png; name = FileReaderIcon.png; path = ../../Resources/Images/Icons/FileReaderIcon.png; sourceTree = "SOURCE_ROOT"; }; 8B0B1D01BA8A37EC6058E518 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RootFinder.h; path = ../../Source/Processors/Dsp/RootFinder.h; sourceTree = "SOURCE_ROOT"; }; @@ -1238,6 +1240,7 @@ E666E60CC07666669FC77C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../JuceLibraryCode/modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; E67C5ACDC8208CDE200EC8C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../JuceLibraryCode/modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; E6D3A973D5CEF18CA2BAFF59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + E70C1EC37D445DE1D9C85749 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Rectifier.h; path = ../../Source/Processors/Rectifier/Rectifier.h; sourceTree = "SOURCE_ROOT"; }; E7366E169158F5A2D1D7B55A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../JuceLibraryCode/modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; E7460F066237871A704733E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../JuceLibraryCode/modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; E79259F2164D16553A69B458 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioComponent.h; path = ../../Source/Audio/AudioComponent.h; sourceTree = "SOURCE_ROOT"; }; @@ -1250,10 +1253,10 @@ E8964C0BE264A55753BC6B7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../JuceLibraryCode/modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; E91923510CB2280C3A3B9E9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../JuceLibraryCode/modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; E946426F95E0240683CB3337 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + EA354D7D8E48D461415D52D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../JuceLibraryCode/modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; EA9518CDEA7049C21D5CE2D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../JuceLibraryCode/modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; EAB6A66678B122C578B16445 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../JuceLibraryCode/modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; EAC262A83CD2BEA14542AE89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../JuceLibraryCode/modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; - EAEA49B9394D802B79CA8164 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../JuceLibraryCode/modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; EDA209B0E7D124EA581023AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../JuceLibraryCode/modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; EF3F9AA8D70E1D4D55F13182 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../JuceLibraryCode/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; F5A00ACFA3D76168F22F1205 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; @@ -1263,11 +1266,11 @@ E93BE115650B1CB80EACB841 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EditorViewportButtons.h; path = ../../Source/UI/EditorViewportButtons.h; sourceTree = "SOURCE_ROOT"; }; E97684DCE824DEDA6683C6CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../JuceLibraryCode/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; EA2FC92CECD1EDA1F07DC59C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; - EA354D7D8E48D461415D52D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../JuceLibraryCode/modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; EA73332E3D5AEC04ADDFBB2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../JuceLibraryCode/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; EAB2319C7AA57E06A2247CDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../JuceLibraryCode/modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; EAB637B566FEBBDADA654262 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../JuceLibraryCode/modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; EAC7A64301F0BF2C5E33A1F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../JuceLibraryCode/modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + EAEA49B9394D802B79CA8164 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../JuceLibraryCode/modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; EB5F9A50EB53A57D6AE303C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../JuceLibraryCode/modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; EBD8622EAEF10558809888B7 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "RadioButtons_selected_over-01.png"; path = "../../Resources/Images/Icons/RadioButtons_selected_over-01.png"; sourceTree = "SOURCE_ROOT"; }; EC95A2CF4B33EA37DA5FC1AC = {isa = PBXFileReference; lastKnownFileType = file.ttf; name = nordic.ttf; path = ../../Resources/Fonts/nordic.ttf; sourceTree = "SOURCE_ROOT"; }; @@ -1436,6 +1439,9 @@ C451728043944D40C69166C1 = {isa = PBXGroup; children = ( B04D87ED6AA4897B6CD3CCF6, E79259F2164D16553A69B458, ); name = Audio; sourceTree = "<group>"; }; + 90841694147021ABA55902E3 = {isa = PBXGroup; children = ( + 8A651860B4EAFA5E94DEF3C7, + E70C1EC37D445DE1D9C85749, ); name = Rectifier; sourceTree = "<group>"; }; 9C8E3549A602E74DCFC44244 = {isa = PBXGroup; children = ( 95A64508FF3D0140D3001A19, B410FE6CF1A561A1648343D6, @@ -1687,6 +1693,7 @@ F115ED75E977A54AAF036B2C, AE3D7946F13CE32AE41DD1B7, ); name = Visualization; sourceTree = "<group>"; }; 83A3E005DDFCC55F277EEDA5 = {isa = PBXGroup; children = ( + 90841694147021ABA55902E3, 9C8E3549A602E74DCFC44244, 9C7703C01E449614C1CD884D, 1D3795144FF61913C780F00D, @@ -2945,6 +2952,7 @@ 14BDAEA656AAFA60334CC55C, C853FCE2F6C91B3643322CF0, 0AE243437B40602D35435C32, + 9A7123033870A3CDE76FA585, 55227B30828797A8DCB0B91D, 527EB48A4A9C2F4FF1BC4FB2, 8352817FEDC7542D3E65B49A, diff --git a/Builds/VisualStudio2012/open-ephys.sln b/Builds/VisualStudio2012/open-ephys.sln index 520a8d855d09a997cfccb769049bb0e4c270ef34..61074c0e04aebb4f1d48dd95b47ccd0a86ed9f09 100644 --- a/Builds/VisualStudio2012/open-ephys.sln +++ b/Builds/VisualStudio2012/open-ephys.sln @@ -1,29 +1,21 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}" +Project("{5A05F353-1D63-394C-DFB0-981BB2309002}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug64|Win32 = Debug64|Win32 - Debug64|x64 = Debug64|x64 Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release64|Win32 = Release64|Win32 + Debug64|x64 = Debug64|x64 Release64|x64 = Release64|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.ActiveCfg = Debug|Win32 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.Build.0 = Debug|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|x64.ActiveCfg = Debug|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|Win32.ActiveCfg = Debug64|x64 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|x64.ActiveCfg = Release|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|Win32.ActiveCfg = Release64|x64 + {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64 + {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.ActiveCfg = Release64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.Build.0 = Release64|x64 EndGlobalSection diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj b/Builds/VisualStudio2012/open-ephys.vcxproj index 61c43e8f30464a30fc93c2676d06373a75f5a9c2..5f0e20bbbab3fe930a94fb7c7ae7bb5b4c61dfa8 100644 --- a/Builds/VisualStudio2012/open-ephys.vcxproj +++ b/Builds/VisualStudio2012/open-ephys.vcxproj @@ -266,6 +266,7 @@ <ClCompile Include="..\..\Source\AccessClass.cpp"/> <ClCompile Include="..\..\Source\Network\PracticalSocket.cpp"/> <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp"/> + <ClCompile Include="..\..\Source\Processors\Rectifier\Rectifier.cpp"/> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.cpp"/> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutputEditor.cpp"/> <ClCompile Include="..\..\Source\Processors\AudioNode\AudioEditor.cpp"/> @@ -1510,6 +1511,7 @@ <ClInclude Include="..\..\Source\AccessClass.h"/> <ClInclude Include="..\..\Source\Network\PracticalSocket.h"/> <ClInclude Include="..\..\Source\Audio\AudioComponent.h"/> + <ClInclude Include="..\..\Source\Processors\Rectifier\Rectifier.h"/> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.h"/> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutputEditor.h"/> <ClInclude Include="..\..\Source\Processors\AudioNode\AudioEditor.h"/> diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj.filters b/Builds/VisualStudio2012/open-ephys.vcxproj.filters index d02c3e8580b75663ae5bdd473d6f599d6676723e..7f7dc0c996473217d44bedf202a9fbe0baa77e74 100644 --- a/Builds/VisualStudio2012/open-ephys.vcxproj.filters +++ b/Builds/VisualStudio2012/open-ephys.vcxproj.filters @@ -32,6 +32,9 @@ <Filter Include="open-ephys\Source\Processors"> <UniqueIdentifier>{3DDEC88C-BAA5-2DDA-A59F-0FB74070AB82}</UniqueIdentifier> </Filter> + <Filter Include="open-ephys\Source\Processors\Rectifier"> + <UniqueIdentifier>{1D1CBF65-097A-91AC-3A16-B6BC18264911}</UniqueIdentifier> + </Filter> <Filter Include="open-ephys\Source\Processors\ArduinoOutput"> <UniqueIdentifier>{26D17857-B604-0035-CFB5-C3FFD320BD99}</UniqueIdentifier> </Filter> @@ -448,6 +451,9 @@ <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp"> <Filter>open-ephys\Source\Audio</Filter> </ClCompile> + <ClCompile Include="..\..\Source\Processors\Rectifier\Rectifier.cpp"> + <Filter>open-ephys\Source\Processors\Rectifier</Filter> + </ClCompile> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.cpp"> <Filter>open-ephys\Source\Processors\ArduinoOutput</Filter> </ClCompile> @@ -2037,6 +2043,9 @@ <ClInclude Include="..\..\Source\Audio\AudioComponent.h"> <Filter>open-ephys\Source\Audio</Filter> </ClInclude> + <ClInclude Include="..\..\Source\Processors\Rectifier\Rectifier.h"> + <Filter>open-ephys\Source\Processors\Rectifier</Filter> + </ClInclude> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.h"> <Filter>open-ephys\Source\Processors\ArduinoOutput</Filter> </ClInclude> diff --git a/Builds/VisualStudio2013/open-ephys.sln b/Builds/VisualStudio2013/open-ephys.sln index db5a4bab9d843b441033e22a717283daea896e4f..59a9d10ba28a4b47817570df74b1433044daefbb 100644 --- a/Builds/VisualStudio2013/open-ephys.sln +++ b/Builds/VisualStudio2013/open-ephys.sln @@ -1,31 +1,21 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}" +Project("{5A05F353-1D63-394C-DFB0-981BB2309002}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug64|Win32 = Debug64|Win32 - Debug64|x64 = Debug64|x64 Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release64|Win32 = Release64|Win32 + Debug64|x64 = Debug64|x64 Release64|x64 = Release64|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.ActiveCfg = Debug|Win32 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.Build.0 = Debug|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|x64.ActiveCfg = Debug|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|Win32.ActiveCfg = Debug64|x64 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|x64.ActiveCfg = Release|Win32 - {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|Win32.ActiveCfg = Release64|x64 + {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64 + {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.ActiveCfg = Release64|x64 {9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.Build.0 = Release64|x64 EndGlobalSection diff --git a/Builds/VisualStudio2013/open-ephys.vcxproj b/Builds/VisualStudio2013/open-ephys.vcxproj index 1f5a20447616a0a86aacf9c30018bb628037afaa..641c092f5e85b7b60271d18dbe95f29bc0f43eb6 100644 --- a/Builds/VisualStudio2013/open-ephys.vcxproj +++ b/Builds/VisualStudio2013/open-ephys.vcxproj @@ -270,6 +270,7 @@ <ClCompile Include="..\..\Source\AccessClass.cpp"/> <ClCompile Include="..\..\Source\Network\PracticalSocket.cpp"/> <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp"/> + <ClCompile Include="..\..\Source\Processors\Rectifier\Rectifier.cpp"/> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.cpp"/> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutputEditor.cpp"/> <ClCompile Include="..\..\Source\Processors\AudioNode\AudioEditor.cpp"/> @@ -1514,6 +1515,7 @@ <ClInclude Include="..\..\Source\AccessClass.h"/> <ClInclude Include="..\..\Source\Network\PracticalSocket.h"/> <ClInclude Include="..\..\Source\Audio\AudioComponent.h"/> + <ClInclude Include="..\..\Source\Processors\Rectifier\Rectifier.h"/> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.h"/> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutputEditor.h"/> <ClInclude Include="..\..\Source\Processors\AudioNode\AudioEditor.h"/> diff --git a/Builds/VisualStudio2013/open-ephys.vcxproj.filters b/Builds/VisualStudio2013/open-ephys.vcxproj.filters index 4524a8783ff4989d021dea5190aa5d4f1523a42d..99032d70f2c5559df17bc82b22247ac0671c395c 100644 --- a/Builds/VisualStudio2013/open-ephys.vcxproj.filters +++ b/Builds/VisualStudio2013/open-ephys.vcxproj.filters @@ -32,6 +32,9 @@ <Filter Include="open-ephys\Source\Processors"> <UniqueIdentifier>{3DDEC88C-BAA5-2DDA-A59F-0FB74070AB82}</UniqueIdentifier> </Filter> + <Filter Include="open-ephys\Source\Processors\Rectifier"> + <UniqueIdentifier>{1D1CBF65-097A-91AC-3A16-B6BC18264911}</UniqueIdentifier> + </Filter> <Filter Include="open-ephys\Source\Processors\ArduinoOutput"> <UniqueIdentifier>{26D17857-B604-0035-CFB5-C3FFD320BD99}</UniqueIdentifier> </Filter> @@ -448,6 +451,9 @@ <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp"> <Filter>open-ephys\Source\Audio</Filter> </ClCompile> + <ClCompile Include="..\..\Source\Processors\Rectifier\Rectifier.cpp"> + <Filter>open-ephys\Source\Processors\Rectifier</Filter> + </ClCompile> <ClCompile Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.cpp"> <Filter>open-ephys\Source\Processors\ArduinoOutput</Filter> </ClCompile> @@ -2037,6 +2043,9 @@ <ClInclude Include="..\..\Source\Audio\AudioComponent.h"> <Filter>open-ephys\Source\Audio</Filter> </ClInclude> + <ClInclude Include="..\..\Source\Processors\Rectifier\Rectifier.h"> + <Filter>open-ephys\Source\Processors\Rectifier</Filter> + </ClInclude> <ClInclude Include="..\..\Source\Processors\ArduinoOutput\ArduinoOutput.h"> <Filter>open-ephys\Source\Processors\ArduinoOutput</Filter> </ClInclude> diff --git a/Source/Processors/ProcessorGraph/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph/ProcessorGraph.cpp index 0f55525aad1bcfb20ea134da23bb15918af7f099..e7c7f8d851761e5d5afa90734cd30ee0fd796ce3 100644 --- a/Source/Processors/ProcessorGraph/ProcessorGraph.cpp +++ b/Source/Processors/ProcessorGraph/ProcessorGraph.cpp @@ -53,7 +53,7 @@ #include "../NetworkEvents/NetworkEvents.h" #include "../PSTH/PeriStimulusTimeHistogramNode.h" #include "../CAR/CAR.h" - +#include "../Rectifier/Rectifier.h" #ifdef ZEROMQ @@ -582,6 +582,11 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip processor = new FilterNode(); } + else if (subProcessorType.equalsIgnoreCase("Rectifier")) + { + std::cout << "Creating a new rectifier node." << std::endl; + processor = new Rectifier(); + } else if (subProcessorType.equalsIgnoreCase("Spike Detector")) { std::cout << "Creating a new spike detector." << std::endl; diff --git a/Source/Processors/Rectifier/Rectifier.cpp b/Source/Processors/Rectifier/Rectifier.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3d4ff9bcd7386e402f2b305130ecbcad9f8bf8de --- /dev/null +++ b/Source/Processors/Rectifier/Rectifier.cpp @@ -0,0 +1,74 @@ + +/* + ------------------------------------------------------------------ + + This file is part of the Open Ephys GUI + Copyright (C) 2014 Open Ephys + + ------------------------------------------------------------------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + */ + + + + +#include <stdio.h> +#include "Rectifier.h" + +Rectifier::Rectifier() +: GenericProcessor("Rectifier") + +{ + // It would be nice to have the option to do -abs for negative events (e.g. sharp waves) + //parameters.add(Parameter("Sign", -1.0, 1.0, 1.0, -1.0)); + +} + +Rectifier::~Rectifier() +{ + +} + + + +void Rectifier::setParameter(int parameterIndex, float newValue) +{ + editor->updateParameterButtons(parameterIndex); + // std::cout << "Setting Rectifier" << std::endl; + + if (currentChannel >= 0) + { + Parameter& p = parameters.getReference(parameterIndex); + p.setValue(newValue, currentChannel); + } +} + +void Rectifier::process(AudioSampleBuffer& buffer, + MidiBuffer& events) +{ + int nChannels = buffer.getNumChannels(); + + for (int ch = 0; ch < nChannels ; ch++) + { + int nSamples = buffer.getNumSamples(); + float* bufPtr = buffer.getWritePointer(ch); + for (int n = 0; n < nSamples; n++) + { + *(bufPtr + n) = fabsf(*(bufPtr + n)); + } + } + +} diff --git a/Source/Processors/Rectifier/Rectifier.h b/Source/Processors/Rectifier/Rectifier.h new file mode 100644 index 0000000000000000000000000000000000000000..ef9a28c898ffe4fc3a4b4cf48ebfbfa45960f67b --- /dev/null +++ b/Source/Processors/Rectifier/Rectifier.h @@ -0,0 +1,92 @@ +/* + ------------------------------------------------------------------ + + This file is part of the Open Ephys GUI + Copyright (C) 2014 Open Ephys + + ------------------------------------------------------------------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + */ + +#ifndef RECTIFIER_H_INCLUDED +#define RECTIFIER_H_INCLUDED + + +#ifdef _WIN32 +#include <Windows.h> +#endif + +#include "../../JuceLibraryCode/JuceHeader.h" +#include "../GenericProcessor/GenericProcessor.h" + +/** + + A simple rectifier + + */ + +class Rectifier : public GenericProcessor + +{ +public: + + /** The class constructor, used to initialize any members. */ + Rectifier(); + + /** The class destructor, used to deallocate memory */ + ~Rectifier(); + + /** Determines whether the processor is treated as a source. */ + bool isSource() + { + return false; + } + + /** Determines whether the processor is treated as a sink. */ + bool isSink() + { + return false; + } + + /** Defines the functionality of the processor. + + The process method is called every time a new data buffer is available. + + Processors can either use this method to add new data, manipulate existing + data, or send data to an external target (such as a display or other hardware). + + Continuous signals arrive in the "buffer" variable, event data (such as TTLs + and spikes) is contained in the "events" variable, and "nSamples" holds the + number of continous samples in the current buffer (which may differ from the + size of the buffer). + */ + void process(AudioSampleBuffer& buffer, MidiBuffer& events); + + /** Any variables used by the "process" function _must_ be modified only through + this method while data acquisition is active. If they are modified in any + other way, the application will crash. */ + void setParameter(int parameterIndex, float newValue); + +private: + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Rectifier); + +}; + + + + +#endif // RECTIFIER_H_INCLUDED diff --git a/Source/UI/ProcessorList.cpp b/Source/UI/ProcessorList.cpp index db4bb7ae7824ff703424f00e177212ba2cbbb658..f4ccaa138b3b901d009471aaf59a62315313906f 100755 --- a/Source/UI/ProcessorList.cpp +++ b/Source/UI/ProcessorList.cpp @@ -76,6 +76,7 @@ ProcessorList::ProcessorList() //filters->addSubItem(new ProcessorListItem("Digital Ref")); filters->addSubItem(new ProcessorListItem("Channel Map")); filters->addSubItem(new ProcessorListItem("Common Avg Ref")); + filters->addSubItem(new ProcessorListItem("Rectifier")); //filters->addSubItem(new ProcessorListItem("Eye Tracking")); diff --git a/open-ephys.jucer b/open-ephys.jucer index a44fc91edecb2e54da2b59ce54b51dadbf79320f..454047fcf94bff3a002c9f5cc96f4040d44da18d 100644 --- a/open-ephys.jucer +++ b/open-ephys.jucer @@ -289,6 +289,10 @@ file="Source/Audio/AudioComponent.h"/> </GROUP> <GROUP id="yQmqZWk" name="Processors"> + <GROUP id="{6E059BEC-4A8F-BCDA-1F91-9B22C6CBF2E4}" name="Rectifier"> + <FILE id="oMFsRh" name="Rectifier.cpp" compile="1" resource="0" file="Source/Processors/Rectifier/Rectifier.cpp"/> + <FILE id="NdIO5Q" name="Rectifier.h" compile="0" resource="0" file="Source/Processors/Rectifier/Rectifier.h"/> + </GROUP> <GROUP id="{447899E6-3974-53D0-5588-79643E8F5CA3}" name="ArduinoOutput"> <FILE id="Ucs5gf" name="ArduinoOutput.cpp" compile="1" resource="0" file="Source/Processors/ArduinoOutput/ArduinoOutput.cpp"/>