diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile index fc359c3989febbbfe8bb4531f2e778045a1f702f..398b848f09296e44d13bd7e8ec4cdfe4a968c47a 100644 --- a/Builds/Linux/Makefile +++ b/Builds/Linux/Makefile @@ -18,12 +18,12 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.4.2" -D "JUCE_APP_VERSION_HEX=0x402" -I /usr/include -I /usr/include/freetype2 -I ~/SDKs/VST3\ SDK -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I JuceLibraryCode/ + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.4.2.1" -D "JUCE_APP_VERSION_HEX=0x40201" -I /usr/include -I /usr/include/freetype2 -I ~/SDKs/VST3\ SDK -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I JuceLibraryCode/ CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O3 -rdynamic -fvisibility=hidden CXXFLAGS += $(CFLAGS) -std=c++11 LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -L/usr/local/include -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -ldl -lXext -lGLU -rdynamic -fPIC -Wl,-rpath,'$$ORIGIN' - TARGET := open-ephys.so + TARGET := open-ephys BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR) endif @@ -38,7 +38,7 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.4.2" -D "JUCE_APP_VERSION_HEX=0x402" -I /usr/include -I /usr/include/freetype2 -I ~/SDKs/VST3\ SDK -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I JuceLibraryCode/ + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.4.2.1" -D "JUCE_APP_VERSION_HEX=0x40201" -I /usr/include -I /usr/include/freetype2 -I ~/SDKs/VST3\ SDK -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I JuceLibraryCode/ CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 -rdynamic -fvisibility=hidden CXXFLAGS += $(CFLAGS) -std=c++11 LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -ldl -lXext -lGLU -rdynamic -fPIC -Wl,-rpath,'$$ORIGIN' diff --git a/Builds/MacOSX/Info-App.plist b/Builds/MacOSX/Info-App.plist index d6c7290d7f5f5fa579e83afc7e663d3ffbc1358d..29f12d9086cc1628e0c03fdeaf32d19f415fed47 100644 --- a/Builds/MacOSX/Info-App.plist +++ b/Builds/MacOSX/Info-App.plist @@ -18,9 +18,9 @@ <key>CFBundleSignature</key> <string>????</string> <key>CFBundleShortVersionString</key> - <string>0.4.2</string> + <string>0.4.2.1</string> <key>CFBundleVersion</key> - <string>0.4.2</string> + <string>0.4.2.1</string> <key>NSHumanReadableCopyright</key> <string>Open Ephys</string> <key>NSHighResolutionCapable</key> diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj index c7ec046745c24e7a999f8886f5951ad00c83c2d5..688922995b904eeaf72f3e8b721819ce474a81b3 100644 --- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj @@ -3358,8 +3358,8 @@ "_DEBUG=1", "DEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=0.4.2", - "JUCE_APP_VERSION_HEX=0x402", ); + "JUCE_APP_VERSION=0.4.2.1", + "JUCE_APP_VERSION_HEX=0x40201", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ("~/SDKs/vstsdk2.4", "../../JuceLibraryCode", "../../JuceLibraryCode/modules", "JuceLibraryCode/", "$(inherited)"); INFOPLIST_FILE = Info-App.plist; @@ -3382,8 +3382,8 @@ "_NDEBUG=1", "NDEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=0.4.2", - "JUCE_APP_VERSION_HEX=0x402", ); + "JUCE_APP_VERSION=0.4.2.1", + "JUCE_APP_VERSION_HEX=0x40201", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ("~/SDKs/vstsdk2.4", "../../JuceLibraryCode", "../../JuceLibraryCode/modules", "JuceLibraryCode/", "$(inherited)"); diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj b/Builds/VisualStudio2012/open-ephys.vcxproj index b7a88202ad2219343da620268f70532043af098f..4ba7d96512184069544079c433247d9e6cac9fd0 100644 --- a/Builds/VisualStudio2012/open-ephys.vcxproj +++ b/Builds/VisualStudio2012/open-ephys.vcxproj @@ -84,8 +84,8 @@ <ClCompile> <Optimization>Disabled</Optimization> <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -129,8 +129,8 @@ </Midl> <ClCompile> <Optimization>Full</Optimization> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -176,8 +176,8 @@ <ClCompile> <Optimization>Disabled</Optimization> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -219,8 +219,8 @@ </Midl> <ClCompile> <Optimization>Full</Optimization> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> diff --git a/Builds/VisualStudio2012/resources.rc b/Builds/VisualStudio2012/resources.rc index 13bfc913a492ab1a9b507be55871002f2d99aaa7..8582bebd4f2d17cfd432bf1576b35c7ed7466274 100644 --- a/Builds/VisualStudio2012/resources.rc +++ b/Builds/VisualStudio2012/resources.rc @@ -7,7 +7,7 @@ #include <windows.h> VS_VERSION_INFO VERSIONINFO -FILEVERSION 0,4,2,0 +FILEVERSION 0,4,2,1 BEGIN BLOCK "StringFileInfo" BEGIN @@ -15,9 +15,9 @@ BEGIN BEGIN VALUE "CompanyName", "Open Ephys\0" VALUE "FileDescription", "open-ephys\0" - VALUE "FileVersion", "0.4.2\0" + VALUE "FileVersion", "0.4.2.1\0" VALUE "ProductName", "open-ephys\0" - VALUE "ProductVersion", "0.4.2\0" + VALUE "ProductVersion", "0.4.2.1\0" END END diff --git a/Builds/VisualStudio2013/open-ephys.vcxproj b/Builds/VisualStudio2013/open-ephys.vcxproj index 573629d6bb6d8573667f5b977ce889d2486b7281..611ed81bcb60c456cdc89b89e3073d634a3cedbd 100644 --- a/Builds/VisualStudio2013/open-ephys.vcxproj +++ b/Builds/VisualStudio2013/open-ephys.vcxproj @@ -84,8 +84,8 @@ <ClCompile> <Optimization>Disabled</Optimization> <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -130,8 +130,8 @@ </Midl> <ClCompile> <Optimization>Full</Optimization> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -178,8 +178,8 @@ <ClCompile> <Optimization>Disabled</Optimization> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> @@ -222,8 +222,8 @@ </Midl> <ClCompile> <Optimization>Full</Optimization> - <AdditionalIncludeDirectories>c:\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2;JUCE_APP_VERSION_HEX=0x402;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>~\SDKs\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;JuceLibraryCode/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;NOMINMAX;JUCE_API=__declspec(dllexport);JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=0.4.2.1;JUCE_APP_VERSION_HEX=0x40201;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeTypeInfo>true</RuntimeTypeInfo> <PrecompiledHeader/> diff --git a/Builds/VisualStudio2013/resources.rc b/Builds/VisualStudio2013/resources.rc index 13bfc913a492ab1a9b507be55871002f2d99aaa7..8582bebd4f2d17cfd432bf1576b35c7ed7466274 100644 --- a/Builds/VisualStudio2013/resources.rc +++ b/Builds/VisualStudio2013/resources.rc @@ -7,7 +7,7 @@ #include <windows.h> VS_VERSION_INFO VERSIONINFO -FILEVERSION 0,4,2,0 +FILEVERSION 0,4,2,1 BEGIN BLOCK "StringFileInfo" BEGIN @@ -15,9 +15,9 @@ BEGIN BEGIN VALUE "CompanyName", "Open Ephys\0" VALUE "FileDescription", "open-ephys\0" - VALUE "FileVersion", "0.4.2\0" + VALUE "FileVersion", "0.4.2.1\0" VALUE "ProductName", "open-ephys\0" - VALUE "ProductVersion", "0.4.2\0" + VALUE "ProductVersion", "0.4.2.1\0" END END diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h index 1cf20a1c5c7d43aeeabb48a43dc74f8f3c13823c..c0cf844233fd45f75d3b40fd499d4cc5e34b9217 100644 --- a/JuceLibraryCode/JuceHeader.h +++ b/JuceLibraryCode/JuceHeader.h @@ -42,8 +42,8 @@ namespace ProjectInfo { const char* const projectName = "open-ephys"; - const char* const versionString = "0.4.2"; - const int versionNumber = 0x402; + const char* const versionString = "0.4.2.1"; + const int versionNumber = 0x40201; } #endif diff --git a/Source/Processors/RecordNode/OriginalRecording.cpp b/Source/Processors/RecordNode/OriginalRecording.cpp index fc5b8ac333d3edfe737f4de9e8d293803b0ac3e7..f3163358b07af7d90a3cea1e010a6430ca42b050 100644 --- a/Source/Processors/RecordNode/OriginalRecording.cpp +++ b/Source/Processors/RecordNode/OriginalRecording.cpp @@ -67,21 +67,6 @@ String OriginalRecording::getEngineID() const return "OPENEPHYS"; } -void OriginalRecording::registerProcessor(const GenericProcessor* proc) -{ - procIndex = 0; -} - -void OriginalRecording::addDataChannel(int index, const DataChannel* chan) -{ - //Just populate the file array with null so we can address it by index afterwards - fileArray.add(nullptr); - blockIndex.add(0); - samplesSinceLastTimestamp.add(0); - originalChannelIndexes.add(procIndex); - procIndex++; -} - void OriginalRecording::addSpikeElectrode(int index, const SpikeChannel* elec) { spikeFileArray.add(nullptr); @@ -109,16 +94,15 @@ void OriginalRecording::openFiles(File rootFolder, int experimentNumber, int rec openFile(rootFolder,getEventChannel(0), 0); openMessageFile(rootFolder); - for (int i = 0; i < fileArray.size(); i++) - { - if (getDataChannel(i)->getRecordState()) - { - openFile(rootFolder,getDataChannel(i),i); - blockIndex.set(i,0); - samplesSinceLastTimestamp.set(i,0); - } + int nChannels = getNumRecordedChannels(); - } + for (int i = 0; i < nChannels; i++) + { + const DataChannel* ch = getDataChannel(getRealChannel(i)); + openFile(rootFolder, ch, getRealChannel(i)); + blockIndex.add(0); + samplesSinceLastTimestamp.add(0); + } for (int i = 0; i < spikeFileArray.size(); i++) { openSpikeFile(rootFolder,getSpikeChannel(i),i); @@ -184,7 +168,7 @@ void OriginalRecording::openFile(File rootFolder, const InfoObjectCommon* ch, in eventFile = chFile; else { - fileArray.set(channelIndex,chFile); + fileArray.add(chFile); if (ch->getCurrentNodeID() != lastProcId) { lastProcId = ch->getCurrentNodeID(); @@ -465,10 +449,7 @@ void OriginalRecording::writeData(int writeChannel, int realChannel, const float { int samplesWritten = 0; - //int sourceNodeId = getChannel(realChannel)->sourceNodeId; - - //TODO: optimize. Now we use realchannel, we should optimize the whole thing to only use recorded channels - samplesSinceLastTimestamp.set(realChannel, 0); + samplesSinceLastTimestamp.set(writeChannel, 0); int nSamples = size; @@ -476,7 +457,7 @@ void OriginalRecording::writeData(int writeChannel, int realChannel, const float { int numSamplesToWrite = nSamples - samplesWritten; - if (blockIndex[realChannel] + numSamplesToWrite < BLOCK_LENGTH) // we still have space in this block + if (blockIndex[writeChannel] + numSamplesToWrite < BLOCK_LENGTH) // we still have space in this block { // write buffer to disk! @@ -485,15 +466,15 @@ void OriginalRecording::writeData(int writeChannel, int realChannel, const float writeChannel); //timestamp += numSamplesToWrite; - samplesSinceLastTimestamp.set(realChannel, samplesSinceLastTimestamp[realChannel] + numSamplesToWrite); - blockIndex.set(realChannel, blockIndex[realChannel] + numSamplesToWrite); + samplesSinceLastTimestamp.set(writeChannel, samplesSinceLastTimestamp[writeChannel] + numSamplesToWrite); + blockIndex.set(writeChannel, blockIndex[writeChannel] + numSamplesToWrite); samplesWritten += numSamplesToWrite; } else // there's not enough space left in this block for all remaining samples { - numSamplesToWrite = BLOCK_LENGTH - blockIndex[realChannel]; + numSamplesToWrite = BLOCK_LENGTH - blockIndex[writeChannel]; // write buffer to disk! writeContinuousBuffer(buffer + samplesWritten, @@ -503,8 +484,8 @@ void OriginalRecording::writeData(int writeChannel, int realChannel, const float // update our variables samplesWritten += numSamplesToWrite; //timestamp += numSamplesToWrite; - samplesSinceLastTimestamp.set(realChannel, samplesSinceLastTimestamp[realChannel] + numSamplesToWrite); - blockIndex.set(realChannel,0); // back to the beginning of the block + samplesSinceLastTimestamp.set(writeChannel, samplesSinceLastTimestamp[writeChannel] + numSamplesToWrite); + blockIndex.set(writeChannel, 0); // back to the beginning of the block } } @@ -513,13 +494,12 @@ void OriginalRecording::writeData(int writeChannel, int realChannel, const float void OriginalRecording::writeContinuousBuffer(const float* data, int nSamples, int writeChannel) { - int channel = getRealChannel(writeChannel); // check to see if the file exists - if (fileArray[channel] == nullptr) + if (fileArray[writeChannel] == nullptr) return; // scale the data back into the range of int16 - float scaleFactor = float(0x7fff) * getDataChannel(channel)->getBitVolts(); + float scaleFactor = float(0x7fff) * getDataChannel(getRealChannel(writeChannel))->getBitVolts(); for (int n = 0; n < nSamples; n++) { @@ -527,9 +507,9 @@ void OriginalRecording::writeContinuousBuffer(const float* data, int nSamples, i } AudioDataConverters::convertFloatToInt16BE(continuousDataFloatBuffer, continuousDataIntegerBuffer, nSamples); - if (blockIndex[channel] == 0) + if (blockIndex[writeChannel] == 0) { - writeTimestampAndSampleCount(fileArray[channel], writeChannel); + writeTimestampAndSampleCount(fileArray[writeChannel], writeChannel); } diskWriteLock.enter(); @@ -537,7 +517,7 @@ void OriginalRecording::writeContinuousBuffer(const float* data, int nSamples, i size_t count = fwrite(continuousDataIntegerBuffer, // ptr 2, // size of each element nSamples, // count - fileArray[channel]); // ptr to FILE object + fileArray[writeChannel]); // ptr to FILE object //std::cout << channel << " : " << nSamples << " : " << count << std::endl; @@ -546,9 +526,9 @@ void OriginalRecording::writeContinuousBuffer(const float* data, int nSamples, i diskWriteLock.exit(); - if (blockIndex[channel] + nSamples == BLOCK_LENGTH) + if (blockIndex[writeChannel] + nSamples == BLOCK_LENGTH) { - writeRecordMarker(fileArray[channel]); + writeRecordMarker(fileArray[writeChannel]); } } @@ -605,13 +585,13 @@ void OriginalRecording::closeFiles() writeContinuousBuffer(zeroBuffer.getReadPointer(0), BLOCK_LENGTH - blockIndex[i], i); diskWriteLock.enter(); fclose(fileArray[i]); - fileArray.set(i,nullptr); diskWriteLock.exit(); } } - - blockIndex.set(i,0); } + fileArray.clear(); + blockIndex.clear(); + samplesSinceLastTimestamp.clear(); for (int i = 0; i < spikeFileArray.size(); i++) { if (spikeFileArray[i] != nullptr) diff --git a/Source/Processors/RecordNode/OriginalRecording.h b/Source/Processors/RecordNode/OriginalRecording.h index e417a1b708a9010918753dd7f09917b679205dc5..3730992ec2d91d1e0aef513f8eedc5b6fb7849aa 100644 --- a/Source/Processors/RecordNode/OriginalRecording.h +++ b/Source/Processors/RecordNode/OriginalRecording.h @@ -50,8 +50,6 @@ public: void closeFiles() override; void writeData(int writeChannel, int realChannel, const float* buffer, int size) override; void writeEvent(int eventIndex, const MidiMessage& event) override; - void registerProcessor(const GenericProcessor* proc) override; - void addDataChannel(int index, const DataChannel* chan) override; void resetChannels() override; void addSpikeElectrode(int index, const SpikeChannel* elec) override; void writeSpike(int electrodeIndex, const SpikeEvent* spike) override; diff --git a/open-ephys.jucer b/open-ephys.jucer index 231a3cc5c90f8d1b288aafc42b8bcd70940bd0a6..80a6aa56695f4153c7e2d28fcf20b8cf47f8d394 100644 --- a/open-ephys.jucer +++ b/open-ephys.jucer @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<JUCERPROJECT id="ynSYIrr" name="open-ephys" projectType="guiapp" version="0.4.2" +<JUCERPROJECT id="ynSYIrr" name="open-ephys" projectType="guiapp" version="0.4.2.1" juceLinkage="amalg_multi" buildVST="1" buildRTAS="0" buildAU="1" pluginName="Juce Project" pluginDesc="Juce Project" pluginManufacturer="yourcompany" pluginManufacturerCode="Manu" pluginCode="Plug" pluginChannelConfigs="{1, 1}, {2, 2}"