diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile index 66d5f5aff169db942f1cfa9ae40d0086d5fca7d7..59f7b594b0c39d6bfa08582a8a326c3bbd5a09fc 100644 --- a/Builds/Linux/Makefile +++ b/Builds/Linux/Makefile @@ -74,6 +74,9 @@ OBJECTS := \ $(OBJDIR)/FileReader_18023b0e.o \ $(OBJDIR)/AudioNode_94606ff3.o \ $(OBJDIR)/EventNode_95c842b7.o \ + $(OBJDIR)/ImageIcon_c89b23a6.o \ + $(OBJDIR)/WiFiOutputEditor_1d3ba5bb.o \ + $(OBJDIR)/EventNodeEditor_2198733b.o \ $(OBJDIR)/SignalGeneratorEditor_3223ac0a.o \ $(OBJDIR)/LfpDisplayEditor_99d75351.o \ $(OBJDIR)/SourceNodeEditor_8d813122.o \ @@ -283,6 +286,21 @@ $(OBJDIR)/EventNode_95c842b7.o: ../../Source/Processors/EventNode.cpp @echo "Compiling EventNode.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/ImageIcon_c89b23a6.o: ../../Source/Processors/Editors/ImageIcon.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling ImageIcon.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/WiFiOutputEditor_1d3ba5bb.o: ../../Source/Processors/Editors/WiFiOutputEditor.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling WiFiOutputEditor.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/EventNodeEditor_2198733b.o: ../../Source/Processors/Editors/EventNodeEditor.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling EventNodeEditor.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/SignalGeneratorEditor_3223ac0a.o: ../../Source/Processors/Editors/SignalGeneratorEditor.cpp -@mkdir -p $(OBJDIR) @echo "Compiling SignalGeneratorEditor.cpp" diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj index 2ded216882832bd2dc55a62a00f19ec17b74563d..8208f6dfad4f9971e6aeb5110cd00795c0aa7c8d 100644 --- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj @@ -48,6 +48,9 @@ 6656467170D2822949BD2F7F = { isa = PBXBuildFile; fileRef = 5AC4DD48CCB1AB4936A2DE4A; }; 08B501E0D7764C6B613AF529 = { isa = PBXBuildFile; fileRef = B7750B27E4F3748ECCCCF69D; }; 9CBA3837CC8CAA03A03F2D9C = { isa = PBXBuildFile; fileRef = FA57CE4F63FF1592D6B3F9B5; }; + CB77C89226102EF30F85E3EC = { isa = PBXBuildFile; fileRef = 544DA1EF90EBBDB6FF2DE0A5; }; + A126280FF39A61DEFD3ABFE5 = { isa = PBXBuildFile; fileRef = 2B11714BCE362D4EA7E377F5; }; + 2ADE508EC26B703176ED915C = { isa = PBXBuildFile; fileRef = 36393F2D58480F61ECDEB5E5; }; 8B55C700ED8484944FED1EB1 = { isa = PBXBuildFile; fileRef = 087136FA6A7A0E01738EEF03; }; D3B54B20674A6BA87CE6FDEC = { isa = PBXBuildFile; fileRef = CF9878CE31A1B41406C3457B; }; 5D5CAF52A5498EEFB8EA924D = { isa = PBXBuildFile; fileRef = FC5939F3D2A31BB43EA3E393; }; @@ -113,6 +116,7 @@ C2A7939DF5ED600BBB2F30C4 = { isa = PBXFileReference; lastKnownFileType = file; name = "silkscreen-serialized"; path = "../../Resources/Fonts/silkscreen-serialized"; sourceTree = SOURCE_ROOT; }; F8CAE2412B173788F325BD8B = { isa = PBXFileReference; lastKnownFileType = file.ttf; name = silkscreen.ttf; path = ../../Resources/Fonts/silkscreen.ttf; sourceTree = SOURCE_ROOT; }; 363B59958615D35C5C948300 = { isa = PBXFileReference; lastKnownFileType = file.otf; name = "unibody-8.otf"; path = "../../Resources/Fonts/unibody-8.otf"; sourceTree = SOURCE_ROOT; }; + 8E041C8C49F1A5B710CC812C = { isa = PBXFileReference; lastKnownFileType = image.png; name = wifi.png; path = ../../Resources/Images/Icons/wifi.png; sourceTree = SOURCE_ROOT; }; 2A1D9144C59B92B32483924B = { isa = PBXFileReference; lastKnownFileType = image.png; name = SourceDrop.png; path = ../../Resources/Images/Icons/SourceDrop.png; sourceTree = SOURCE_ROOT; }; D99F56FB46F631F67AF23F2C = { isa = PBXFileReference; lastKnownFileType = image.png; name = DefaultDataSource.png; path = ../../Resources/Images/Icons/DefaultDataSource.png; sourceTree = SOURCE_ROOT; }; 66C7E42D7FDE3600982A1F46 = { isa = PBXFileReference; lastKnownFileType = image.png; name = FileReaderIcon.png; path = ../../Resources/Images/Icons/FileReaderIcon.png; sourceTree = SOURCE_ROOT; }; @@ -191,6 +195,12 @@ 12866D44BE115E8837468F48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioNode.h; path = ../../Source/Processors/AudioNode.h; sourceTree = SOURCE_ROOT; }; FA57CE4F63FF1592D6B3F9B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EventNode.cpp; path = ../../Source/Processors/EventNode.cpp; sourceTree = SOURCE_ROOT; }; 32163C956C8A6F5C1DD7FE7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EventNode.h; path = ../../Source/Processors/EventNode.h; sourceTree = SOURCE_ROOT; }; + 544DA1EF90EBBDB6FF2DE0A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ImageIcon.cpp; path = ../../Source/Processors/Editors/ImageIcon.cpp; sourceTree = SOURCE_ROOT; }; + 04AD8DDD47597AE0875ACDD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ImageIcon.h; path = ../../Source/Processors/Editors/ImageIcon.h; sourceTree = SOURCE_ROOT; }; + 2B11714BCE362D4EA7E377F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WiFiOutputEditor.cpp; path = ../../Source/Processors/Editors/WiFiOutputEditor.cpp; sourceTree = SOURCE_ROOT; }; + 4E67CFE458501E763FF3AE94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WiFiOutputEditor.h; path = ../../Source/Processors/Editors/WiFiOutputEditor.h; sourceTree = SOURCE_ROOT; }; + 36393F2D58480F61ECDEB5E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EventNodeEditor.cpp; path = ../../Source/Processors/Editors/EventNodeEditor.cpp; sourceTree = SOURCE_ROOT; }; + A80433BF9686B4E2542C580C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EventNodeEditor.h; path = ../../Source/Processors/Editors/EventNodeEditor.h; sourceTree = SOURCE_ROOT; }; 087136FA6A7A0E01738EEF03 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SignalGeneratorEditor.cpp; path = ../../Source/Processors/Editors/SignalGeneratorEditor.cpp; sourceTree = SOURCE_ROOT; }; 10F82563E4A633BC234B2800 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SignalGeneratorEditor.h; path = ../../Source/Processors/Editors/SignalGeneratorEditor.h; sourceTree = SOURCE_ROOT; }; CF9878CE31A1B41406C3457B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LfpDisplayEditor.cpp; path = ../../Source/Processors/Editors/LfpDisplayEditor.cpp; sourceTree = SOURCE_ROOT; }; @@ -280,6 +290,7 @@ F8CAE2412B173788F325BD8B, 363B59958615D35C5C948300 ); name = Fonts; sourceTree = "<group>"; }; 891C5A157F059822288EDC9F = { isa = PBXGroup; children = ( + 8E041C8C49F1A5B710CC812C, 2A1D9144C59B92B32483924B, D99F56FB46F631F67AF23F2C, 66C7E42D7FDE3600982A1F46, @@ -359,6 +370,12 @@ 0C5335B0E57C9DC92FC57E5F, 7738F51AE0EC63D76EE0F761 ); name = Visualization; sourceTree = "<group>"; }; 953CC35B9116404D6AA8D1C7 = { isa = PBXGroup; children = ( + 544DA1EF90EBBDB6FF2DE0A5, + 04AD8DDD47597AE0875ACDD1, + 2B11714BCE362D4EA7E377F5, + 4E67CFE458501E763FF3AE94, + 36393F2D58480F61ECDEB5E5, + A80433BF9686B4E2542C580C, 087136FA6A7A0E01738EEF03, 10F82563E4A633BC234B2800, CF9878CE31A1B41406C3457B, @@ -582,6 +599,9 @@ 6656467170D2822949BD2F7F, 08B501E0D7764C6B613AF529, 9CBA3837CC8CAA03A03F2D9C, + CB77C89226102EF30F85E3EC, + A126280FF39A61DEFD3ABFE5, + 2ADE508EC26B703176ED915C, 8B55C700ED8484944FED1EB1, D3B54B20674A6BA87CE6FDEC, 5D5CAF52A5498EEFB8EA924D, diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp index 2bb620dfd649e059f37561ce6c0ec4be9d481556..5ace2155aae28854769f22920bd871c65f5e7579 100644 --- a/JuceLibraryCode/BinaryData.cpp +++ b/JuceLibraryCode/BinaryData.cpp @@ -30,6 +30,7 @@ const char* BinaryData::getNamedResource (const char* resourceNameUTF8, int& num case 0x1eb42b13: numBytes = BinaryData::ostrich_ttfSize; return BinaryData::ostrich_ttf; case 0xafad3345: numBytes = BinaryData::silkscreenserializedSize; return BinaryData::silkscreenserialized; case 0xac0c53a8: numBytes = BinaryData::silkscreen_ttfSize; return BinaryData::silkscreen_ttf; + case 0xb01cfdff: numBytes = BinaryData::wifi_pngSize; return BinaryData::wifi_png; case 0x593e4e34: numBytes = BinaryData::SourceDrop_pngSize; return BinaryData::SourceDrop_png; case 0x6189efd0: numBytes = BinaryData::DefaultDataSource_pngSize; return BinaryData::DefaultDataSource_png; case 0x3862b802: numBytes = BinaryData::FileReaderIcon_pngSize; return BinaryData::FileReaderIcon_png; @@ -5833,6 +5834,59 @@ static const unsigned char temp_46c3ac32[] = const char* BinaryData::silkscreen_ttf = (const char*) temp_46c3ac32; +//================== wifi.png ================== +static const unsigned char temp_43e5b62e[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,64,0,0,0,247,8,6,0,0,0,108,40,141,211,0,0,0,9,112,72,89,115,0,0,46,35,0,0,46,35,1,120,165,63,118,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,97,103,101,82,101, +97,100,121,113,201,101,60,0,0,12,225,73,68,65,84,120,218,236,221,139,117,27,199,21,128,225,81,5,102,7,70,7,70,7,130,43,8,58,8,84,65,144,10,12,87,0,167,2,56,21,192,169,128,84,5,164,42,32,93,1,169,10,28,236,209,64,130,104,62,0,98,95,51,247,251,207,185, +135,142,148,248,132,187,51,255,222,59,51,187,55,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,242,206,37,64,75,92,236,98,250,196,159,79,243,223,157,202,205,46,30,30,253,217,67,254,115,128,0,209,57,123,121,77,114,52, +188,63,248,251,217,192,255,255,238,114,236,255,249,207,71,242,60,252,123,128,0,241,100,214,182,23,220,79,249,207,102,149,253,158,119,7,241,231,129,32,175,12,1,2,68,28,209,53,98,251,49,203,110,230,178,124,39,199,143,7,255,76,140,4,136,66,153,100,217,77, +115,185,250,214,53,184,232,220,100,25,126,202,66,124,106,77,18,4,136,129,153,229,248,41,255,36,187,110,165,120,147,179,197,253,63,131,0,209,99,41,59,59,200,236,148,177,195,178,95,71,252,120,144,37,130,0,209,65,134,247,143,244,244,49,19,16,34,8,176,26, +38,187,152,231,44,111,238,114,20,205,93,22,225,255,242,79,107,136,4,136,39,104,50,187,127,102,225,77,92,142,106,249,35,103,135,127,36,231,19,9,48,56,243,92,214,54,63,109,92,196,163,41,143,255,171,84,70,52,233,109,118,113,191,139,191,132,200,113,187,139, +181,236,31,181,150,183,164,39,142,141,235,93,44,201,80,9,92,50,205,224,93,164,47,235,122,6,50,222,202,85,46,147,155,53,67,27,40,24,61,141,244,46,101,49,162,229,184,207,85,196,204,20,195,24,179,61,37,174,232,115,189,176,41,145,109,156,65,182,39,66,199, +38,57,28,143,30,105,158,186,43,217,158,24,89,92,230,7,50,208,105,153,107,178,137,177,151,199,43,229,49,218,98,166,204,21,5,111,154,76,76,97,188,117,125,239,218,68,18,149,172,19,18,33,142,22,223,173,73,35,42,140,109,114,140,6,196,39,108,152,16,33,136, +79,16,161,35,52,65,153,19,159,16,214,8,163,189,11,220,164,254,191,40,1,122,231,234,196,255,254,133,236,164,119,126,223,197,175,41,216,119,10,163,8,112,146,188,75,217,166,200,154,73,242,184,9,121,202,63,187,250,182,221,99,41,30,118,187,219,247,51,158, +36,59,158,231,208,220,191,255,236,226,183,20,228,227,11,181,11,176,153,20,235,228,148,252,177,220,229,104,36,246,249,64,120,87,5,222,247,233,193,207,125,47,100,45,66,143,23,225,191,115,86,72,128,133,178,218,197,191,12,248,23,69,23,177,25,248,94,138,123, +49,234,174,247,60,55,89,132,213,142,141,26,5,56,75,14,127,62,150,93,51,144,53,248,126,153,73,250,190,161,60,41,126,227,143,44,194,59,151,98,220,3,184,57,236,233,139,194,95,202,126,13,150,206,167,145,225,50,63,80,163,159,26,184,207,85,21,70,90,238,222, +19,158,114,191,135,135,236,34,184,16,111,101,199,227,42,119,175,3,14,192,77,158,136,132,55,142,12,49,98,229,177,49,254,134,99,191,187,27,41,203,91,37,103,227,198,206,60,88,118,120,159,127,103,244,156,245,69,24,96,219,164,59,88,233,217,225,58,200,88,189, +52,78,251,201,250,182,1,164,167,180,37,195,82,179,193,165,91,221,93,214,87,235,38,135,62,176,49,101,88,235,120,150,13,90,235,59,106,35,99,109,160,88,51,76,117,182,90,176,54,216,210,147,178,182,146,97,107,96,224,153,7,253,178,210,241,110,57,231,13,172, +42,203,246,86,178,61,156,176,220,83,83,86,120,159,156,27,60,154,73,170,167,9,145,86,133,56,55,43,92,85,148,21,174,220,210,215,215,67,106,88,24,214,172,26,109,211,60,72,107,56,240,127,173,18,122,154,210,55,58,238,147,77,13,244,83,30,95,38,27,36,85,149, +188,215,133,223,204,85,178,208,139,254,231,77,233,235,132,107,79,179,114,75,94,226,3,17,182,83,18,135,156,67,43,226,3,136,48,207,169,48,107,230,165,190,206,70,124,32,194,110,99,81,251,205,153,22,184,222,71,124,40,85,132,37,110,150,108,172,247,233,151, +10,180,57,239,74,19,97,117,235,130,139,84,222,1,102,226,67,109,115,176,164,3,213,183,181,172,11,110,10,187,232,51,115,5,149,178,127,179,164,148,74,172,232,243,130,37,109,118,104,246,130,104,235,131,37,109,68,46,74,148,95,41,155,29,91,229,46,2,175,15, +150,82,22,23,179,57,82,202,39,172,148,187,192,23,86,36,216,158,252,74,88,95,88,37,199,90,128,199,101,113,9,187,197,163,221,33,94,20,32,191,235,228,43,45,192,75,44,11,153,199,173,73,240,93,75,242,27,123,122,250,107,178,209,49,116,117,112,202,160,189,217, +197,131,203,54,88,54,184,25,249,18,81,51,62,62,228,159,131,10,112,236,242,107,237,66,225,43,23,7,66,219,103,212,63,166,111,155,73,147,212,205,198,210,213,163,251,250,57,75,242,230,137,191,71,59,217,224,47,105,188,203,69,205,189,255,249,220,185,125,142, +0,199,46,63,89,223,249,146,219,139,238,253,35,225,141,153,171,60,57,62,237,226,46,7,57,214,153,13,182,34,193,183,202,207,14,111,61,229,233,34,63,44,154,133,240,154,219,143,110,243,239,57,75,54,194,78,97,149,124,77,230,111,140,241,45,143,141,129,253,106, +102,55,11,32,187,83,30,150,219,92,238,217,32,123,253,65,121,77,130,227,148,224,125,210,128,232,57,225,53,175,19,173,83,29,61,37,250,24,71,151,132,248,226,120,218,144,224,184,36,232,120,203,223,159,212,251,12,143,212,206,159,84,219,252,112,157,24,90,223, +45,129,141,177,122,24,44,9,26,74,130,74,222,47,204,243,181,184,37,173,206,31,182,43,15,220,81,150,196,131,87,128,125,74,80,201,251,77,122,247,196,52,216,250,225,58,184,12,199,82,18,143,198,5,155,158,6,222,148,244,72,104,132,50,140,90,38,47,201,175,31, +9,94,6,44,121,39,121,114,145,94,57,101,242,34,224,56,157,13,48,70,71,91,5,118,33,193,72,125,68,47,242,205,181,115,91,118,140,253,149,178,46,30,214,215,209,229,215,133,4,23,129,6,144,18,183,206,18,121,25,36,43,236,99,93,176,24,31,156,123,33,162,244,12, +157,39,199,86,162,28,171,137,210,108,107,29,93,126,231,74,48,194,249,190,69,114,116,37,106,108,3,148,199,139,232,242,123,171,4,171,107,141,247,168,68,88,41,115,69,250,182,177,87,179,8,219,218,28,41,126,25,236,88,9,214,122,184,153,248,196,107,235,132, +181,174,117,159,251,181,248,106,174,203,230,8,249,17,159,136,46,194,121,165,243,224,58,217,0,125,86,130,171,10,111,58,241,9,165,241,219,37,88,107,70,252,55,9,214,246,139,218,220,16,109,138,112,26,80,130,213,202,239,177,4,107,250,69,103,201,225,101,209, +221,161,234,73,128,74,48,210,185,223,106,82,252,102,96,110,77,82,209,113,220,87,182,84,180,137,44,63,235,124,66,104,251,176,33,191,114,179,87,235,124,98,232,195,212,147,74,36,72,126,5,45,226,42,119,197,152,202,226,165,105,137,62,88,40,119,197,72,67,107, +136,55,240,206,37,56,122,147,35,218,167,141,142,229,46,199,190,23,111,74,223,55,44,223,115,117,194,181,158,60,177,220,208,240,195,193,36,223,247,44,198,247,232,135,77,128,173,178,255,10,115,228,201,182,151,220,199,3,185,237,255,108,104,246,34,108,36, +249,99,150,103,244,7,85,115,127,62,164,1,26,134,19,96,93,107,125,155,84,231,107,73,175,201,238,42,103,115,55,57,30,10,205,218,167,57,222,7,204,24,31,114,54,248,155,169,140,83,105,50,136,40,107,125,151,185,100,154,7,16,68,35,197,69,138,213,65,47,98,27, +9,156,193,42,213,191,88,190,14,34,188,83,132,88,243,3,239,222,178,0,142,153,12,181,190,198,214,28,219,89,38,205,189,95,99,154,31,14,181,142,131,149,91,140,40,37,239,54,197,236,78,214,230,3,113,89,161,12,149,196,168,182,228,189,36,189,206,100,184,174, +104,221,48,74,175,29,188,64,45,111,116,220,102,137,43,111,251,171,22,54,149,136,112,225,118,198,93,235,41,189,180,105,228,61,119,43,7,125,128,46,43,200,10,55,110,165,245,190,146,74,151,181,108,111,148,99,170,228,106,162,230,38,100,56,96,81,112,153,107, +109,175,140,181,194,82,143,212,120,151,184,114,214,5,139,15,229,149,199,171,2,69,104,115,164,82,54,196,7,34,180,57,18,113,0,94,18,31,136,144,4,35,14,186,107,226,195,200,198,100,73,213,200,218,45,35,191,62,154,220,216,220,136,197,164,160,202,196,49,153, +2,89,165,50,206,241,77,220,170,208,204,82,25,231,8,73,176,64,198,90,106,212,212,209,11,237,61,176,199,190,62,72,130,36,168,167,43,58,45,139,199,126,152,154,4,73,240,205,31,41,80,238,226,24,230,35,206,6,23,110,15,9,106,89,136,174,25,227,135,58,200,143, +4,101,125,8,153,13,146,31,9,158,20,178,62,212,146,13,146,31,9,122,161,28,131,179,36,63,140,89,130,209,123,7,163,123,250,252,142,37,249,145,160,193,130,144,37,177,241,76,130,71,31,106,86,242,162,166,146,152,252,72,80,119,45,20,193,44,181,187,75,28,78, +126,239,140,161,175,18,60,229,230,255,190,139,15,46,219,87,38,143,226,135,71,153,241,236,196,127,223,195,46,110,14,254,243,199,252,243,230,224,239,30,92,246,175,215,126,219,66,37,242,33,143,107,200,4,61,37,95,152,108,205,217,180,85,158,116,67,127,113, +231,50,223,183,101,138,253,126,245,185,235,130,202,94,188,42,193,251,20,175,11,219,52,203,101,155,202,249,152,231,245,65,70,63,49,126,201,15,231,15,162,40,189,18,38,5,10,239,152,141,170,77,126,120,69,88,179,93,144,31,218,148,96,237,135,155,155,223,109, +157,202,239,111,123,74,217,188,172,60,59,60,70,130,228,135,87,37,88,107,191,212,104,210,123,169,92,94,86,122,143,95,122,143,152,252,112,20,23,149,253,46,203,84,78,159,148,33,190,208,93,219,26,239,244,9,9,146,31,66,49,75,229,181,5,29,122,205,112,85,81, +137,124,40,65,242,67,24,22,178,189,86,222,239,174,97,253,119,74,126,136,36,190,91,242,106,125,227,100,102,104,1,227,101,149,234,57,186,66,132,0,100,124,68,8,224,41,102,196,167,183,51,16,141,73,206,64,8,104,60,209,44,63,248,50,16,208,33,23,121,162,17, +206,120,143,207,204,13,83,64,185,171,44,6,208,74,214,183,37,149,226,66,63,104,160,133,172,207,177,150,242,119,139,173,13,2,39,178,38,143,170,178,65,107,131,192,17,244,217,246,80,244,27,107,195,27,120,158,133,146,55,196,231,183,38,134,58,160,228,85,18, +3,193,105,22,200,29,106,142,25,118,137,97,189,143,8,194,127,110,11,3,162,47,240,112,242,115,68,2,13,77,143,227,159,147,62,199,4,24,132,69,94,243,187,168,124,82,239,27,152,127,206,127,118,117,228,255,118,146,190,109,20,252,148,175,211,225,159,145,32,8, +176,80,102,57,243,171,133,187,60,121,63,101,193,221,229,232,242,250,77,178,24,167,169,174,79,82,61,100,9,222,152,38,168,153,146,251,115,236,123,236,46,70,148,145,29,54,111,175,97,135,120,106,138,128,4,199,215,58,178,148,137,57,207,215,247,150,4,1,18, +124,107,166,87,67,243,240,89,190,206,165,29,48,95,152,30,32,193,97,142,101,204,42,189,214,141,84,74,56,115,73,126,32,193,158,179,189,85,138,115,36,103,58,226,236,155,252,64,130,61,138,47,242,132,107,202,251,245,136,202,99,242,3,9,18,95,239,92,164,225, +223,197,118,63,128,142,37,120,159,75,93,60,159,17,14,145,137,147,31,208,177,4,55,201,107,119,199,50,75,253,189,163,77,126,64,135,18,188,78,26,120,191,149,101,234,118,125,144,252,128,14,37,168,220,109,167,44,238,226,232,12,249,1,29,73,176,201,250,188, +73,48,222,108,144,252,128,142,36,168,239,68,119,180,241,253,70,242,3,58,144,160,207,172,143,127,105,130,252,128,14,38,158,146,183,127,22,228,7,12,47,193,230,19,80,142,183,12,87,18,31,179,46,72,126,64,7,18,212,79,98,120,38,233,229,117,65,242,3,58,192, +122,223,120,184,120,70,130,228,7,32,140,4,183,228,7,32,50,27,242,3,0,0,0,0,0,0,128,241,160,49,58,250,162,217,41,221,191,177,50,77,207,31,224,190,202,63,239,82,183,77,214,1,2,68,39,76,115,188,79,95,14,11,207,206,248,119,221,228,248,148,229,120,227,242, +2,24,27,125,53,36,111,94,63,107,206,220,45,146,215,0,1,12,200,44,13,223,120,124,155,188,25,3,160,71,154,236,171,175,190,25,250,27,3,24,141,248,186,46,113,219,234,126,71,132,0,90,97,94,128,248,158,18,225,210,173,3,240,86,38,169,155,166,64,125,134,206, +120,0,78,166,235,182,144,125,199,90,89,12,224,53,30,127,218,169,166,208,62,0,192,179,52,114,40,109,173,239,45,107,131,11,183,26,192,33,139,202,74,94,141,227,1,28,45,191,191,2,134,190,42,0,222,220,235,150,4,1,144,96,225,49,115,251,1,68,148,224,194,109, +7,16,81,130,228,7,32,164,4,201,15,64,72,9,146,31,128,144,18,36,63,0,33,37,72,126,0,66,74,144,252,0,132,148,32,249,1,8,41,65,242,3,16,82,130,228,7,32,164,4,201,15,64,72,9,146,31,128,144,18,36,63,0,33,37,72,126,0,66,74,144,252,0,132,148,32,249,1,8,41,65, +242,3,16,82,130,228,7,32,164,4,201,15,64,72,9,146,31,128,144,18,36,63,0,33,37,72,126,0,66,74,144,252,0,132,148,32,249,1,8,41,65,242,3,16,82,130,228,7,32,164,4,201,15,64,72,9,146,31,128,144,18,36,63,0,33,37,72,126,0,66,74,144,252,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,45,252,95,128,1,0,166,155,18,218,219,72,225,153,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* BinaryData::wifi_png = (const char*) temp_43e5b62e; + //================== SourceDrop.png ================== static const unsigned char temp_e9da47e3[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,154,0,0,2,209,8,6,0,0,0,163,255,186,145,0,0,0,9,112,72,89,115,0,0,46,35,0,0,46,35,1,120,165,63,118,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,97,103,101,82,101, diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h index 4ff4ad3eedd0b0cf6bc5f35e0f18c44482b5cae0..34dbcb2c8c45e571aa9d0716a5d922658ee2cf50 100644 --- a/JuceLibraryCode/BinaryData.h +++ b/JuceLibraryCode/BinaryData.h @@ -46,6 +46,9 @@ namespace BinaryData extern const char* silkscreen_ttf; const int silkscreen_ttfSize = 18336; + extern const char* wifi_png; + const int wifi_pngSize = 3412; + extern const char* SourceDrop_png; const int SourceDrop_pngSize = 6274; diff --git a/Source/MainWindow.cpp b/Source/MainWindow.cpp index 827c5157b88c7e6be4e22671193d3a6fc0514e66..ae5f79cfb7aed3358ae2bbe8e75f10f5e63ecbe6 100644 --- a/Source/MainWindow.cpp +++ b/Source/MainWindow.cpp @@ -18,7 +18,7 @@ MainWindow::MainWindow() Colour(Colours::black), DocumentWindow::allButtons) { - centreWithSize (500, 400); + //centreWithSize (500, 400); //setBounds(0,0,500,400); setResizable (true, false); @@ -123,8 +123,9 @@ void MainWindow::loadWindowBounds() bool fs = e->getBoolAttribute("fullscreen"); - setTopLeftPosition(x,y); - getContentComponent()->setBounds(0,0,w,h); + // without the correction, you get drift over time + setTopLeftPosition(x,y-27); + getContentComponent()->setBounds(0,0,w,h-33); //setFullScreen(fs); } diff --git a/Source/Processors/EventNode.cpp b/Source/Processors/EventNode.cpp index a9f70dc9f4b6ff4c11150c37c87b0848ba6dcc56..55ef3e43906244dbeb822268b15a195888bf3645 100644 --- a/Source/Processors/EventNode.cpp +++ b/Source/Processors/EventNode.cpp @@ -11,14 +11,13 @@ #include <stdio.h> #include "EventNode.h" -//#include "FilterEditor.h" EventNode::EventNode() : GenericProcessor("Event Generator"), Hz(1), accumulator(0) { setNumOutputs(0); setNumInputs(0); - setSampleRate(44100.0); +// setSampleRate(44100.0); setPlayConfigDetails(getNumInputs(), getNumOutputs(), 44100.0, 128); @@ -29,16 +28,20 @@ EventNode::~EventNode() } -// AudioProcessorEditor* EventNode::createEditor() -// { -// FilterEditor* filterEditor = new FilterEditor(this, viewport); - -// std::cout << "Creating editor." << std::endl; -// //filterEditor = new FilterEditor(this); -// return filterEditor; +AudioProcessorEditor* EventNode::createEditor() +{ + EventNodeEditor* editor = new EventNodeEditor(this, viewport); + setEditor(editor); + + std::cout << "Creating editor." << std::endl; + //editor->setUIComponent(getUIComponent()); + editor->setConfiguration(config); -// //return 0; -// } + //filterEditor = new FilterEditor(this); + return editor; + + //return 0; +} //AudioProcessorEditor* FilterNode::createEditor(AudioProcessorEditor* const editor) //{ @@ -47,6 +50,7 @@ EventNode::~EventNode() //} void EventNode::setParameter (int parameterIndex, float newValue) { + std::cout << "Setting frequency to " << newValue << " Hz." << std::endl; Hz = newValue; } diff --git a/Source/Processors/EventNode.h b/Source/Processors/EventNode.h index aa5332f1767678b040de4bc67eff80d3b8499a88..2c8f09ca088d7f6577616dac96a1af06ce3cc4a1 100644 --- a/Source/Processors/EventNode.h +++ b/Source/Processors/EventNode.h @@ -13,7 +13,7 @@ #include "../../JuceLibraryCode/JuceHeader.h" #include "GenericProcessor.h" -//#include "Editors/FilterEditor.h" +#include "Editors/EventNodeEditor.h" class FilterViewport; @@ -31,11 +31,14 @@ public: void setParameter (int parameterIndex, float newValue); bool isSource() {return true;} + bool hasEditor() const {return true;} + + float getSampleRate() {return 44100.0;} // bool enable(); //bool disable(); - // AudioProcessorEditor* createEditor(); + AudioProcessorEditor* createEditor(); private: diff --git a/Source/Processors/FilterNode.cpp b/Source/Processors/FilterNode.cpp index 4de63ebbcfdf5071c3e02b8fbed164a2ea581240..3b1bde8ee7ccc3d7261cf06a3fb876e3497093a3 100644 --- a/Source/Processors/FilterNode.cpp +++ b/Source/Processors/FilterNode.cpp @@ -17,8 +17,8 @@ FilterNode::FilterNode() highCut(6000.0), lowCut(600.0) { - setNumInputs(10); - setSampleRate(20000.0); + setNumInputs(16); + setSampleRate(25000.0); // set up default configuration setPlayConfigDetails(16, 16, 44100.0, 128); diff --git a/Source/Processors/GenericProcessor.cpp b/Source/Processors/GenericProcessor.cpp index 8cfa1585eeb98c3df01c96624aea144724992a7d..49372e011bb661ae09fe4c9eea27059521cbfd58 100644 --- a/Source/Processors/GenericProcessor.cpp +++ b/Source/Processors/GenericProcessor.cpp @@ -12,7 +12,7 @@ #include "../UI/UIComponent.h" GenericProcessor::GenericProcessor(const String& name_) : name(name_), - sourceNode(0), destNode(0), editor(0) + sourceNode(0), destNode(0), editor(0), isEnabled(true) { @@ -166,25 +166,43 @@ int GenericProcessor::getNumSamples(MidiBuffer& midiMessages) { void GenericProcessor::setSourceNode(GenericProcessor* sn) { + std::cout << "My name is " << getName() << ". Setting source node." << std::endl; + if (!isSource()) { + std::cout << " I am not a source." << std::endl; + if (sn != 0) { + + std::cout << " The source is not blank." << std::endl; + if (!sn->isSink()) { + std::cout << " The source is not a sink." << std::endl; + if (sourceNode != sn) { + + std::cout << " The source is new and named " << sn->getName() << std::endl; sourceNode = sn; sn->setDestNode(this); setNumInputs(sn->getNumOutputs()); setSampleRate(sn->getSampleRate()); + } else { + std::cout << " The source node is not new." << std::endl; } } else { + std::cout << " The source is a sink." << std::endl; sourceNode = 0; } + } else { + std::cout << " The source is blank." << std::endl; sourceNode = 0; } } else { + std::cout << " I am a source. I can't have a source node." << std::endl; + if (sn != 0) sn->setDestNode(this); } @@ -193,26 +211,48 @@ void GenericProcessor::setSourceNode(GenericProcessor* sn) void GenericProcessor::setDestNode(GenericProcessor* dn) { + + + std::cout << "My name is " << getName() << ". Setting dest node." << std::endl; + if (!isSink()) { + std::cout << " I am not a sink." << std::endl; + if (dn != 0) { + std::cout << " The dest node is not blank." << std::endl; + if (!dn->isSource()) { + + std::cout << " The dest node is not a source." << std::endl; + if (destNode != dn) { + std::cout << " The dest node is new and named " << dn->getName() << std::endl; + destNode = dn; dn->setSourceNode(this); + } else { + std::cout << " The dest node is not new." << std::endl; } } else { + + std::cout << " The dest node is a source." << std::endl; + destNode = 0; } } else { + std::cout << " The dest node is blank." << std::endl; + destNode = 0; } } else { - if (dn != 0) - dn->setSourceNode(this); + + std::cout << " I am a sink, I can't have a dest node." << std::endl; + //if (dn != 0) + // dn->setSourceNode(this); } } diff --git a/Source/Processors/GenericProcessor.h b/Source/Processors/GenericProcessor.h index 269ea1cf28ef5c6a7cf64a8f3f3aa94d8ce8a1aa..5b0602b17ef3b57fa38d6f4261d2b655074d50b7 100644 --- a/Source/Processors/GenericProcessor.h +++ b/Source/Processors/GenericProcessor.h @@ -130,7 +130,7 @@ public: virtual bool canSendSignalTo(GenericProcessor*) {return true;} - virtual bool enable() {return true;} + virtual bool enable() {return isEnabled;} virtual bool disable() {return true;} virtual bool enabledState() {return isEnabled;} diff --git a/Source/Processors/LfpDisplayNode.cpp b/Source/Processors/LfpDisplayNode.cpp index 51f6ab0d1e8f22d44260bea9d509d0d0a54d2280..4929954c8b6abc1f8574968503b3d91b2cb76d1f 100644 --- a/Source/Processors/LfpDisplayNode.cpp +++ b/Source/Processors/LfpDisplayNode.cpp @@ -115,9 +115,13 @@ void LfpDisplayNode::resizeBuffer() bool LfpDisplayNode::enable() { + if (isEnabled) { LfpDisplayEditor* editor = (LfpDisplayEditor*) getEditor(); editor->enable(); return true; + } else { + return false; + } } bool LfpDisplayNode::disable() diff --git a/Source/Processors/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph.cpp index a76138d60f599fc18ac337fc503285190d1f0b26..58a02e1c230c57974a4c3f7356624f02e75280a6 100644 --- a/Source/Processors/ProcessorGraph.cpp +++ b/Source/Processors/ProcessorGraph.cpp @@ -300,7 +300,14 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip if (processorType.equalsIgnoreCase("Sources")) { if (subProcessorType.equalsIgnoreCase("Intan Demo Board")) { - processor = new SourceNode(subProcessorType); + + if (!doesProcessorWithSameNameExist(subProcessorType)) { + processor = new SourceNode(subProcessorType); + //} else { + + } + + std::cout << "Creating a new data source." << std::endl; } else if (subProcessorType.equalsIgnoreCase("Signal Generator")) { @@ -368,6 +375,21 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip } +bool ProcessorGraph::doesProcessorWithSameNameExist(const String& name) +{ + for (int i = 0; i < getNumNodes(); i++) + { + Node* node = getNode(i); + + if (name.equalsIgnoreCase(node->getProcessor()->getName())) + return true; + + } + + return false; + +} + void ProcessorGraph::removeProcessor(GenericProcessor* processor) { std::cout << "Removing processor with ID " << processor->getNodeId() << std::endl; @@ -435,6 +457,12 @@ bool ProcessorGraph::enableProcessors() { bool allClear; + if (getNumNodes() < 5) + { + UI->disableCallbacks(); + return false; + } + for (int i = 0; i < getNumNodes(); i++) { @@ -446,8 +474,11 @@ bool ProcessorGraph::enableProcessors() { allClear = p->enable(); if (!allClear) { - sendActionMessage("Could not initialize acquisition. Is the Intan Board plugged in?"); + std::cout << p->getName() << " said it's not OK." << std::endl; + sendActionMessage("Could not initialize acquisition."); + UI->disableCallbacks(); return false; + } } } diff --git a/Source/Processors/ProcessorGraph.h b/Source/Processors/ProcessorGraph.h index 00697264e8664c295ab977c487078d4f17c1ddbb..6d329c4f780ee61bd6935bb4a0d6b3d3244d0e04 100644 --- a/Source/Processors/ProcessorGraph.h +++ b/Source/Processors/ProcessorGraph.h @@ -49,6 +49,7 @@ public: void updateConnections(Array<SignalChainTabButton*, CriticalSection>); + bool doesProcessorWithSameNameExist(const String& name); void saveState(); void loadState(); diff --git a/Source/Processors/WiFiOutput.cpp b/Source/Processors/WiFiOutput.cpp index f701e510d7ec68ed48596fa87cdf028597b0bfa0..9e34acd9afd42a02d457fd9e163b0588296a35c8 100644 --- a/Source/Processors/WiFiOutput.cpp +++ b/Source/Processors/WiFiOutput.cpp @@ -26,16 +26,20 @@ WiFiOutput::~WiFiOutput() } -// AudioProcessorEditor* EventNode::createEditor() -// { -// FilterEditor* filterEditor = new FilterEditor(this, viewport); +AudioProcessorEditor* WiFiOutput::createEditor() +{ + WiFiOutputEditor* wifiEditor = new WiFiOutputEditor(this, viewport); -// std::cout << "Creating editor." << std::endl; -// //filterEditor = new FilterEditor(this); -// return filterEditor; + setEditor(wifiEditor); + //wifiEditor->setUIComponent(getUIComponent()); + wifiEditor->setConfiguration(config); + + std::cout << "Creating editor." << std::endl; + //filterEditor = new FilterEditor(this); + return wifiEditor; -// //return 0; -// } + //return 0; +} void WiFiOutput::setParameter (int parameterIndex, float newValue) @@ -76,4 +80,6 @@ void WiFiOutput::timerCallback() //std::cout << "FIRE!" << std::endl; socket.sendTo("hi",2,"169.254.187.27",6000); stopTimer(); + WiFiOutputEditor* ed = (WiFiOutputEditor*) getEditor(); + ed->receivedEvent(); } diff --git a/Source/Processors/WiFiOutput.h b/Source/Processors/WiFiOutput.h index 367dba3468ebfe09cc0bbd1af4be19c76bcc424b..2ebd6bca3b0bb2a468edfc79b6971dc3e2042ede 100644 --- a/Source/Processors/WiFiOutput.h +++ b/Source/Processors/WiFiOutput.h @@ -14,6 +14,7 @@ #include "../../JuceLibraryCode/JuceHeader.h" #include "GenericProcessor.h" +#include "Editors/WiFiOutputEditor.h" #include "../Network/PracticalSocket.h" // For UDPSocket and SocketException #include <iostream> // For cout and cerr @@ -22,6 +23,8 @@ class FilterViewport; +class WiFiOutputEditor; + class WiFiOutput : public GenericProcessor, public Timer @@ -36,6 +39,8 @@ public: void process(AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples); void setParameter (int parameterIndex, float newValue); + AudioProcessorEditor* createEditor(); + bool isSink() {return true;} private: diff --git a/Source/UI/ControlPanel.cpp b/Source/UI/ControlPanel.cpp index 1bcce23c70c841340ecf474f6a0fef252626b833..4cea509551f8da89ee696657b5f7cef3fed9d91e 100644 --- a/Source/UI/ControlPanel.cpp +++ b/Source/UI/ControlPanel.cpp @@ -423,9 +423,12 @@ void ControlPanel::disableCallbacks() graph->disableProcessors(); std::cout << "Updating control panel." << std::endl; cpuMeter->updateCPU(0.0f); - playButton->setToggleState(false,false); - recordButton->setToggleState(false,false); + } + + playButton->setToggleState(false,false); + recordButton->setToggleState(false,false); + } void ControlPanel::actionListenerCallback(const String & msg) diff --git a/Source/UI/FilterViewport.cpp b/Source/UI/FilterViewport.cpp index c8b5f7cbf5fd36965c36647efeff6e8238b43f27..5489e61c702556ff933dbb111bcdf9b28828d08a 100644 --- a/Source/UI/FilterViewport.cpp +++ b/Source/UI/FilterViewport.cpp @@ -14,7 +14,7 @@ FilterViewport::FilterViewport(ProcessorGraph* pgraph, DataViewport* tcomp) : message ("Drag-and-drop some rows from the top-left box onto this component!"), somethingIsBeingDraggedOver (false), graph(pgraph), tabComponent(tcomp), shiftDown(false), insertionPoint(0), componentWantsToMove(false), indexOfMovingComponent(-1), - borderSize(6), tabSize(30), tabButtonSize(15), canEdit(true)//, signalChainNeedsSource(true) + borderSize(6), tabSize(30), tabButtonSize(15), canEdit(true), currentTab(-1)//, signalChainNeedsSource(true) { addMouseListener(this, true); @@ -207,6 +207,10 @@ void FilterViewport::itemDropped (const String& sourceDescription, Component* /* updateVisibleEditors(activeEditor, 1); + } else { + insertionPoint = -1; // make sure all editors are left-justified + indexOfMovingComponent = -1; + refreshEditors(); } somethingIsBeingDraggedOver = false; @@ -255,6 +259,8 @@ void FilterViewport::createNewTab(GenericEditor* editor) t->setToggleState(true,false); t->setNumber(index); + // currentTab = signalChainArray.size()-1; + } void FilterViewport::removeTab(int tabIndex) @@ -364,7 +370,7 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio dest->setSourceNode(source); - // std::cout << dest->getName() << "::"; + //std::cout << dest->getName() << "::"; } dest->setDestNode(0); // set last dest as 0 @@ -376,6 +382,8 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio // Step 3: check for new tabs if (action < 4) { + std::cout << "Checking for new tabs." << std::endl; + for (int n = 0; n < editorArray.size(); n++) { GenericProcessor* p = (GenericProcessor*) editorArray[n]->getProcessor(); @@ -384,8 +392,11 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio if (p->getSourceNode() == 0)// && editorArray[n]->tabNumber() == -1) { + if (editorArray[n]->tabNumber() == -1) + { + std::cout << p->getName() << " has no source node. Creating a new tab." << std::endl; createNewTab(editorArray[n]); } @@ -410,11 +421,13 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio } editorArray.clear(); + std::cout << "Cleared editor array." << std::endl; GenericEditor* editorToAdd = activeEditor; while (editorToAdd != 0) { + std::cout << "Inserting " << editorToAdd->getName() << " at point 0." << std::endl; editorArray.insert(0,editorToAdd); GenericProcessor* currentProcessor = (GenericProcessor*) editorToAdd->getProcessor(); @@ -422,11 +435,10 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio if (source != 0) { - // std::cout << "Source: " << source->getName() << std::endl; + std::cout << "Source: " << source->getName() << std::endl; editorToAdd = (GenericEditor*) source->getEditor(); } else { - - // std::cout << "No source found." << std::endl; + std::cout << "No source found." << std::endl; editorToAdd = 0; } } @@ -441,12 +453,15 @@ void FilterViewport::updateVisibleEditors(GenericEditor* activeEditor, int actio if (dest != 0) { - // std::cout << "Destination: " << dest->getName() << std::endl; + + std::cout << "Destination: " << dest->getName() << std::endl; editorToAdd = (GenericEditor*) dest->getEditor(); editorArray.add(editorToAdd); + std::cout << "Inserting " << editorToAdd->getName() << " at the end." << std::endl; + } else { - // std::cout << "No dest found." << std::endl; + std::cout << "No dest found." << std::endl; editorToAdd = 0; } } @@ -599,6 +614,12 @@ void FilterViewport::moveSelection (const KeyPress &key) { // } } } + } else if (key.getKeyCode() == key.upKey) { + + // move one tab up + } else if (key.getKeyCode() == key.downKey) { + + // move one tab down } } diff --git a/Source/UI/FilterViewport.h b/Source/UI/FilterViewport.h index 370e5c0d7efe7617de0a6aadf9461c698cbc8f60..c2c31850fa68cc7d3ef619f38032bb1c8c03badd 100644 --- a/Source/UI/FilterViewport.h +++ b/Source/UI/FilterViewport.h @@ -96,6 +96,8 @@ private: bool componentWantsToMove; int indexOfMovingComponent; + int currentTab; + //bool signalChainNeedsSource; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FilterViewport); diff --git a/open-ephys.jucer b/open-ephys.jucer index 75b15193e6f9c8467de4d89f45ceafd88eb17e11..0a6143658dfda090590e00a64d511e22c77c72db 100644 --- a/open-ephys.jucer +++ b/open-ephys.jucer @@ -47,6 +47,7 @@ </GROUP> <GROUP id="W2L6BdA" name="Images"> <GROUP id="Gu1BsKu" name="Icons"> + <FILE id="wI03PLF" name="wifi.png" compile="0" resource="1" file="Resources/Images/Icons/wifi.png"/> <FILE id="p1qlCZ5" name="SourceDrop.png" compile="0" resource="1" file="Resources/Images/Icons/SourceDrop.png"/> <FILE id="nWbYpu" name="DefaultDataSource.png" compile="0" resource="1" file="Resources/Images/Icons/DefaultDataSource.png"/> @@ -164,6 +165,16 @@ <FILE id="hGnGAjh" name="EventNode.cpp" compile="1" resource="0" file="Source/Processors/EventNode.cpp"/> <FILE id="dUtRN6" name="EventNode.h" compile="0" resource="0" file="Source/Processors/EventNode.h"/> <GROUP id="AqvwO6w" name="Editors"> + <FILE id="i2MR4pC" name="ImageIcon.cpp" compile="1" resource="0" file="Source/Processors/Editors/ImageIcon.cpp"/> + <FILE id="N8r8D18" name="ImageIcon.h" compile="0" resource="0" file="Source/Processors/Editors/ImageIcon.h"/> + <FILE id="mLd64ww" name="WiFiOutputEditor.cpp" compile="1" resource="0" + file="Source/Processors/Editors/WiFiOutputEditor.cpp"/> + <FILE id="qunHBGe" name="WiFiOutputEditor.h" compile="0" resource="0" + file="Source/Processors/Editors/WiFiOutputEditor.h"/> + <FILE id="5DPzIoS" name="EventNodeEditor.cpp" compile="1" resource="0" + file="Source/Processors/Editors/EventNodeEditor.cpp"/> + <FILE id="gva5me" name="EventNodeEditor.h" compile="0" resource="0" + file="Source/Processors/Editors/EventNodeEditor.h"/> <FILE id="OJKuulJ" name="SignalGeneratorEditor.cpp" compile="1" resource="0" file="Source/Processors/Editors/SignalGeneratorEditor.cpp"/> <FILE id="JhVBo3n" name="SignalGeneratorEditor.h" compile="0" resource="0"