From: <bor...@us...> - 2008-07-17 09:52:30
|
Revision: 1817 http://ftm.svn.sourceforge.net/ftm/?rev=1817&view=rev Author: borghesi Date: 2008-07-17 09:52:13 +0000 (Thu, 17 Jul 2008) Log Message: ----------- ftm.editor: finalized ScoreEditor (for testing track and mat classes implements score_gui_interface) Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/ftmlib/classes/mat.c trunk/ftm/ftmlib/classes/track.c trunk/ftm/gui/Juce/common/InfoPanel.cpp trunk/ftm/gui/Juce/common/ScoreEditor.cpp Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-15 16:41:27 UTC (rev 1816) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-17 09:52:13 UTC (rev 1817) @@ -115,7 +115,6 @@ 2195DE0309A24A63007DEFAF /* MaxAudioAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B82C806D4A733009827F3 /* MaxAudioAPI.framework */; }; 2195DE0B09A24AA6007DEFAF /* ftm.sdif.write.c in Sources */ = {isa = PBXBuildFile; fileRef = 2195DDA709A24A4A007DEFAF /* ftm.sdif.write.c */; }; 3B01D3090A790E2A00950F15 /* ftm.sqlite.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B01D3080A790E2A00950F15 /* ftm.sqlite.c */; }; - 3B04C2930CABBEDC00AA02B0 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B04C2920CABBEDC00AA02B0 /* BpfTableView.cpp */; }; 3B145DBA0CBA86FF0013392A /* EditorContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B145DB80CBA86FE0013392A /* EditorContainer.cpp */; }; 3B145DBB0CBA86FF0013392A /* EditorContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B145DB90CBA86FF0013392A /* EditorContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3B1982C40A55805600B2841E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B822E06D4A70F009827F3 /* Carbon.framework */; }; @@ -193,12 +192,12 @@ 3B4E71160CC8E399006DFB5A /* MarkersTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */; }; 3B7073BE0713F12300764C51 /* ftm.list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B7073BD0713F04500764C51 /* ftm.list.c */; }; 3B8DE0FC0E10F962000757BC /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B8DE0FB0E10F962000757BC /* AppKit.framework */; }; - 3B9C563A0D5DF07000051CD5 /* TrackScoobEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B9C56390D5DF07000051CD5 /* TrackScoobEditor.cpp */; }; 3B9D37B30E1CD6CC002ED38C /* EditorContainerListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */; }; 3B9D37B40E1CD6CC002ED38C /* InfoPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */; }; 3BA368CD0E0A60050011055C /* libjuce.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB04330D197490006AEB4A /* libjuce.a */; }; 3BA9E3B80E2513A500B88643 /* ScoreEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */; }; 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */; }; + 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */; }; 3BCAC5EC0CBE5E7E00020156 /* FvecEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */; }; 3BDB03F40D197463006AEB4A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB03F30D197463006AEB4A /* IOKit.framework */; }; 3BDB03F50D197463006AEB4A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB03F30D197463006AEB4A /* IOKit.framework */; }; @@ -216,12 +215,9 @@ 3BDF29390D06C28800436BD5 /* MarkersTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */; }; 3BDF293B0D06C28800436BD5 /* FvecEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */; }; 3BDF293C0D06C28800436BD5 /* EditorContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B145DB80CBA86FE0013392A /* EditorContainer.cpp */; }; - 3BDF293D0D06C28800436BD5 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B04C2920CABBEDC00AA02B0 /* BpfTableView.cpp */; }; 3BDF293E0D06C28800436BD5 /* EditorScrollBar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B02948C0C1FEBD500E7AB82 /* EditorScrollBar.cpp */; }; 3BDF293F0D06C28800436BD5 /* BpfEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B35E1950C05AD6D00567CE9 /* BpfEditor.cpp */; }; 3BDF29400D06C28800436BD5 /* SpectrogramEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BFB5BB10CF860BF00FB74F9 /* SpectrogramEditor.cpp */; }; - 3BDF2B870D07201800436BD5 /* InspectorContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BDF2B860D07201800436BD5 /* InspectorContainer.h */; }; - 3BDF2B8B0D07203500436BD5 /* InspectorContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BDF2B8A0D07203500436BD5 /* InspectorContainer.cpp */; }; 3BE10D990DC756E10023645B /* ScrollZoomTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BE10D980DC756E10023645B /* ScrollZoomTool.cpp */; }; 3BE501400D059384006C9C44 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B0897A10B8B64520058107D /* CoreAudio.framework */; }; 3BE501410D059384006C9C44 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B0682850C29369A00D78875 /* AGL.framework */; }; @@ -574,7 +570,6 @@ 3B01D3080A790E2A00950F15 /* ftm.sqlite.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.sqlite.c; sourceTree = "<group>"; }; 3B02948C0C1FEBD500E7AB82 /* EditorScrollBar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EditorScrollBar.cpp; sourceTree = "<group>"; }; 3B03F9840CAA96E7001C491B /* libjucedebug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjucedebug.a; path = ../../../components/juce/bin/libjucedebug.a; sourceTree = "<group>"; }; - 3B04C2920CABBEDC00AA02B0 /* BpfTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BpfTableView.cpp; sourceTree = "<group>"; }; 3B0682850C29369A00D78875 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; }; 3B0682DB0C2937D200D78875 /* EditorScrollBar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EditorScrollBar.h; sourceTree = "<group>"; }; 3B0897A10B8B64520058107D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; @@ -618,11 +613,11 @@ 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MarkersTableView.cpp; sourceTree = "<group>"; }; 3B7073BD0713F04500764C51 /* ftm.list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.list.c; sourceTree = "<group>"; }; 3B8DE0FB0E10F962000757BC /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; - 3B9C56390D5DF07000051CD5 /* TrackScoobEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TrackScoobEditor.cpp; sourceTree = "<group>"; }; 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditorContainerListener.h; sourceTree = "<group>"; }; 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InfoPanel.cpp; sourceTree = "<group>"; }; 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreEditor.cpp; sourceTree = "<group>"; }; 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreTableView.cpp; sourceTree = "<group>"; }; + 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BpfTableView.cpp; sourceTree = "<group>"; }; 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FvecEditor.cpp; sourceTree = "<group>"; }; 3BDB03F30D197463006AEB4A /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; 3BDB04330D197490006AEB4A /* libjuce.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjuce.a; path = ../../../components/juce/bin/UninstalledProducts/libjuce.a; sourceTree = SOURCE_ROOT; }; @@ -632,8 +627,6 @@ 3BDD17CB0DCF11B100E6ED8C /* RegionTool.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RegionTool.cpp; sourceTree = "<group>"; }; 3BDD54C50DC5DD970047D21D /* EditorTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EditorTool.h; sourceTree = "<group>"; }; 3BDD54C60DC5DD970047D21D /* EditTool.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EditTool.cpp; sourceTree = "<group>"; }; - 3BDF2B860D07201800436BD5 /* InspectorContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InspectorContainer.h; sourceTree = "<group>"; }; - 3BDF2B8A0D07203500436BD5 /* InspectorContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorContainer.cpp; sourceTree = "<group>"; }; 3BE10D980DC756E10023645B /* ScrollZoomTool.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollZoomTool.cpp; sourceTree = "<group>"; }; 3BE501490D059384006C9C44 /* ftm.inspector.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftm.inspector.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; 3BE5016E0D059C5E006C9C44 /* ftm.inspector.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ftm.inspector.cpp; sourceTree = "<group>"; }; @@ -1141,6 +1134,7 @@ 3B35E1920C05AD2600567CE9 /* Juce */ = { isa = PBXGroup; children = ( + 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */, 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */, 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */, 3BE7C48A0DEC385D00A0B7A5 /* ImtrEditor.h */, @@ -1153,7 +1147,6 @@ 3BDD54C50DC5DD970047D21D /* EditorTool.h */, 3BDD54C60DC5DD970047D21D /* EditTool.cpp */, 3B35E1950C05AD6D00567CE9 /* BpfEditor.cpp */, - 3B04C2920CABBEDC00AA02B0 /* BpfTableView.cpp */, 3B145DB80CBA86FE0013392A /* EditorContainer.cpp */, 3B145DB90CBA86FF0013392A /* EditorContainer.h */, 3BF594270DAA371D003FE0A6 /* EditorResizerBar.cpp */, @@ -1161,14 +1154,11 @@ 3B02948C0C1FEBD500E7AB82 /* EditorScrollBar.cpp */, 3B0682DB0C2937D200D78875 /* EditorScrollBar.h */, 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */, - 3BDF2B8A0D07203500436BD5 /* InspectorContainer.cpp */, - 3BDF2B860D07201800436BD5 /* InspectorContainer.h */, 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */, 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */, 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */, 3B40FAA50D351B7D00A25542 /* ScrollZoomListener.h */, 3BFB5BB10CF860BF00FB74F9 /* SpectrogramEditor.cpp */, - 3B9C56390D5DF07000051CD5 /* TrackScoobEditor.cpp */, ); name = Juce; path = ../../../gui/Juce/common; @@ -1343,7 +1333,6 @@ files = ( 3BDF29340D06C26800436BD5 /* EditorContainer.h in Headers */, 3BDF29370D06C26800436BD5 /* EditorScrollBar.h in Headers */, - 3BDF2B870D07201800436BD5 /* InspectorContainer.h in Headers */, 3B40FAA60D351B7D00A25542 /* ScrollZoomListener.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3139,7 +3128,6 @@ 3B1CA7D40C467B12005F0280 /* ftm.editor.cpp in Sources */, 3B1CA7D20C467B12005F0280 /* BpfEditor.cpp in Sources */, 3B1CA7D30C467B12005F0280 /* EditorScrollBar.cpp in Sources */, - 3B04C2930CABBEDC00AA02B0 /* BpfTableView.cpp in Sources */, 3B145DBA0CBA86FF0013392A /* EditorContainer.cpp in Sources */, 3BCAC5EC0CBE5E7E00020156 /* FvecEditor.cpp in Sources */, 3B4E71160CC8E399006DFB5A /* MarkersTableView.cpp in Sources */, @@ -3153,6 +3141,7 @@ 3B9D37B40E1CD6CC002ED38C /* InfoPanel.cpp in Sources */, 3BA9E3B80E2513A500B88643 /* ScoreEditor.cpp in Sources */, 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */, + 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3172,12 +3161,9 @@ 3BDF29390D06C28800436BD5 /* MarkersTableView.cpp in Sources */, 3BDF293B0D06C28800436BD5 /* FvecEditor.cpp in Sources */, 3BDF293C0D06C28800436BD5 /* EditorContainer.cpp in Sources */, - 3BDF293D0D06C28800436BD5 /* BpfTableView.cpp in Sources */, 3BDF293E0D06C28800436BD5 /* EditorScrollBar.cpp in Sources */, 3BDF293F0D06C28800436BD5 /* BpfEditor.cpp in Sources */, 3BDF29400D06C28800436BD5 /* SpectrogramEditor.cpp in Sources */, - 3BDF2B8B0D07203500436BD5 /* InspectorContainer.cpp in Sources */, - 3B9C563A0D5DF07000051CD5 /* TrackScoobEditor.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: trunk/ftm/ftmlib/classes/mat.c =================================================================== --- trunk/ftm/ftmlib/classes/mat.c 2008-07-15 16:41:27 UTC (rev 1816) +++ trunk/ftm/ftmlib/classes/mat.c 2008-07-17 09:52:13 UTC (rev 1817) @@ -29,6 +29,7 @@ fts_class_t *mat_class = NULL; static imtr_guiInterfaceMarkers *mat_gui_interface_markers = NULL; +static imtr_guiInterfaceScore *mat_gui_interface_score = NULL; static void mat_changed(mat_t *mat) @@ -402,7 +403,6 @@ { int old_m = mat_get_m(self); int old_n = mat_get_n(self); - int old_size = old_m * old_n; if(n < 1) n = 1; @@ -610,7 +610,6 @@ { int old_m = mat_get_m(self); int old_n = mat_get_n(self); - int old_size = old_m * old_n; if(n < 1) n = 1; @@ -622,7 +621,6 @@ else { int min_m = (m < old_m)? m: old_m; - int min_n = (n < old_n)? n: old_n; ma_reshape_grow_unsafe(self, m, n); ma_rearrange(self, min_m, old_n); @@ -2111,6 +2109,191 @@ return NULL; } +/************************************************************ + * + * Score Gui Interface + * + */ +static int +mat_gui_score_is_vector(void) +{ + return 1; +} + +static int +mat_gui_score_get_size(void *obj) +{ + return mat_get_m((mat_t *)obj); +} + +static double +mat_gui_score_get_duration(void *obj) +{ + int m = mat_get_m((mat_t *)obj); + int n = mat_get_n((mat_t *)obj); + if(m > 0 && n > 2) + { + fts_atom_t *time = mat_get_element( (mat_t *)obj, m-1, 0); + fts_atom_t *duration = mat_get_element( (mat_t *)obj, m-1, 2); + if(fts_is_number(time) && fts_is_number(duration)) return (fts_get_number_float(time) + fts_get_number_float(duration)); + } + return -1.0; +} +static void * +mat_gui_score_get_by_index(void *obj, int index, double *time, double *pitch, double *duration) +{ + int m = mat_get_m((mat_t *)obj); + int n = mat_get_n((mat_t *)obj); + + *time = -1.0; + *pitch = -1.0; + *duration = -1.0; + if((m > 0 && n > 2) && (index >= 0 && index < m)) + { + fts_atom_t *val; + /* time */ + val = mat_get_element( (mat_t *)obj, index, 0); + if(fts_is_number(val)) *time = fts_get_number_float(val); + /* pitch */ + val = mat_get_element( (mat_t *)obj, index, 1); + if(fts_is_number(val)) *pitch = fts_get_number_float(val); + /* duration */ + val = mat_get_element( (mat_t *)obj, index, 2); + if(fts_is_number(val)) *duration = fts_get_number_float(val); + } + return NULL; +} + +static void * +mat_gui_score_add(void *obj, double time, double pitch, double duration) +{ + int m = mat_get_m((mat_t *)obj); + float evt_time; + int i; + fts_atom_t k; + for(i = 0; i < m; i++) + { + evt_time = fts_get_number_float(mat_get_element( (mat_t *)obj, i, 0)); + if(evt_time > time) + break; + } + mat_insert_rows((mat_t *)obj, i, 1); + + fts_set_float(&k, time); + mat_set_element((mat_t *)obj, i, 0, &k); + + fts_set_float(&k, pitch); + mat_set_element((mat_t *)obj, i, 1, &k); + fts_set_float(&k, duration); + mat_set_element((mat_t *)obj, i, 2, &k); + + return NULL; +} + +static void +mat_gui_score_move(void *obj, void *evt, int index, double time) +{ + int m = mat_get_m((mat_t *)obj); + float evt_time; + int i; + fts_atom_t k; + fts_atom_t at_void; + fts_set_void(&at_void); + + for(i = 0; i < m; i++) + { + evt_time = fts_get_number_float(mat_get_element( (mat_t *)obj, i, 0)); + if(evt_time > time) + break; + } + + if(i == index) + { + fts_set_float(&k, time); + mat_set_element((mat_t *)obj, i, 0, &k); + } + else + { + int idx = (i < index) ? index+1 : index; + + // insert row and copy values + mat_insert_rows((mat_t *)obj, i, 1); + + fts_set_float(&k, time); + mat_set_element((mat_t *)obj, i, 0, &k); + + k = *(mat_get_element((mat_t *)obj, idx, 1)); + + if(fts_is_number(&k)) + mat_set_element((mat_t *)obj, i, 1, &k); + + k = *(mat_get_element((mat_t *)obj, idx, 2)); + + if(fts_is_number(&k)) + mat_set_element((mat_t *)obj, i, 2, &k); + + //remove row at old index + mat_delete_rows((mat_t *)obj, idx, 1); + } +} +static void +mat_gui_score_remove(void *obj, void *evt, int index) +{ + mat_delete_rows((mat_t *)obj, index, 1); +} +static void +mat_gui_score_set_pitch(void *obj, void *marker, int index, double pitch) +{ + int m = mat_get_m((mat_t *)obj); + int n = mat_get_n((mat_t *)obj); + + if(m > 0 && n > 2 && index >= 0 && index < m) + { + fts_atom_t k; + fts_set_float(&k, pitch); + mat_set_element((mat_t *)obj, index, 1, &k); + } +} + +static void +mat_gui_score_set_duration(void *obj, void *evt, int index, double duration) +{ + int m = mat_get_m((mat_t *)obj); + int n = mat_get_n((mat_t *)obj); + + if(m > 0 && n > 2 && index >= 0 && index < m) + { + fts_atom_t k; + fts_set_float(&k, duration); + mat_set_element((mat_t *)obj, index, 2, &k); + } +} + +static void +mat_gui_score_get_values(void *obj, void *evt, double *time, double *pitch, double *duration) +{ + *time = -1.0; + *pitch = -1.0; + *duration = -1.0; +} + +static void * +mat_gui_score_get_first(void *obj, double *time, double *pitch, double *duration) +{ + *time = -1.0; + *pitch = -1.0; + *duration = -1.0; + return NULL; +} +static void * +mat_gui_score_get_next(void *obj, void *marker, double *time, double *pitch, double *duration) +{ + *time = -1.0; + *pitch = -1.0; + *duration = -1.0; + return NULL; +} + /******************************************************************** * * class @@ -2122,7 +2305,7 @@ mat_t *self = (mat_t *) o; int m = 0; int n = 1; - int size, i; + int size; fts_safeobject_init((fts_safeobject_t *)self); @@ -2303,6 +2486,23 @@ mat_gui_interface_markers->getTime = mat_gui_markers_get_time; fts_class_gui_interface(cl, fts_s_markers, mat_gui_interface_markers); + + mat_gui_interface_score = (imtr_guiInterfaceScore *)fts_malloc(sizeof(imtr_guiInterfaceScore)); + ((imtr_guiInterface *)mat_gui_interface_score)->name = fts_symbol_name(fts_s_score); + mat_gui_interface_score->isVector = mat_gui_score_is_vector; + mat_gui_interface_score->getSize = mat_gui_score_get_size; + mat_gui_interface_score->getDuration = mat_gui_score_get_duration; + mat_gui_interface_score->move = mat_gui_score_move; + mat_gui_interface_score->setDuration = mat_gui_score_set_duration; + mat_gui_interface_score->remove = mat_gui_score_remove; + mat_gui_interface_score->add = mat_gui_score_add; + mat_gui_interface_score->getFirst = mat_gui_score_get_first; + mat_gui_interface_score->getNext = mat_gui_score_get_next; + mat_gui_interface_score->getValues = mat_gui_score_get_values; + mat_gui_interface_score->getByIndex = mat_gui_score_get_by_index; + mat_gui_interface_score->setPitch = mat_gui_score_set_pitch; + + fts_class_gui_interface(cl, fts_s_score, mat_gui_interface_score); } FTS_MODULE_INIT(mat) Modified: trunk/ftm/ftmlib/classes/track.c =================================================================== --- trunk/ftm/ftmlib/classes/track.c 2008-07-15 16:41:27 UTC (rev 1816) +++ trunk/ftm/ftmlib/classes/track.c 2008-07-17 09:52:13 UTC (rev 1817) @@ -2055,6 +2055,12 @@ } static void +track_gui_score_set_duration(void *obj, void *evt, int index, double duration) +{ + event_set_duration((event_t *)evt, duration); +} + +static void track_gui_score_remove(void *obj, void *evt, int index) { sequence_remove_event(track_get_events((track_t *)obj), (event_t *)evt); @@ -2256,6 +2262,7 @@ track_gui_interface_score->getSize = track_gui_score_get_size; track_gui_interface_score->getDuration = track_gui_score_get_duration; track_gui_interface_score->move = track_gui_score_move; + track_gui_interface_score->setDuration = track_gui_score_set_duration; track_gui_interface_score->remove = track_gui_score_remove; track_gui_interface_score->add = track_gui_score_add; track_gui_interface_score->getFirst = track_gui_score_get_first; Modified: trunk/ftm/gui/Juce/common/InfoPanel.cpp =================================================================== --- trunk/ftm/gui/Juce/common/InfoPanel.cpp 2008-07-15 16:41:27 UTC (rev 1816) +++ trunk/ftm/gui/Juce/common/InfoPanel.cpp 2008-07-17 09:52:13 UTC (rev 1817) @@ -72,7 +72,7 @@ if(editor->haveInfoPanel()) { JUCE_EDITOR_NAMESPACE::Image *img = editor->getInfoImage(); - g.drawImageAt(img, 0, ed_y, false); + g.drawImageAt(img, 0, ed_y, false); } } } Modified: trunk/ftm/gui/Juce/common/ScoreEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-07-15 16:41:27 UTC (rev 1816) +++ trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-07-17 09:52:13 UTC (rev 1817) @@ -201,13 +201,13 @@ pianorollInfoImage = NULL; redraw_offscreen = true; - description = JUCE_EDITOR_NAMESPACE::String("markers"); + description = JUCE_EDITOR_NAMESPACE::String("score"); currentToolToRestore = EditorContainer::edit_tool; scoreFont = NULL; loadScoreFont(); - + //addAndMakeVisible(mouseLabel = new ScoreMouseLabel()); /*addAndMakeVisible(mouseLabel = new JUCE_EDITOR_NAMESPACE::Label("mouse label", "1000 , 15")); mouseLabel->setEditable(false, true, true); @@ -423,40 +423,39 @@ return NULL; } - int scoreGetIndexAt(int pix) + int scoreGetIndexAt(int x, int y) { - double time, t_delta, evt_time, next_time; - double evt_pitch, evt_duration; + double evt_time, evt_pitch, evt_duration; int size = scoreGui->getSize(obj); - if(pix > 0) pix--; if(!container->isVertical()) { - time = editorGetInvX(pix); - t_delta = editorGetInvX(2)-editorGetInvX(0); + int i, evt_x, evt_nx, evt_y; + for(i = 0; i < size; i++) + { + scoreGui->getByIndex(obj, i, &evt_time, &evt_pitch, &evt_duration); + evt_x = editorGetX(evt_time); + evt_nx = editorGetX(evt_time + evt_duration); + evt_y = editorGetY(evt_pitch); + + if((x >= evt_x - 2 && x <= evt_nx + 2) && (y <= evt_y + 2 && y >= evt_y - 2)) + return i; + } } else { - time = editorGetInvY(pix); - t_delta = editorGetInvY(2)-editorGetInvY(0); + int i, evt_y, evt_ny, evt_x; + for(i = 0; i < size; i++) + { + scoreGui->getByIndex(obj, i, &evt_time, &evt_pitch, &evt_duration); + evt_y = editorGetY(evt_time); + evt_ny = editorGetY(evt_time + evt_duration); + evt_x = editorGetX(evt_pitch); + if((y >= evt_y - 2 && y <= evt_ny + 2) && (x <= evt_x + 2 && x >= evt_x - 2)) + return i; + } } - - int i; - for(i = 0; i < size; i++) - { - scoreGui->getByIndex(obj, i, &next_time, &evt_pitch, &evt_duration); - if(next_time > time) break; - evt_time = next_time; - } - - if((next_time < time + t_delta) && (next_time > time - t_delta)) - return i; - else - if(evt_time <= time + t_delta && evt_time >= time - t_delta) - return i-1; - else - return -1; } /********************** @@ -467,7 +466,7 @@ if(!selection.contains(evt)) selection.add(evt); } - void markerIndexSelect(int i) + void scoreIndexSelect(int i) { if(!indexSelection.contains(i)) indexSelection.add(i); @@ -476,15 +475,15 @@ { selection.removeValue(evt); } - void markerIndexDeselect(int i) + void scoreIndexDeselect(int i) { indexSelection.removeValue(i); } - bool markersIsSelected(void *evt) + bool scoreIsSelected(void *evt) { return selection.contains(evt); } - bool markerIndexIsSelected(int i) + bool scoreIndexIsSelected(int i) { return indexSelection.contains(i); } @@ -539,7 +538,7 @@ } } else - { + { if(dy != 0) for(i = indexSelection.size()-1; i >= 0; i--) { @@ -551,7 +550,7 @@ for(i = 0; i< indexSelection.size(); i++) { scoreGui->getByIndex(obj, indexSelection[i], &time, &pitch, &duration); - pix = editorGetY(pitch) + dx; + pix = editorGetX(pitch) + dx; new_pitch = (int)editorGetInvX(pix); if(new_pitch > 127) new_pitch = 127; else if (new_pitch < 0) new_pitch = 0; @@ -683,7 +682,7 @@ } } - void markersDeleteSelection() + void scoreDeleteSelection() { if(scoreGui->isVector()) { @@ -705,37 +704,45 @@ void scoreSelectInRect(JUCE_EDITOR_NAMESPACE::Rectangle r) { + double start_time, end_time, evt_time; + double evt_pitch, evt_duration; + double maxPitch, minPitch; + if(scoreGui->isVector()) { - double start_time, end_time, evt_time; - double evt_pitch, evt_duration; int i; - + double last_time; + + int first_idx = getFirstVisibleIndex(&evt_time, &evt_pitch, &evt_duration); + int last_idx = getLastVisibleIndex(&last_time); + if(!container->isVertical()) { start_time = editorGetInvX(r.getX()); end_time = editorGetInvX( r.getX() + r.getWidth()); + maxPitch = editorGetInvY(r.getY()); + minPitch = editorGetInvY(r.getY() + r.getHeight()); } else { start_time = editorGetInvY(r.getY()); end_time = editorGetInvY( r.getY() + r.getHeight()); + minPitch = editorGetInvX(r.getX()); + maxPitch = editorGetInvX(r.getX() + r.getWidth()); } - for(i = 0; i < scoreGui->getSize(obj); i++) + for(i = first_idx; i <= last_idx; i++) { scoreGui->getByIndex(obj, i, &evt_time, &evt_pitch, &evt_duration); - if(evt_time >= start_time && evt_time <= end_time) - markerIndexSelect(i); + if((evt_time+evt_duration >= start_time && evt_time <= end_time) && + (evt_pitch >= minPitch && evt_pitch <= maxPitch)) + scoreIndexSelect(i); } } else { void *evt = NULL; void *evt_after = NULL; - double start_time, end_time, evt_time; - double evt_pitch, evt_duration; - double maxPitch, minPitch; if(!container->isVertical()) { @@ -791,8 +798,8 @@ nx = editorGetX(evt_time+evt_duration); y = editorGetY(evt_pitch); - if(markersIsSelected(evt)) - g.setColour(JUCE_EDITOR_NAMESPACE::Colours::grey); + if(scoreIsSelected(evt)) + g.setColour(selectColor); else g.setColour(forecolor); @@ -823,8 +830,8 @@ ny = editorGetY(evt_time+evt_duration); x = editorGetX(evt_pitch); - if(markersIsSelected(evt)) - g.setColour(JUCE_EDITOR_NAMESPACE::Colours::grey); + if(scoreIsSelected(evt)) + g.setColour(selectColor); else g.setColour(forecolor); @@ -850,116 +857,79 @@ void drawScoreAsVector(JUCE_EDITOR_NAMESPACE::Graphics& g) { - /*double evt_time, last_time; - int cue; - char *evt_label; + double evt_time, last_time, evt_pitch, evt_duration; int size = scoreGui->getSize(obj); - int first_idx = getFirstVisibleIndex(&evt_time, &cue, &evt_label); + int first_idx = getFirstVisibleIndex(&evt_time, &evt_pitch, &evt_duration); int last_idx = getLastVisibleIndex(&last_time); - - g.setColour(forecolor); + + scoreFont.setHeight(42.0f); + g.setFont(scoreFont); + if(!container->isVertical()) { - int i, x; - int height = getHeight(); + int i, x, nx, y; for(i = first_idx; i < size && i<=last_idx; i++) { - scoreGui->getByIndex(obj, i, &evt_time, &cue, &evt_label); + scoreGui->getByIndex(obj, i, &evt_time, &evt_pitch, &evt_duration); + x = editorGetX(evt_time); - g.drawLine(x, 0, x, height); - if(markerIndexIsSelected(i)) - { + nx = editorGetX(evt_time+evt_duration); + y = editorGetY(evt_pitch); + + if(scoreIndexIsSelected(i)) g.setColour(selectColor); - g.fillRoundedRectangle(x-1, 0, 3, height, 2); + else g.setColour(forecolor); - } - // draw event properties - JUCE_EDITOR_NAMESPACE::String text; - int ytext = 1; - int wtext = 0; + g.fillRect(x, y-1, (nx-x), 3); - if(cue >= 0) + if(shape == staves_shape) { - text = JUCE_EDITOR_NAMESPACE::String(cue); - int text_width = midiFont->getStringWidth(text)+2; - g.setFont(*midiFont); - g.drawText(text, x+2, ytext, text_width, (int)(midiFont->getHeight()), JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); - ytext+=(int)(midiFont->getHeight()); - wtext = text_width; + int alt = getAlteration(evt_pitch); + switch(alt) + { + case ALTERATION_DIESIS: + g.drawSingleLineText("B", x-8, y+4); + break; + case ALTERATION_BEMOLLE: + g.drawSingleLineText("b", x-8, y+4); + } } - - if(evt_label != 0) - { - text = JUCE_EDITOR_NAMESPACE::String(evt_label); - int text_width = midiFont->getStringWidth(text)+2; - - g.setFont(*midiFont); - g.drawText(text, x+2, ytext, midiFont->getStringWidth(text)+2, (int)(midiFont->getHeight()), JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); - if(text_width > wtext) wtext = text_width; - ytext+=(int)(midiFont->getHeight()); - } - if(wtext > 0 && markerIndexIsSelected(i))//draw rect around props - { - g.setColour(labelColor); - g.fillRect(x+1, 1, wtext+2, ytext-1); - g.setColour(forecolor); - } } } else { - int i, y; - int width = getWidth(); + int i, x, y, ny; for(i = first_idx; i < size && i<=last_idx; i++) { - scoreGui->getByIndex(obj, i, &evt_time, &cue, &evt_label); + scoreGui->getByIndex(obj, i, &evt_time, &evt_pitch, &evt_duration); + y = editorGetY(evt_time); - g.drawLine(0, y, width, y); + ny = editorGetY(evt_time+evt_duration); + x = editorGetX(evt_pitch); - if(markerIndexIsSelected(i)) - { + if(scoreIndexIsSelected(i)) g.setColour(selectColor); - g.fillRoundedRectangle(0, y-1, width, 3, 2); + else g.setColour(forecolor); - } - // draw event properties - JUCE_EDITOR_NAMESPACE::String text; - int fontH = (int)(midiFont->getHeight()); - int xtext = getWidth()-fontH-1; - int htext = 0; + g.fillRect(x-1, y, 3, (ny-y)); - if(cue >= 0) + if(shape == staves_shape) { - text = JUCE_EDITOR_NAMESPACE::String(cue); - int text_width = midiFont->getStringWidth(text)+2; - g.setFont(*midiFont); - g.drawTextAsPath(text, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(xtext, y+1))); - xtext-=(int)(midiFont->getHeight()); - htext = text_width; + int alt = getAlteration(evt_pitch); + switch(alt) + { + case ALTERATION_DIESIS: + g.drawTextAsPath("B", JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(x-3, y-8))); + break; + case ALTERATION_BEMOLLE: + g.drawTextAsPath("b", JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(x-3, y-8))); + } } - - if(evt_label != 0) - { - text = JUCE_EDITOR_NAMESPACE::String(evt_label); - int text_width = midiFont->getStringWidth(text)+2; - - g.setFont(*midiFont); - g.drawTextAsPath(text, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(xtext, y+1))); - - if(text_width > htext) htext = text_width; - xtext-=(int)(midiFont->getHeight()); - } - if(htext > 0 && markerIndexIsSelected(i))//draw rect around props - { - g.setColour(labelColor); - g.fillRect(xtext+fontH, y+1, fontH*2+2, htext+2); - g.setColour(forecolor); - } } - }*/ + } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1597,7 +1567,7 @@ { if(pianorollInfoImage != NULL) delete pianorollInfoImage; - + if(container->isVertical()) pianorollInfoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), PIANOROLL_INFO_SIZE, true); else @@ -1713,25 +1683,26 @@ if(!container->isVertical()) { - int x; - int height = getHeight(); - + int x, nx, y; for(i = 0; i< indexSelection.size(); i++) { scoreGui->getByIndex(obj, indexSelection[i], &time, &pitch, &duration); x = editorGetX(time) + moving_dx; - g.fillRoundedRectangle(x-1, 0, 3, height, 2); + nx = editorGetX(time + duration) + moving_dx; + y = editorGetY(pitch) + moving_dy; + g.drawRect(x, y-2, nx-x, 5, 2); } } else { - int y; - int width = getWidth(); + int x, y, ny; for(i = 0; i< indexSelection.size(); i++) { scoreGui->getByIndex(obj, indexSelection[i], &time, &pitch, &duration); y = editorGetY(time) + moving_dy; - g.fillRoundedRectangle(0, y-1, width, 3, 2); + ny = editorGetY(time + duration) + moving_dy; + x = editorGetX(pitch) + moving_dx; + g.drawRect(x-2, y, 5, ny-y, 2); } } } @@ -1775,25 +1746,26 @@ if(!container->isVertical()) { - int x; - int height = getHeight(); - + int x, nx, y; for(i = 0; i< indexSelection.size(); i++) { scoreGui->getByIndex(obj, indexSelection[i], &time, &pitch, &duration); - x = editorGetX(time) + moving_dx; - g.fillRoundedRectangle(x-1, 0, 3, height, 2); + x = editorGetX(time); + nx = editorGetX(time + duration) + moving_dx; + y = editorGetY(pitch); + g.drawRect(x, y-2, nx-x, 5, 2); } } else { - int y; - int width = getWidth(); + int x, y, ny; for(i = 0; i< indexSelection.size(); i++) { scoreGui->getByIndex(obj, indexSelection[i], &time, &pitch, &duration); - y = editorGetY(time) + moving_dy; - g.fillRoundedRectangle(0, y-1, width, 3, 2); + y = editorGetY(time); + ny = editorGetY(time + duration) + moving_dy; + x = editorGetX(pitch); + g.drawRect(x-2, y, 5, ny-y, 2); } } } @@ -1838,7 +1810,7 @@ if(code == JUCE_EDITOR_NAMESPACE::KeyPress::deleteKey || code == JUCE_EDITOR_NAMESPACE::KeyPress::backspaceKey) { if(!scoreIsSelectionEmpty()) - markersDeleteSelection(); + scoreDeleteSelection(); return true; } return false; @@ -2070,24 +2042,24 @@ { if(scoreGui->isVector()) { - int index = scoreGetIndexAt((container->isVertical()) ? y : x); + int index = scoreGetIndexAt(x, y); if(index >= 0) { if(isShiftDown) { - if(markerIndexIsSelected(index)) - markerIndexDeselect(index); + if(scoreIndexIsSelected(index)) + scoreIndexDeselect(index); else { - markerIndexSelect(index); + scoreIndexSelect(index); scoreSetMovingSelection(true); } } else { - if( !markerIndexIsSelected(index)) + if( !scoreIndexIsSelected(index)) scoreDeselectAll(); - markerIndexSelect(index); + scoreIndexSelect(index); scoreSetMovingSelection(true); } @@ -2108,7 +2080,7 @@ { if(isShiftDown) { - if(markersIsSelected(evt)) + if(scoreIsSelected(evt)) scoreDeselect(evt); else { @@ -2118,7 +2090,7 @@ } else { - if( !markersIsSelected(evt)) + if( !scoreIsSelected(evt)) scoreDeselectAll(); scoreSelect(evt); @@ -2347,8 +2319,16 @@ bool haveInfoPanel() {return true;} JUCE_EDITOR_NAMESPACE::Image *getInfoImage() { - if(shape == staves_shape) return stavesInfoImage; - else return pianorollInfoImage; + if(shape == staves_shape) + { + if(stavesInfoImage == NULL) createAndDrawStavesInfoBackground(); + return stavesInfoImage; + } + else + { + if(pianorollInfoImage == NULL) createAndDrawPianorollInfoBackground(); + return pianorollInfoImage; + } } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-07-18 16:06:03
|
Revision: 1825 http://ftm.svn.sourceforge.net/ftm/?rev=1825&view=rev Author: borghesi Date: 2008-07-18 15:51:37 +0000 (Fri, 18 Jul 2008) Log Message: ----------- ftm.editor: minor changes Modified Paths: -------------- trunk/ftm/gui/Juce/common/BpfEditor.cpp trunk/ftm/gui/Juce/common/EditorContainer.h trunk/ftm/gui/Juce/common/EditorResizerBar.cpp trunk/ftm/gui/Juce/common/FvecEditor.cpp trunk/ftm/gui/Juce/common/InfoPanel.cpp trunk/ftm/gui/Juce/common/MarkersEditor.cpp trunk/ftm/gui/Juce/common/SpectrogramEditor.cpp trunk/ftm/patches/max/help/ftm.editor.help Modified: trunk/ftm/gui/Juce/common/BpfEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/BpfEditor.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/BpfEditor.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -35,6 +35,9 @@ #define DEFWIDTH 256 // default width and height #define DEFHEIGHT 128 +#define BPF_INFO_SIZE 35 +#define float_Pi 3.14159265358979323846f + class BpfListDialog : public JUCE_EDITOR_NAMESPACE::Component { imtr_guiInterfaceBpf *bpfGui; @@ -107,6 +110,7 @@ class BpfEditor : public JUCE_EDITOR_NAMESPACE::Component, public ImtrEditor { JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColour, darkerColour, forecolor, selectColor; + JUCE_EDITOR_NAMESPACE::Font *rangeFont; imtr_guiInterfaceBpf *bpfGui; void *obj; @@ -132,6 +136,8 @@ /*-------- offscreen -------*/ JUCE_EDITOR_NAMESPACE::Image *offscreen; + JUCE_EDITOR_NAMESPACE::Image *infoImage; + bool redraw_offscreen; public: @@ -145,11 +151,13 @@ //backcolor = JUCE_EDITOR_NAMESPACE::Colours::transparentWhite; backcolor = container->getBackgroundColor(); - lightColour = container->getBackgroundColor().brighter(); - darkerColour = container->getBackgroundColor().darker(); - forecolor = JUCE_EDITOR_NAMESPACE::Colours::white; - selectColor = forecolor.withAlpha(0.6f); + lightColour = container->getBackgroundColor().brighter(0.2f); + darkerColour = container->getBackgroundColor().darker(0.2f); + forecolor = JUCE_EDITOR_NAMESPACE::Colours::black; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + rangeFont = new JUCE_EDITOR_NAMESPACE::Font(JUCE_EDITOR_NAMESPACE::String( "Lucida Grande"), 10, JUCE_EDITOR_NAMESPACE::Font::italic); + opacity = container->getOpacity(); init_original_length(); @@ -171,6 +179,8 @@ else offscreen = NULL; + infoImage = NULL; + redraw_offscreen = true; description = JUCE_EDITOR_NAMESPACE::String("bpf"); @@ -234,7 +244,65 @@ else if(shape == steps_shape) return JUCE_EDITOR_NAMESPACE::String("steps"); else return JUCE_EDITOR_NAMESPACE::String("bpf"); } + + /////////////////////////// Info Image + void drawInfoBackground(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = g.getClipBounds(); + JUCE_EDITOR_NAMESPACE::String text_min, text_max; + int text_min_width, text_max_width, text_height; + g.fillAll(backcolor); + + //////////////////////// text + g.setFont(*rangeFont); + text_min = JUCE_EDITOR_NAMESPACE::String( v_min); + text_min = container->formatDecimalString(text_min, 3); + text_min_width = rangeFont->getStringWidth(text_min)+2; + text_max = JUCE_EDITOR_NAMESPACE::String( v_max); + text_max = container->formatDecimalString(text_max, 3); + text_max_width = rangeFont->getStringWidth(text_max)+2; + text_height = (int)(rangeFont->getHeight()); + //////////////////////////////// + + if(!container->isVertical()) + { + g.setColour(forecolor); + g.drawText(text_min, bounds.getWidth()-1-text_min_width, getHeight()-text_height, text_min_width, text_height, JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); + g.drawText(text_max, bounds.getWidth()-1-text_max_width, 1, text_max_width, text_height, JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); + g.setColour(darkerColour); + g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, getHeight()); + g.setColour(lightColour); + g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, getHeight()); + + } + else + { + g.setColour(forecolor); + g.drawTextAsPath(text_min, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(1, bounds.getHeight()-text_min_width-1))); + g.drawTextAsPath(text_max, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(getWidth()-text_height, bounds.getHeight()-text_max_width-1))); + g.setColour(darkerColour); + g.drawLine(0, bounds.getHeight()-2, getWidth(), bounds.getHeight()-2); + g.setColour(lightColour); + g.drawLine(0, bounds.getHeight()-1, getWidth(), bounds.getHeight()-1); + } + } + void createAndDrawInfoBackground() + { + if(infoImage != NULL) + delete infoImage; + + if(container->isVertical()) + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), BPF_INFO_SIZE, true); + else + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, BPF_INFO_SIZE, getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics info_g (*infoImage); + drawInfoBackground(info_g); + } + + /////////////////////////////////////////// + void drawPeeksViewAsVector(JUCE_EDITOR_NAMESPACE::Graphics& g) { float x, y, value; @@ -1038,15 +1106,6 @@ g.drawLine(zero, 0, zero, height); } - /* draw borders */ - g.drawLine(0, 0, width, 0); - g.drawLine(0, 0, 0, height); - - g.setColour(darkerColour); - g.drawLine(0, height-1, width, height-1); - g.drawLine(width-1, 0, width-1, height); - - g.setColour(lightColour); /* draw points */ switch(shape) { @@ -1067,34 +1126,43 @@ container->drawVerticalRange(g, this); } + void updateBackgroundOffscreens() + { + /* destroy offscreen every redraw... just to force a real re-initialisation... */ + if(offscreen != NULL) + { + delete offscreen; + offscreen = NULL; + } + offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); + paintBpf(off_g); + + createAndDrawInfoBackground(); + } + void paint (JUCE_EDITOR_NAMESPACE::Graphics& g) { if(redraw_offscreen && !selecting && !movingSelection) { - /* destroy offscreen every redraw... just to force a real re-initialisation... */ - if(offscreen != NULL) - { - delete offscreen; - offscreen = NULL; - } - offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); - - JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); - paintBpf(off_g); + updateBackgroundOffscreens(); redraw_offscreen = false; } + g.drawImageAt(offscreen, 0, 0, false); + g.setColour(selectColor); + /* draw selection rectangle */ if(selecting) { g.setOpacity(0.3f); - g.drawRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight(), 1); + g.fillRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight()); } else if(movingSelection) { g.setOpacity(0.3f); - g.setColour(lightColour); /* draw points */ switch(shape) @@ -1403,20 +1471,21 @@ void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour bcolor) { - lightColour = bcolor.brighter(); - darkerColour = bcolor.darker(); + lightColour = bcolor.brighter(0.2f); + darkerColour = bcolor.darker(0.2f); } void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) { backcolor = bcolor; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); backgroundColorChanged(backcolor); } void setForegroundColor(JUCE_EDITOR_NAMESPACE::Colour fcolor) { forecolor = fcolor; - selectColor = forecolor.withAlpha(0.6f); + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); } JUCE_EDITOR_NAMESPACE::Colour getForegroundColor() @@ -2121,8 +2190,12 @@ } } - bool haveInfoPanel() {return false;} - JUCE_EDITOR_NAMESPACE::Image *getInfoImage(){return 0;} + bool haveInfoPanel() {return true;} + JUCE_EDITOR_NAMESPACE::Image *getInfoImage() + { + if(infoImage == NULL) createAndDrawInfoBackground(); + return infoImage; + } }; Modified: trunk/ftm/gui/Juce/common/EditorContainer.h =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.h 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/EditorContainer.h 2008-07-18 15:51:37 UTC (rev 1825) @@ -771,6 +771,8 @@ void addEditorContainerListener(EditorContainerListener *listener){containerListeners.add(listener);} void removeEditorContainerListener(EditorContainerListener *listener){containerListeners.removeValue(listener);} void notifyEditorContainerListeners(); + + JUCE_EDITOR_NAMESPACE::String formatDecimalString(JUCE_EDITOR_NAMESPACE::String, int n_digits); private: void createSuperposedMultiEditor(JUCE_EDITOR_NAMESPACE::Array <ImtrEditor *> imtreditors); @@ -780,7 +782,6 @@ void initInfoPanel(); void paint (JUCE_EDITOR_NAMESPACE::Graphics& g); void resized(); - JUCE_EDITOR_NAMESPACE::String formatDecimalString(JUCE_EDITOR_NAMESPACE::String, int n_digits); void InitContainer(); void initTabbedContainer(); Modified: trunk/ftm/gui/Juce/common/EditorResizerBar.cpp =================================================================== --- trunk/ftm/gui/Juce/common/EditorResizerBar.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/EditorResizerBar.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -55,6 +55,15 @@ } else g.fillAll( bgcolor.withAlpha( (isMouseOver() || isMouseButtonDown()) ? 1.0f : 0.5f)); + + int width = getWidth(); + int height = getHeight(); + g.setColour(bgcolor.brighter(0.2f)); + g.drawLine(0, 0, width, 0); + g.drawLine(0, 0, 0, height); + g.setColour(bgcolor.darker(0.2f)); + g.drawLine(width, 0, width, height); + g.drawLine(0, height-1, width, height-1); } void EditorResizerBar::mouseDown (const JUCE_EDITOR_NAMESPACE::MouseEvent&) Modified: trunk/ftm/gui/Juce/common/FvecEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/FvecEditor.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/FvecEditor.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -35,9 +35,13 @@ #define DEFWIDTH 256 // default width and height #define DEFHEIGHT 128 +#define FVEC_INFO_SIZE 35 +#define float_Pi 3.14159265358979323846f + class FvecEditor : public JUCE_EDITOR_NAMESPACE::Component, public ImtrEditor { JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColour, darkerColour, forecolor, selectColor; + JUCE_EDITOR_NAMESPACE::Font *rangeFont; imtr_guiInterfaceFvec *fvecGui; void *obj; @@ -56,6 +60,8 @@ /*-------- offscreen -------*/ JUCE_EDITOR_NAMESPACE::Image *offscreen; + JUCE_EDITOR_NAMESPACE::Image *infoImage; + bool redraw_offscreen; public: @@ -69,11 +75,13 @@ //backcolor = JUCE_EDITOR_NAMESPACE::Colours::transparentWhite; backcolor = container->getBackgroundColor(); - lightColour = container->getBackgroundColor().brighter(); - darkerColour = container->getBackgroundColor().darker(); - forecolor = JUCE_EDITOR_NAMESPACE::Colours::white; - selectColor = forecolor.withAlpha(0.6f); + lightColour = container->getBackgroundColor().brighter(0.2f); + darkerColour = container->getBackgroundColor().darker(0.2f); + forecolor = JUCE_EDITOR_NAMESPACE::Colours::black; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + rangeFont = new JUCE_EDITOR_NAMESPACE::Font(JUCE_EDITOR_NAMESPACE::String( "Lucida Grande"), 10, JUCE_EDITOR_NAMESPACE::Font::italic); + opacity = container->getOpacity(); shape = lines_shape; @@ -92,6 +100,8 @@ else offscreen = NULL; + infoImage = NULL; + redraw_offscreen = true; description = JUCE_EDITOR_NAMESPACE::String("fvec"); } @@ -157,6 +167,62 @@ } } + /////////////////////////// Info Image + void drawInfoBackground(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = g.getClipBounds(); + JUCE_EDITOR_NAMESPACE::String text_min, text_max; + int text_min_width, text_max_width, text_height; + + g.fillAll(backcolor); + + //////////////////////// text + g.setFont(*rangeFont); + text_min = JUCE_EDITOR_NAMESPACE::String( v_min); + text_min = container->formatDecimalString(text_min, 3); + text_min_width = rangeFont->getStringWidth(text_min)+2; + text_max = JUCE_EDITOR_NAMESPACE::String( v_max); + text_max = container->formatDecimalString(text_max, 3); + text_max_width = rangeFont->getStringWidth(text_max)+2; + text_height = (int)(rangeFont->getHeight()); + //////////////////////////////// + + if(!container->isVertical()) + { + g.setColour(forecolor); + g.drawText(text_min, bounds.getWidth()-text_min_width, bounds.getHeight()-text_height, text_min_width, text_height, JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); + g.drawText(text_max, bounds.getWidth()-text_max_width, 1, text_max_width, text_height, JUCE_EDITOR_NAMESPACE::Justification::centredLeft, true); + g.setColour(darkerColour); + g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, bounds.getHeight()); + g.setColour(lightColour); + g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, bounds.getHeight()); + } + else + { + g.setColour(forecolor); + g.drawTextAsPath(text_min, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(1, bounds.getHeight()-text_min_width-1))); + g.drawTextAsPath(text_max, JUCE_EDITOR_NAMESPACE::AffineTransform::rotation(float_Pi/2).followedBy(JUCE_EDITOR_NAMESPACE::AffineTransform::translation(bounds.getWidth()-text_height, bounds.getHeight()-text_max_width-1))); + g.setColour(darkerColour); + g.drawLine(0, bounds.getHeight()-2, bounds.getWidth(), bounds.getHeight()-2); + g.setColour(lightColour); + g.drawLine(0, bounds.getHeight()-1, bounds.getWidth(), bounds.getHeight()-1); + } + } + void createAndDrawInfoBackground() + { + if(infoImage != NULL) + delete infoImage; + + if(container->isVertical()) + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), FVEC_INFO_SIZE, true); + else + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, FVEC_INFO_SIZE, getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics info_g (*infoImage); + drawInfoBackground(info_g); + } + ////////////////////////////////////////////////////// + void drawZeroPeeksView(JUCE_EDITOR_NAMESPACE::Graphics& g) { int x, y, i; @@ -856,15 +922,6 @@ g.drawLine(zero, 0, zero, height); } - g.setColour(lightColour); - /* draw borders */ - g.drawLine(0, 0, width, 0); - g.drawLine(0, 0, 0, height); - - g.setColour(darkerColour); - g.drawLine(0, height-1, width, height-1); - g.drawLine(width-1, 0, width-1, height); - g.setColour(forecolor); switch(shape) @@ -886,20 +943,27 @@ container->drawVerticalRange(g, this); } + void updateBackgroundOffscreens() + { + /* destroy offscreen every redraw... just to force a real re-initialisation... */ + if(offscreen != NULL) + { + delete offscreen; + offscreen = NULL; + } + offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); + paintFvec(off_g); + + createAndDrawInfoBackground(); + } + void paint (JUCE_EDITOR_NAMESPACE::Graphics& g) { if(redraw_offscreen && !selecting) { - /* destroy offscreen every redraw... just to force a real re-initialisation... */ - if(offscreen != NULL) - { - delete offscreen; - offscreen = NULL; - } - offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); - - JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); - paintFvec(off_g); + updateBackgroundOffscreens(); redraw_offscreen = false; } g.drawImageAt(offscreen, 0, 0, false); @@ -907,8 +971,9 @@ /* draw selection rectangle */ if(selecting) { + g.setColour(selectColor); g.setOpacity(0.3f); - g.drawRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight(), 1); + g.fillRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight()); } else if(container->doRegionSelection(this)) container->drawRegionSelection(g, this); @@ -982,20 +1047,21 @@ void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour bcolor) { - lightColour = bcolor.brighter(); - darkerColour = bcolor.darker(); + lightColour = bcolor.brighter(0.2f); + darkerColour = bcolor.darker(0.2f); } void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) { backcolor = bcolor; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); backgroundColorChanged(backcolor); } void setForegroundColor(JUCE_EDITOR_NAMESPACE::Colour fcolor) { forecolor = fcolor; - selectColor = forecolor.withAlpha(0.6f); + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); } JUCE_EDITOR_NAMESPACE::Colour getForegroundColor() @@ -1227,8 +1293,12 @@ return ((y/dy)/container->getHZoom() - container->getHTransposition()); } } - bool haveInfoPanel() {return false;} - JUCE_EDITOR_NAMESPACE::Image *getInfoImage(){return NULL;} + bool haveInfoPanel() {return true;} + JUCE_EDITOR_NAMESPACE::Image *getInfoImage() + { + if(infoImage == NULL) createAndDrawInfoBackground(); + return infoImage; + } }; Modified: trunk/ftm/gui/Juce/common/InfoPanel.cpp =================================================================== --- trunk/ftm/gui/Juce/common/InfoPanel.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/InfoPanel.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -158,7 +158,7 @@ { JUCE_EDITOR_NAMESPACE::Image *img = editor->getInfoImage(); bounds = (dynamic_cast<JUCE_EDITOR_NAMESPACE::Component *>(editor))->getBounds(); - g.drawImageWithin(img, 0, bounds.getY(), getWidth(), bounds.getHeight(), JUCE_EDITOR_NAMESPACE::RectanglePlacement::xLeft | JUCE_EDITOR_NAMESPACE::RectanglePlacement::yTop | JUCE_EDITOR_NAMESPACE::RectanglePlacement::doNotResize, false); + g.drawImageWithin(img, bounds.getX(), 0, bounds.getWidth(), getHeight(), JUCE_EDITOR_NAMESPACE::RectanglePlacement::xLeft | JUCE_EDITOR_NAMESPACE::RectanglePlacement::yTop | JUCE_EDITOR_NAMESPACE::RectanglePlacement::doNotResize, false); } } } Modified: trunk/ftm/gui/Juce/common/MarkersEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/MarkersEditor.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/MarkersEditor.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -40,10 +40,11 @@ #define STEPS_VIEW 2 #define float_Pi 3.14159265358979323846f +#define MARKERS_INFO_SIZE 35 class MarkersEditor : public JUCE_EDITOR_NAMESPACE::Component, public ImtrEditor { - JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColour, forecolor, selectColor, labelColor; + JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColor, darkerColor, forecolor, selectColor, labelColor; float opacity; imtr_guiInterfaceMarkers *markersGui; @@ -70,6 +71,7 @@ /*-------- offscreen -------*/ JUCE_EDITOR_NAMESPACE::Image *offscreen; + JUCE_EDITOR_NAMESPACE::Image *infoImage; bool redraw_offscreen; public: @@ -82,9 +84,10 @@ setFocusContainer(true); backcolor = container->getBackgroundColor(); - lightColour = container->getBackgroundColor().brighter(); - forecolor = JUCE_EDITOR_NAMESPACE::Colours::white; - selectColor = forecolor.withAlpha(0.6f); + lightColor = container->getBackgroundColor().brighter(0.2f); + darkerColor = container->getBackgroundColor().darker(0.2f); + forecolor = JUCE_EDITOR_NAMESPACE::Colours::black; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); labelColor = forecolor.withAlpha(0.4f); opacity = container->getOpacity(); @@ -117,6 +120,8 @@ else offscreen = NULL; + infoImage = NULL; + redraw_offscreen = true; description = JUCE_EDITOR_NAMESPACE::String("markers"); @@ -536,6 +541,43 @@ }*/ } } + + /////////////////////////// Info Image + void drawInfoBackground(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = g.getClipBounds(); + + g.fillAll(backcolor); + + g.setColour(darkerColor); + if(!container->isVertical()) + { + g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, bounds.getHeight()); + g.setColour(lightColor); + g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, bounds.getHeight()); + } + else + { + g.drawLine(0, bounds.getHeight()-2, bounds.getWidth(), bounds.getHeight()-2); + g.setColour(lightColor); + g.drawLine(0, bounds.getHeight()-1, bounds.getWidth(), bounds.getHeight()-1); + } + } + void createAndDrawInfoBackground() + { + if(infoImage != NULL) + delete infoImage; + + if(container->isVertical()) + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), MARKERS_INFO_SIZE, true); + else + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, MARKERS_INFO_SIZE, getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics info_g (*infoImage); + drawInfoBackground(info_g); + } + ////////////////////////////////////////////////////// + /********************** paint **********************/ @@ -780,30 +822,37 @@ drawMarkersAsList(g); } + void updateBackgroundOffscreens() + { + /* destroy offscreen every redraw... just to force a real re-initialisation... */ + if(offscreen != NULL) + { + delete offscreen; + offscreen = NULL; + } + offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); + paintMarkers(off_g); + + createAndDrawInfoBackground(); + } + void paint (JUCE_EDITOR_NAMESPACE::Graphics& g) { if(redraw_offscreen && !selecting && !movingSelection) { - /* destroy offscreen every redraw... just to force a real re-initialisation... */ - if(offscreen != NULL) - { - delete offscreen; - offscreen = NULL; - } - offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); - - JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); - paintMarkers(off_g); + updateBackgroundOffscreens(); redraw_offscreen = false; } g.drawImageAt(offscreen, 0, 0, false); - g.setColour(lightColour); + g.setColour(selectColor); /* draw selection rectangle */ if(selecting) { g.setOpacity(0.3f); - g.drawRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight(), 1); + g.fillRect(selRect.getX(), selRect.getY(), selRect.getWidth(), selRect.getHeight()); } else if(container->doRegionSelection(this)) { @@ -811,9 +860,7 @@ } else if(movingSelection) { - g.setOpacity(0.3f); - g.setColour(lightColour); - + g.setOpacity(0.3f); markersDrawSelection(g); } } @@ -957,7 +1004,9 @@ void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) { backcolor = bcolor; - lightColour = backcolor.brighter(); + darkerColor = backcolor.darker(0.2f); + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + lightColor = backcolor.brighter(0.2f); } void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour bcolor){ setBackgroundColor(bcolor);} @@ -965,7 +1014,7 @@ void setForegroundColor(JUCE_EDITOR_NAMESPACE::Colour fcolor) { forecolor = fcolor; - selectColor = forecolor.withAlpha(0.6f); + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); labelColor = forecolor.withAlpha(0.4f); } @@ -1238,8 +1287,12 @@ return (y/dy)/container->getHZoom() - container->getHTransposition(); } } - bool haveInfoPanel() {return false;} - JUCE_EDITOR_NAMESPACE::Image *getInfoImage(){return NULL;} + bool haveInfoPanel() {return true;} + JUCE_EDITOR_NAMESPACE::Image *getInfoImage() + { + if(infoImage == NULL) createAndDrawInfoBackground(); + return infoImage; + } }; JUCE_EDITOR_NAMESPACE::Component *createMarkersEditor(void *obj, imtr_guiInterfaceMarkers *markersGui, EditorContainer *container, ImtrEditorListener *listener) Modified: trunk/ftm/gui/Juce/common/SpectrogramEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/SpectrogramEditor.cpp 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/gui/Juce/common/SpectrogramEditor.cpp 2008-07-18 15:51:37 UTC (rev 1825) @@ -39,10 +39,11 @@ #define LINES_VIEW 0 #define PEEKS_VIEW 1 #define STEPS_VIEW 2 +#define SPECTRO_INFO_SIZE 35 class SpectrogramEditor : public JUCE_EDITOR_NAMESPACE::Component, public ImtrEditor { - JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColour, forecolor, selectColor; + JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColor, darkerColor, forecolor, selectColor; imtr_guiInterfaceSpectrogram *spectroGui; void *obj; @@ -74,6 +75,7 @@ /*-------- offscreen -------*/ JUCE_EDITOR_NAMESPACE::Image *offscreen; + JUCE_EDITOR_NAMESPACE::Image *infoImage; bool redraw_offscreen; public: @@ -86,8 +88,9 @@ setFocusContainer(true); backcolor = container->getBackgroundColor(); - lightColour = backcolor.brighter().withAlpha(0.5f); - forecolor = JUCE_EDITOR_NAMESPACE::Colours::white; + lightColor = backcolor.brighter(0.2f).withAlpha(0.5f); + darkerColor = backcolor.darker(0.2f); + forecolor = JUCE_EDITOR_NAMESPACE::Colours::black; selectColor = forecolor.withAlpha(0.6f); opacity = container->getOpacity(); @@ -115,6 +118,8 @@ else offscreen = NULL; + infoImage = NULL; + redraw_offscreen = true; addMouseListener((dynamic_cast<JUCE_EDITOR_NAMESPACE::MouseListener *>(container->getCurrentTool())), false); @@ -364,6 +369,43 @@ /********************** paint **********************/ + + /////////////////////////// Info Image + void drawInfoBackground(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = g.getClipBounds(); + + g.fillAll(backcolor); + + g.setColour(darkerColor); + if(!container->isVertical()) + { + g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, bounds.getHeight()); + g.setColour(lightColor); + g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, bounds.getHeight()); + } + else + { + g.drawLine(0, bounds.getHeight()-2, bounds.getWidth(), bounds.getHeight()-2); + g.setColour(lightColor); + g.drawLine(0, bounds.getHeight()-1, bounds.getWidth(), bounds.getHeight()-1); + } + } + void createAndDrawInfoBackground() + { + if(infoImage != NULL) + delete infoImage; + + if(container->isVertical()) + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), SPECTRO_INFO_SIZE, true); + else + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, SPECTRO_INFO_SIZE, getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics info_g (*infoImage); + drawInfoBackground(info_g); + } + /////////////////////////////////////// + void spectro_draw_monodimensional_fmat(JUCE_EDITOR_NAMESPACE::Graphics& g, int start_pix, int end_pix, int onset, int size, float *ptr) { int start_idx = (v_min > 0 && v_min < size) ? v_min : 0; @@ -595,20 +637,27 @@ } } + void updateBackgroundOffscreens() + { + /* destroy offscreen every redraw... just to force a real re-initialisation... */ + if(offscreen != NULL) + { + delete offscreen; + offscreen = NULL; + } + offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); + paintSpectrogram(off_g); + + createAndDrawInfoBackground(); + } + void paint (JUCE_EDITOR_NAMESPACE::Graphics& g) { if(redraw_offscreen && !rect_selection && !cross_selection) { - /* destroy offscreen every redraw... just to force a real re-initialisation... */ - if(offscreen != NULL) - { - delete offscreen; - offscreen = NULL; - } - offscreen = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), getHeight(), true); - - JUCE_EDITOR_NAMESPACE::Graphics off_g (*offscreen); - paintSpectrogram(off_g); + updateBackgroundOffscreens(); redraw_offscreen = false; } g.drawImageAt(offscreen, 0, 0, false); @@ -704,7 +753,8 @@ void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) { backcolor = bcolor; - lightColour = backcolor.brighter(); + lightColor = backcolor.brighter(0.2f); + darkerColor = backcolor.darker(0.2f); } void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour bcolor){ setBackgroundColor(bcolor);} @@ -890,8 +940,12 @@ return (y/dy)/container->getHZoom() - container->getHTransposition(); } } - bool haveInfoPanel() {return false;} - JUCE_EDITOR_NAMESPACE::Image *getInfoImage(){return NULL;} + bool haveInfoPanel() {return true;} + JUCE_EDITOR_NAMESPACE::Image *getInfoImage() + { + if(infoImage == NULL) createAndDrawInfoBackground(); + return infoImage; + } }; JUCE_EDITOR_NAMESPACE::Component *createSpectrogramEditor(void *obj, imtr_guiInterfaceSpectrogram *spectroGui, EditorContainer *container, ImtrEditorListener *listener) Modified: trunk/ftm/patches/max/help/ftm.editor.help =================================================================== --- trunk/ftm/patches/max/help/ftm.editor.help 2008-07-18 10:51:31 UTC (rev 1824) +++ trunk/ftm/patches/max/help/ftm.editor.help 2008-07-18 15:51:37 UTC (rev 1825) @@ -1,13745 +1,14097 @@ @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-07-24 16:52:41
|
Revision: 1835 http://ftm.svn.sourceforge.net/ftm/?rev=1835&view=rev Author: borghesi Date: 2008-07-24 16:52:48 +0000 (Thu, 24 Jul 2008) Log Message: ----------- ftm.editor: matrix editor (for mat and dict) can open editors for inner objects Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/ftmlib/classes/dict.c trunk/ftm/ftmlib/classes/fmat.c trunk/ftm/ftmlib/classes/mat.c trunk/ftm/ftmlib/predefsymbols.h trunk/ftm/gui/Juce/c_gui/guiinterfaces.h trunk/ftm/gui/Juce/common/MatrixEditor.cpp Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-24 16:52:48 UTC (rev 1835) @@ -645,7 +645,7 @@ 5C23143107A28BF300CC6F2E /* ftm.buffer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.buffer.c; sourceTree = "<group>"; }; 5C3DB7B10AB078B000BE8005 /* ftmjs.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftmjs.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; 5C3DB7BF0AB07A3A00BE8005 /* ftmjs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmjs.c; sourceTree = "<group>"; }; - 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FTMlib.framework; path = /Library/Frameworks/FTMlib.framework; sourceTree = "<absolute>"; }; + 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FTMlib.framework; path = "../../../../build-macho/FTMlib.framework"; sourceTree = SOURCE_ROOT; }; 5C5F085A0782214600A59DE2 /* ftm.inter.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftm.inter.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; 5C5F086D0782217900A59DE2 /* ftm.inter.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.inter.c; sourceTree = "<group>"; }; 5C5F087A078222B700A59DE2 /* ftm.tween.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftm.tween.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; Modified: trunk/ftm/ftmlib/classes/dict.c =================================================================== --- trunk/ftm/ftmlib/classes/dict.c 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/ftmlib/classes/dict.c 2008-07-24 16:52:48 UTC (rev 1835) @@ -931,6 +931,42 @@ fts_set_symbol(&a, fts_new_symbol(value)); dict_gui_matrix_set(self, row, col, &a); } +static void +dict_gui_matrix_get_object(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t key, val, value; + dict_get_by_row(self, row, &key, &val); + + value = (col == 0) ? key : val; + if(fts_is_object(&value)) + { + fts_symbol_t name; + char buff[256]; + fts_object_t *o = fts_get_object(&value); + int obj_id = fts_object_get_id(o); + *openObj = (void *)o; + name = fts_object_get_class_name(o); + + // gui interface + if(name == fts_s_fvec) + *openObjGui = fts_object_get_gui_interface(o, fts_s_fvec); + else if(name == fts_s_mat || name == fts_s_dict || fts_s_fmat) + *openObjGui = fts_object_get_gui_interface(o, fts_s_matrix); + else if(name == fts_s_bpf) + *openObjGui = fts_object_get_gui_interface(o, fts_s_bpf); + else if(name == fts_s_track) + *openObjGui = fts_object_get_gui_interface(o, fts_s_score); + else if(name == fts_s_sequence) + *openObjGui = fts_object_get_gui_interface(o, fts_s_markers); + else + *openObjGui = fts_object_get_gui_interface(o, fts_s_matrix); + + // descrition + snprintf(buff, 255, "<%s[#%d]>", fts_symbol_name(name), obj_id); + strcpy(*description, buff); + } +} /********************************************************** * @@ -1022,6 +1058,7 @@ dict_gui_interface_matrix->setFloat = dict_gui_matrix_set_float; dict_gui_interface_matrix->setInt = dict_gui_matrix_set_int; dict_gui_interface_matrix->setString = dict_gui_matrix_set_string; + dict_gui_interface_matrix->getObject = dict_gui_matrix_get_object; fts_class_gui_interface(cl, fts_s_matrix, dict_gui_interface_matrix); } Modified: trunk/ftm/ftmlib/classes/fmat.c =================================================================== --- trunk/ftm/ftmlib/classes/fmat.c 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/ftmlib/classes/fmat.c 2008-07-24 16:52:48 UTC (rev 1835) @@ -5249,6 +5249,13 @@ fmat_gui_matrix_set_int(void *obj, int row, int col, int value){} static void fmat_gui_matrix_set_string(void *obj, int row, int col, const char *value){} +static void +fmat_gui_matrix_get_object(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description) +{ + *openObj = NULL; + *openObjGui = NULL; + *description = 0; +} /********************************************************* * Modified: trunk/ftm/ftmlib/classes/mat.c =================================================================== --- trunk/ftm/ftmlib/classes/mat.c 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/ftmlib/classes/mat.c 2008-07-24 16:52:48 UTC (rev 1835) @@ -2392,11 +2392,44 @@ static void mat_gui_matrix_set_string(void *obj, int row, int col, const char *value) { - mat_t *self = (mat_t *) obj; + mat_t *self = (mat_t *) obj; fts_atom_t a; fts_set_symbol(&a, fts_new_symbol(value)); mat_set_element(self, row, col, &a); } +static void +mat_gui_matrix_get_object(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description) +{ + mat_t *self = (mat_t *) obj; + fts_atom_t *val = mat_get_element(self, row, col); + if(fts_is_object(val)) + { + fts_symbol_t name; + char buff[256]; + fts_object_t *o = fts_get_object(val); + int obj_id = fts_object_get_id(o); + *openObj = fts_get_object(val); + *openObj = (void *)o; + name = fts_object_get_class_name(o); + + if(name == fts_s_fvec) + *openObjGui = fts_object_get_gui_interface(o, fts_s_fvec); + else if(name == fts_s_mat || name == fts_s_dict || fts_s_fmat) + *openObjGui = fts_object_get_gui_interface(o, fts_s_matrix); + else if(name == fts_s_bpf) + *openObjGui = fts_object_get_gui_interface(o, fts_s_bpf); + else if(name == fts_s_track) + *openObjGui = fts_object_get_gui_interface(o, fts_s_score); + else if(name == fts_s_sequence) + *openObjGui = fts_object_get_gui_interface(o, fts_s_markers); + else + *openObjGui = fts_object_get_gui_interface(o, fts_s_matrix); + + // descrition + snprintf(buff, 255, "<%s[#%d]>", fts_symbol_name(name), obj_id); + strcpy(*description, buff); + } +} /******************************************************************** * * class @@ -2616,6 +2649,7 @@ mat_gui_interface_matrix->setFloat = mat_gui_matrix_set_float; mat_gui_interface_matrix->setInt = mat_gui_matrix_set_int; mat_gui_interface_matrix->setString = mat_gui_matrix_set_string; + mat_gui_interface_matrix->getObject = mat_gui_matrix_get_object; fts_class_gui_interface(cl, fts_s_matrix, mat_gui_interface_matrix); } Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-07-24 16:52:48 UTC (rev 1835) @@ -81,7 +81,10 @@ PREDEF_SYMBOL( fts_s_time, "time") PREDEF_SYMBOL( fts_s_index, "index") PREDEF_SYMBOL( fts_s_bpf, "bpf") +PREDEF_SYMBOL( fts_s_dict, "dict") +PREDEF_SYMBOL( fts_s_fmat, "fmat") PREDEF_SYMBOL( fts_s_fvec, "fvec") +PREDEF_SYMBOL( fts_s_mat, "mat") PREDEF_SYMBOL( fts_s_row, "row") PREDEF_SYMBOL( fts_s_col, "col") Modified: trunk/ftm/gui/Juce/c_gui/guiinterfaces.h =================================================================== --- trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-24 16:52:48 UTC (rev 1835) @@ -687,6 +687,17 @@ typedef void (*imtr_gui_interface_matrix_set_string_t)(void *obj, int row, int col, const char *value); /** + * @brief get object and gui interface at given position + * @param obj the matrix object + * @param row the row + * @param col the col + * @param openObj returns the object + * @param openObjGui returns gui interface + * @ingroup guiinterfaces + */ +typedef void (*imtr_gui_interface_matrix_get_object_t)(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description); + +/** * @brief score gui interface * @ingroup guiinterfaces */ @@ -701,6 +712,7 @@ imtr_gui_interface_matrix_set_float_t setFloat; imtr_gui_interface_matrix_set_int_t setInt; imtr_gui_interface_matrix_set_string_t setString; + imtr_gui_interface_matrix_get_object_t getObject; } imtr_guiInterfaceMatrix; /** @} Score gui interface */ Modified: trunk/ftm/gui/Juce/common/MatrixEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/MatrixEditor.cpp 2008-07-24 10:48:35 UTC (rev 1834) +++ trunk/ftm/gui/Juce/common/MatrixEditor.cpp 2008-07-24 16:52:48 UTC (rev 1835) @@ -41,7 +41,10 @@ #define float_Pi 3.14159265358979323846f #define MARKERS_INFO_SIZE 35 +#define INNER_BAR_SIZE 15 +JUCE_EDITOR_NAMESPACE::Component *createInnerBar(ImtrEditor *mainEditor, ImtrEditor *innerEditor); + class MatrixEditor : public JUCE_EDITOR_NAMESPACE::Component, public JUCE_EDITOR_NAMESPACE::TableListBoxModel, public ImtrEditor { JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColor, darkerColor, forecolor, selectColor, labelColor, selectedCellColor; @@ -64,7 +67,11 @@ int lastClickedCol; bool activateSelectedCell; - + + /*--------- contained editor ------------------*/ + JUCE_EDITOR_NAMESPACE::Component *innerEditor; + JUCE_EDITOR_NAMESPACE::Component *innerBar; + public: MatrixEditor(void *obj, imtr_guiInterfaceMatrix *matrixGui, EditorContainer *container, ImtrEditorListener *listener) : font (12.0f), listener(listener), container(container), obj(obj), matrixGui(matrixGui) { @@ -113,6 +120,9 @@ lastClickedCol = -1; activateSelectedCell = false; + + innerEditor = NULL; + innerBar = NULL; } ~MatrixEditor() @@ -274,7 +284,13 @@ void resized() { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = getBounds(); table->setBoundsInset (JUCE_EDITOR_NAMESPACE::BorderSize(1)); + + if(innerBar != NULL) + innerBar->setBounds(0, 0, bounds.getWidth(), INNER_BAR_SIZE); + if(innerEditor != NULL) + innerEditor->setBounds(0, INNER_BAR_SIZE, bounds.getWidth(), bounds.getHeight()-INNER_BAR_SIZE); } /************************* @@ -439,7 +455,47 @@ if(infoImage == NULL) createAndDrawInfoBackground(); return infoImage; } + /////////////////////////////////////////////////////////////////////////////////////////////////////// + void openEditorForObject(int row, int column) + { + void *openObj = NULL; + imtr_guiInterface *openObjGui = NULL; + char *descr = (char *)alloca(sizeof(char) * 256); + + matrixGui->getObject(obj, row, column, &openObj, &openObjGui, &descr); + if(openObj != NULL && openObjGui != NULL) + { + innerEditor = container->createEditor(openObj, openObjGui); + (dynamic_cast<ImtrEditor *>(innerEditor))->setDescription(JUCE_EDITOR_NAMESPACE::String(descr)); + addAndMakeVisible(innerEditor); + + //innerBar = new InnerBar(this); + innerBar = createInnerBar(this, (dynamic_cast<ImtrEditor *>(innerEditor))); + addAndMakeVisible(innerBar); + + resized(); + } + } + + void closeInnerEditor() + { + if(innerBar != NULL) + { + removeChildComponent(innerBar); + delete innerBar; + innerBar = NULL; + } + if(innerEditor != NULL) + { + removeChildComponent(innerEditor); + delete innerEditor; + innerEditor = NULL; + } + resized(); + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////// class MatrixComponent: public JUCE_EDITOR_NAMESPACE::Component, public JUCE_EDITOR_NAMESPACE::LabelListener { public: @@ -450,7 +506,6 @@ double floatVal; int intVal; char *stringVal = (char *)alloca(sizeof(char) * 256); - int type = -1; type = owner.matrixGui->getValue(owner.obj, row, column, &floatVal, &intVal, &stringVal); @@ -474,6 +529,7 @@ label->setEditable(false, true, true); label->addListener(this); + label->addMouseListener(dynamic_cast <JUCE_EDITOR_NAMESPACE::MouseListener*> (this), true); } ~MatrixComponent(){} @@ -489,7 +545,6 @@ double floatVal; int intVal; char *stringVal = (char *)alloca(sizeof(char) * 256); - int type = -1; row = r; column = c; @@ -598,14 +653,89 @@ } } + void mouseDown(const JUCE_EDITOR_NAMESPACE::MouseEvent& e) + { + if(type == 3 && e.mods.isPopupMenu()) + { + JUCE_EDITOR_NAMESPACE::PopupMenu m; + m.addItem (1, "Open Editor"); + const int r = m.show(); + switch(r) + { + case 1: + owner.openEditorForObject(row, column); + } + } + } + private: MatrixEditor& owner; JUCE_EDITOR_NAMESPACE::Label* label; int row, column; - }; + int type; + }; }; +class InnerBar: public JUCE_EDITOR_NAMESPACE::Component +{ + MatrixEditor *owner; + JUCE_EDITOR_NAMESPACE::Font *barFont; + ImtrEditor *innerEditor; +public: + InnerBar(MatrixEditor *owner_, ImtrEditor *innerEditor) : owner(owner_), innerEditor(innerEditor) + { + barFont = new JUCE_EDITOR_NAMESPACE::Font(JUCE_EDITOR_NAMESPACE::String( "Lucida Grande"), 10, JUCE_EDITOR_NAMESPACE::Font::italic); + } + + ~InnerBar(){} + + void paint (JUCE_EDITOR_NAMESPACE::Graphics& g) + { + int width = getWidth(); + int height = getHeight(); + int rectsize = height-8; + g.fillAll(JUCE_EDITOR_NAMESPACE::Colours::lightgrey); + + // draw bounds + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::darkgrey); + g.drawRect(1, 1, width-2, height-2); + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::lightgrey.brighter(0.3f)); + g.drawLine(2, 2, 2, height-2); + g.drawLine(2, 2, width-2, 2); + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::lightgrey.darker(0.3f)); + g.drawLine(2, height-3, width-2, height-3); + g.drawLine(width-3, 2, width-3, height-2); + + //draw close rect + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::darkgrey); + g.drawRect(width-4-rectsize, 4, rectsize, rectsize); + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::black); + g.drawRect(width-2-rectsize, 6, rectsize-4, rectsize-4); + // draw text + g.setColour(JUCE_EDITOR_NAMESPACE::Colours::black); + g.setFont(*barFont); + g.drawSingleLineText(innerEditor->getDescription(), 3, height-5); + } + + void mouseDown(const JUCE_EDITOR_NAMESPACE::MouseEvent& e) + { + int x = e.getMouseDownX(); + int y = e.getMouseDownY(); + int height = getHeight(); + int width = getWidth(); + int rectsize = height - 4; + + if((x <= width-4 && x >= width - rectsize) && (y >= 4 && y <= height-4)) + owner->closeInnerEditor(); + } +}; + JUCE_EDITOR_NAMESPACE::Component *createMatrixEditor(void *obj, imtr_guiInterfaceMatrix *matrixGui, EditorContainer *container, ImtrEditorListener *listener) { return new MatrixEditor(obj, matrixGui, container, listener); +} + +JUCE_EDITOR_NAMESPACE::Component *createInnerBar(ImtrEditor *mainEditor, ImtrEditor *innerEditor) +{ + return new InnerBar((MatrixEditor *)mainEditor, innerEditor); } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-07-25 16:01:30
|
Revision: 1841 http://ftm.svn.sourceforge.net/ftm/?rev=1841&view=rev Author: borghesi Date: 2008-07-25 16:01:37 +0000 (Fri, 25 Jul 2008) Log Message: ----------- ftm.editor: added matrix gui interface to bpf class Modified Paths: -------------- trunk/ftm/ftmlib/classes/bpf.c trunk/ftm/ftmlib/classes/dict.c trunk/ftm/ftmlib/classes/fmat.c trunk/ftm/ftmlib/classes/mat.c trunk/ftm/ftmlib/classes/track.c trunk/ftm/ftmlib/predefsymbols.h trunk/ftm/gui/Juce/c_gui/guiinterfaces.h trunk/ftm/gui/Juce/common/MatrixEditor.cpp Modified: trunk/ftm/ftmlib/classes/bpf.c =================================================================== --- trunk/ftm/ftmlib/classes/bpf.c 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/classes/bpf.c 2008-07-25 16:01:37 UTC (rev 1841) @@ -35,6 +35,7 @@ static fts_symbol_t sym_removePoints = 0; static fts_symbol_t sym_setPoints = 0; static imtr_guiInterfaceBpf *bpf_gui_interface_bpf = NULL; +static imtr_guiInterfaceMatrix *bpf_gui_interface_matrix = NULL; /************************************************************ * @@ -1093,7 +1094,71 @@ *value = 0.0f; return NULL; } + /************************************************************ + * + * Matrix Gui Interface + * + */ + +static int +bpf_gui_matrix_is_float() +{ + return 1; +} +static int +bpf_gui_matrix_get_rows(void *obj) +{ + return bpf_get_size((bpf_t *)obj); +} +static int +bpf_gui_matrix_get_cols(void *obj) +{ + return 2; +} +static int +bpf_gui_matrix_get_value(void *obj, int row, int col, double *float_val, int *int_val, char **string_val) +{ + bpf_t *self = (bpf_t *) obj; + if(col == 0) + *float_val = bpf_get_time(self, row); + else + *float_val = bpf_get_value(self, row); + *int_val = 0; + *string_val = 0; + + return 0; +} +static void +bpf_gui_matrix_set_float(void *obj, int row, int col, double value) +{ + bpf_t *self = (bpf_t *) obj; + if(col == 0) + bpf_set_point(self, row, value, bpf_get_value(self, row)); + else + bpf_set_point(self, row, bpf_get_time(self, row), value); +} +static void +bpf_gui_matrix_set_int(void *obj, int row, int col, int value){} +static void +bpf_gui_matrix_set_string(void *obj, int row, int col, const char *value){} +static void +bpf_gui_matrix_get_object(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description) +{ + *openObj = NULL; + *openObjGui = NULL; + *description = 0; +} +static char * +bpf_gui_matrix_get_column_name(void *obj, int col) +{ + if(col == 0) + return fts_symbol_name(fts_s_time); + else + return fts_symbol_name(fts_s_value); +} + +/************************************************************ * * class * @@ -1199,6 +1264,20 @@ bpf_gui_interface_bpf->getNextPoint = bpf_gui_bpf_get_next_point; fts_class_gui_interface(cl, fts_s_bpf, bpf_gui_interface_bpf); + + bpf_gui_interface_matrix = (imtr_guiInterfaceMatrix *)fts_malloc(sizeof(imtr_guiInterfaceMatrix)); + ((imtr_guiInterface *)bpf_gui_interface_matrix)->name = fts_symbol_name(fts_s_matrix); + bpf_gui_interface_matrix->isFloat = bpf_gui_matrix_is_float; + bpf_gui_interface_matrix->getRows = bpf_gui_matrix_get_rows; + bpf_gui_interface_matrix->getCols = bpf_gui_matrix_get_cols; + bpf_gui_interface_matrix->getValue = bpf_gui_matrix_get_value; + bpf_gui_interface_matrix->setFloat = bpf_gui_matrix_set_float; + bpf_gui_interface_matrix->setInt = bpf_gui_matrix_set_int; + bpf_gui_interface_matrix->setString = bpf_gui_matrix_set_string; + bpf_gui_interface_matrix->getObject = bpf_gui_matrix_get_object; + bpf_gui_interface_matrix->getColumnName = bpf_gui_matrix_get_column_name; + + fts_class_gui_interface(cl, fts_s_matrix, bpf_gui_interface_matrix); } FTS_MODULE_INIT(bpf) Modified: trunk/ftm/ftmlib/classes/dict.c =================================================================== --- trunk/ftm/ftmlib/classes/dict.c 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/classes/dict.c 2008-07-25 16:01:37 UTC (rev 1841) @@ -967,6 +967,14 @@ strcpy(*description, buff); } } +static char * +dict_gui_matrix_get_column_name(void *obj, int col) +{ + if(col == 0) + return fts_symbol_name(fts_s_key); + else + return fts_symbol_name(fts_s_value); +} /********************************************************** * @@ -1059,6 +1067,7 @@ dict_gui_interface_matrix->setInt = dict_gui_matrix_set_int; dict_gui_interface_matrix->setString = dict_gui_matrix_set_string; dict_gui_interface_matrix->getObject = dict_gui_matrix_get_object; + dict_gui_interface_matrix->getColumnName = dict_gui_matrix_get_column_name; fts_class_gui_interface(cl, fts_s_matrix, dict_gui_interface_matrix); } Modified: trunk/ftm/ftmlib/classes/fmat.c =================================================================== --- trunk/ftm/ftmlib/classes/fmat.c 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/classes/fmat.c 2008-07-25 16:01:37 UTC (rev 1841) @@ -5256,6 +5256,11 @@ *openObjGui = NULL; *description = 0; } +static char * +fmat_gui_matrix_get_column_name(void *obj, int col) +{ + return 0; +} /********************************************************* * @@ -5568,6 +5573,8 @@ fmat_gui_interface_matrix->setFloat = fmat_gui_matrix_set_float; fmat_gui_interface_matrix->setInt =fmat_gui_matrix_set_int; fmat_gui_interface_matrix->setString = fmat_gui_matrix_set_string; + fmat_gui_interface_matrix->getObject = fmat_gui_matrix_get_object; + fmat_gui_interface_matrix->getColumnName = fmat_gui_matrix_get_column_name; fts_class_gui_interface(cl, fts_s_matrix, fmat_gui_interface_matrix); } Modified: trunk/ftm/ftmlib/classes/mat.c =================================================================== --- trunk/ftm/ftmlib/classes/mat.c 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/classes/mat.c 2008-07-25 16:01:37 UTC (rev 1841) @@ -2408,7 +2408,6 @@ char buff[256]; fts_object_t *o = fts_get_object(val); int obj_id = fts_object_get_id(o); - *openObj = fts_get_object(val); *openObj = (void *)o; name = fts_object_get_class_name(o); @@ -2430,6 +2429,13 @@ strcpy(*description, buff); } } + +static char * +mat_gui_matrix_get_column_name(void *obj, int col) +{ + return 0; +} + /******************************************************************** * * class @@ -2650,6 +2656,7 @@ mat_gui_interface_matrix->setInt = mat_gui_matrix_set_int; mat_gui_interface_matrix->setString = mat_gui_matrix_set_string; mat_gui_interface_matrix->getObject = mat_gui_matrix_get_object; + mat_gui_interface_matrix->getColumnName = mat_gui_matrix_get_column_name; fts_class_gui_interface(cl, fts_s_matrix, mat_gui_interface_matrix); } Modified: trunk/ftm/ftmlib/classes/track.c =================================================================== --- trunk/ftm/ftmlib/classes/track.c 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/classes/track.c 2008-07-25 16:01:37 UTC (rev 1841) @@ -1952,9 +1952,7 @@ { event_t *evt = sequence_get_first(track_get_events((track_t *)obj)); if(evt != NULL) - { - fts_atom_t ret; - + { /*time*/ *time = event_get_time(evt); @@ -1980,9 +1978,7 @@ { event_t *event = event_get_next((event_t *)evt); if(event != NULL) - { - fts_atom_t ret; - + { /*time*/ *time = event_get_time(event); @@ -2007,9 +2003,7 @@ { event_t *evt = sequence_get_event_by_index( track_get_events((track_t *)obj), the_index); if(evt != NULL) - { - fts_atom_t ret; - + { /*time*/ *time = event_get_time(evt); Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-07-25 16:01:37 UTC (rev 1841) @@ -187,6 +187,7 @@ PREDEF_SYMBOL( fts_s_getprop, "getprop") PREDEF_SYMBOL( fts_s_setprop, "setprop") PREDEF_SYMBOL( fts_s_value, "value") +PREDEF_SYMBOL( fts_s_key, "key") PREDEF_SYMBOL( fts_s_orientation, "orientation") PREDEF_SYMBOL( fts_s_max_value, "maxValue") PREDEF_SYMBOL( fts_s_min_value, "minValue") Modified: trunk/ftm/gui/Juce/c_gui/guiinterfaces.h =================================================================== --- trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-25 16:01:37 UTC (rev 1841) @@ -698,6 +698,15 @@ typedef void (*imtr_gui_interface_matrix_get_object_t)(void *obj, int row, int col, void **openObj, imtr_guiInterface **openObjGui, char **description); /** + * @brief get name of given column + * @param obj the matrix object + * @param col the col + * @return the column name + * @ingroup guiinterfaces + */ +typedef char *(*imtr_gui_interface_matrix_get_column_name_t)(void *obj, int col); + +/** * @brief score gui interface * @ingroup guiinterfaces */ @@ -713,6 +722,7 @@ imtr_gui_interface_matrix_set_int_t setInt; imtr_gui_interface_matrix_set_string_t setString; imtr_gui_interface_matrix_get_object_t getObject; + imtr_gui_interface_matrix_get_column_name_t getColumnName; } imtr_guiInterfaceMatrix; /** @} Score gui interface */ Modified: trunk/ftm/gui/Juce/common/MatrixEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/MatrixEditor.cpp 2008-07-25 10:57:52 UTC (rev 1840) +++ trunk/ftm/gui/Juce/common/MatrixEditor.cpp 2008-07-25 16:01:37 UTC (rev 1841) @@ -132,13 +132,18 @@ void initColumns() { + char *name; + JUCE_EDITOR_NAMESPACE::String colname; table->getHeader()->removeAllColumns(); // Add some columns to the table header, based on the column list in our database.. int flags = (JUCE_EDITOR_NAMESPACE::TableHeaderComponent::visible | JUCE_EDITOR_NAMESPACE::TableHeaderComponent::resizable); for(int i=0; i < matrixGui->getCols(obj); i++) - table->getHeader()->addColumn(JUCE_EDITOR_NAMESPACE::String(i), i, 200, 50, 400, flags); - + { + name = matrixGui->getColumnName(obj, i); + colname = (name != 0) ? JUCE_EDITOR_NAMESPACE::String(name) : JUCE_EDITOR_NAMESPACE::String(i); + table->getHeader()->addColumn(colname, i, 200, 50, 400, flags); + } // we could now change some initial settings.. table->getHeader()->setSortColumnId (1, true); // sort forwards by the ID column // un-comment this line to have a go of stretch-to-fit mode This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-07-24 10:29:37
|
Revision: 1833 http://ftm.svn.sourceforge.net/ftm/?rev=1833&view=rev Author: borghesi Date: 2008-07-24 10:29:43 +0000 (Thu, 24 Jul 2008) Log Message: ----------- ftm.editor: new MatrixEditor (interface matrixGui implemented by fmat/mat/dict classes) Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/ftmlib/atom.h trunk/ftm/ftmlib/classes/dict.c trunk/ftm/ftmlib/classes/fmat.c trunk/ftm/ftmlib/classes/mat.c trunk/ftm/ftmlib/classes/sequence.c trunk/ftm/ftmlib/predefsymbols.h trunk/ftm/gui/Juce/c_gui/guiinterfaces.h trunk/ftm/gui/Juce/common/BpfEditor.cpp trunk/ftm/gui/Juce/common/EditorContainer.cpp trunk/ftm/gui/Juce/common/ImtrEditor.h trunk/ftm/gui/Juce/common/MarkersTableView.cpp trunk/ftm/gui/Juce/common/imtrjuce.h trunk/ftm/gui/Juce/cpp_gui/guiinterfaces.h trunk/ftm/gui/Juce/examples/osx-application/Main.cpp trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/project.pbxproj Added Paths: ----------- trunk/ftm/gui/Juce/common/MatrixEditor.cpp Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-07-24 10:29:43 UTC (rev 1833) @@ -192,12 +192,13 @@ 3B4E71160CC8E399006DFB5A /* MarkersTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */; }; 3B7073BE0713F12300764C51 /* ftm.list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B7073BD0713F04500764C51 /* ftm.list.c */; }; 3B8DE0FC0E10F962000757BC /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B8DE0FB0E10F962000757BC /* AppKit.framework */; }; + 3B99E1280E349FB3000AF43F /* MatrixEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B99E1270E349FB3000AF43F /* MatrixEditor.cpp */; }; 3B9D37B30E1CD6CC002ED38C /* EditorContainerListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */; }; 3B9D37B40E1CD6CC002ED38C /* InfoPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */; }; - 3BA368CD0E0A60050011055C /* libjuce.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB04330D197490006AEB4A /* libjuce.a */; }; 3BA9E3B80E2513A500B88643 /* ScoreEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */; }; 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */; }; 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */; }; + 3BC5ADA40E36134E00AAA94D /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B03F9840CAA96E7001C491B /* libjucedebug.a */; }; 3BCAC5EC0CBE5E7E00020156 /* FvecEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */; }; 3BDB03F40D197463006AEB4A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB03F30D197463006AEB4A /* IOKit.framework */; }; 3BDB03F50D197463006AEB4A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDB03F30D197463006AEB4A /* IOKit.framework */; }; @@ -613,6 +614,7 @@ 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MarkersTableView.cpp; sourceTree = "<group>"; }; 3B7073BD0713F04500764C51 /* ftm.list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.list.c; sourceTree = "<group>"; }; 3B8DE0FB0E10F962000757BC /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; + 3B99E1270E349FB3000AF43F /* MatrixEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MatrixEditor.cpp; sourceTree = "<group>"; }; 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditorContainerListener.h; sourceTree = "<group>"; }; 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InfoPanel.cpp; sourceTree = "<group>"; }; 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreEditor.cpp; sourceTree = "<group>"; }; @@ -864,7 +866,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3BA368CD0E0A60050011055C /* libjuce.a in Frameworks */, + 3BC5ADA40E36134E00AAA94D /* libjucedebug.a in Frameworks */, 3B1CA8000C467C4C005F0280 /* CoreAudio.framework in Frameworks */, 3B1CA7FA0C467C39005F0280 /* AGL.framework in Frameworks */, 3B1CA7DA0C467B12005F0280 /* MaxAPI.framework in Frameworks */, @@ -1155,6 +1157,7 @@ 3B0682DB0C2937D200D78875 /* EditorScrollBar.h */, 3BCAC5EB0CBE5E7E00020156 /* FvecEditor.cpp */, 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */, + 3B99E1270E349FB3000AF43F /* MatrixEditor.cpp */, 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */, 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */, 3B40FAA50D351B7D00A25542 /* ScrollZoomListener.h */, @@ -3142,6 +3145,7 @@ 3BA9E3B80E2513A500B88643 /* ScoreEditor.cpp in Sources */, 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */, 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */, + 3B99E1280E349FB3000AF43F /* MatrixEditor.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3507,7 +3511,9 @@ LIBRARY_SEARCH_PATHS = ( "${inherited}", "${SRCROOT}/../../../components/juce/bin/UninstalledProducts", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); + LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../components/juce/bin\""; OTHER_LDFLAGS = ( "${inherited}", "-framework", @@ -3533,7 +3539,9 @@ LIBRARY_SEARCH_PATHS = ( "${inherited}", "${SRCROOT}/../../../components/juce/bin/UninstalledProducts", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); + LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../components/juce/bin\""; OTHER_LDFLAGS = ( "${inherited}", "-framework", Modified: trunk/ftm/ftmlib/atom.h =================================================================== --- trunk/ftm/ftmlib/atom.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/atom.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -21,7 +21,7 @@ */ /** - * FTS atom support. + * FTS atom support.ww * * Atoms are arbitary values. * Modified: trunk/ftm/ftmlib/classes/dict.c =================================================================== --- trunk/ftm/ftmlib/classes/dict.c 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/classes/dict.c 2008-07-24 10:29:43 UTC (rev 1833) @@ -27,6 +27,8 @@ static fts_symbol_t sym_remove_entries = 0; +static imtr_guiInterfaceMatrix *dict_gui_interface_matrix = NULL; + #define dict_set_editor_open(m) ((m)->opened = 1) #define dict_set_editor_close(m) ((m)->opened = 0) @@ -802,6 +804,134 @@ return fts_ok; } + +/************************************************************ + * + * Matrix Gui Interface + * + */ +static void +dict_get_by_row(dict_t *self, int row, fts_atom_t *key, fts_atom_t *val) +{ + fts_iterator_t key_iterator; + int i = 0; + fts_hashtable_get_keys(&self->hash, &key_iterator); + while(fts_iterator_has_more(&key_iterator)) + { + fts_iterator_next(&key_iterator, key); + if(i == row) break; + i++; + } + dict_get(self, key, val); +} + +static int +dict_gui_matrix_is_float() +{ + return 0; +} +static int +dict_gui_matrix_get_rows(void *obj) +{ + dict_t *self = (dict_t *) obj; + return fts_hashtable_get_size(&self->hash); +} +static int +dict_gui_matrix_get_cols(void *obj) +{ + return 2; +} +static int +dict_gui_matrix_get_value(void *obj, int row, int col, double *float_val, int *int_val, char **string_val) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t key, val, value; + + dict_get_by_row(self, row, &key, &val); + value = (col == 0) ? key : val; + + if(fts_is_float(&value)) + { + *float_val = fts_get_number_float(&value); + *int_val = 0; + *string_val = 0; + return 0; + } + else if(fts_is_int(&value)) + { + *float_val = 0; + *int_val = fts_get_number_int(&value); + *string_val = 0; + return 1; + } + else if(fts_is_symbol(&value)) + { + *float_val = 0; + *int_val = 0; + *string_val = fts_symbol_name(fts_get_symbol(&value)); + return 2; + } + else if(fts_is_object(&value)) + { + char buff[256]; + fts_object_t *obj = fts_get_object(&value); + int obj_id = fts_object_get_id(obj); + fts_symbol_t name = fts_s_empty_string; + + if(name != fts_s_empty_string) + snprintf(buff, 255, "<%s[#%d]> [%s]", fts_symbol_name(fts_object_get_class_name(obj)), obj_id, fts_symbol_name(name)); + else + snprintf(buff, 255, "<%s[#%d]>", fts_symbol_name(fts_object_get_class_name(obj)), obj_id); + + *float_val = 0; + *int_val = 0; + strcpy(*string_val, buff); + return 3; + } + return -1; +} +static void +dict_gui_matrix_set(void *obj, int row, int col, fts_atom_t *at) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t key, val; + dict_get_by_row(self, row, &key, &val); + + if(col == 0) + { + dict_remove(self, &key); + dict_store(self, at, &val); + } + else + dict_store(self, &key, at); + + dict_changed(self); +} +static void +dict_gui_matrix_set_float(void *obj, int row, int col, double value) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t a; + fts_set_float(&a, value); + dict_gui_matrix_set(self, row, col, &a); +} +static void +dict_gui_matrix_set_int(void *obj, int row, int col, int value) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t a; + fts_set_int(&a, value); + dict_gui_matrix_set(self, row, col, &a); +} +static void +dict_gui_matrix_set_string(void *obj, int row, int col, const char *value) +{ + dict_t *self = (dict_t *) obj; + fts_atom_t a; + fts_set_symbol(&a, fts_new_symbol(value)); + dict_gui_matrix_set(self, row, col, &a); +} + /********************************************************** * * class @@ -882,6 +1012,18 @@ fts_class_message_varargs(cl, fts_s_closeEditor, dict_close_editor, NULL); fts_class_message_varargs(cl, fts_s_destroyEditor, dict_destroy_editor, NULL); fts_class_message_varargs(cl, fts_s_listenersNotify, dict_listeners_notify, NULL); + + dict_gui_interface_matrix = (imtr_guiInterfaceMatrix *)fts_malloc(sizeof(imtr_guiInterfaceMatrix)); + ((imtr_guiInterface *)dict_gui_interface_matrix)->name = fts_symbol_name(fts_s_matrix); + dict_gui_interface_matrix->isFloat = dict_gui_matrix_is_float; + dict_gui_interface_matrix->getRows = dict_gui_matrix_get_rows; + dict_gui_interface_matrix->getCols = dict_gui_matrix_get_cols; + dict_gui_interface_matrix->getValue = dict_gui_matrix_get_value; + dict_gui_interface_matrix->setFloat = dict_gui_matrix_set_float; + dict_gui_interface_matrix->setInt = dict_gui_matrix_set_int; + dict_gui_interface_matrix->setString = dict_gui_matrix_set_string; + + fts_class_gui_interface(cl, fts_s_matrix, dict_gui_interface_matrix); } FTS_MODULE_INIT(dict) Modified: trunk/ftm/ftmlib/classes/fmat.c =================================================================== --- trunk/ftm/ftmlib/classes/fmat.c 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/classes/fmat.c 2008-07-24 10:29:43 UTC (rev 1833) @@ -67,6 +67,7 @@ static imtr_guiInterfaceFvec *fmat_gui_interface_fvec = NULL; static imtr_guiInterfaceSpectrogram *fmat_gui_interface_spectro = NULL; static imtr_guiInterfaceBpf *fmat_gui_interface_bpf = NULL; +static imtr_guiInterfaceMatrix *fmat_gui_interface_matrix = NULL; #ifdef WIN32 /* undefined functions on windows */ @@ -5205,6 +5206,50 @@ return NULL; /* return point */ } +/************************************************************ + * + * Matrix Gui Interface + * + */ + +static int +fmat_gui_matrix_is_float() +{ + return 1; +} +static int +fmat_gui_matrix_get_rows(void *obj) +{ + fmat_t *self = (fmat_t *) obj; + return fmat_get_m(self); +} +static int +fmat_gui_matrix_get_cols(void *obj) +{ + fmat_t *self = (fmat_t *) obj; + return fmat_get_n(self); +} +static int +fmat_gui_matrix_get_value(void *obj, int row, int col, double *float_val, int *int_val, char **string_val) +{ + fmat_t *self = (fmat_t *) obj; + *float_val = fmat_get_element(self, row, col); + *int_val = 0; + *string_val = 0; + + return 0; +} +static void +fmat_gui_matrix_set_float(void *obj, int row, int col, double value) +{ + fmat_t *self = (fmat_t *) obj; + fmat_set_element(self, row, col, value); +} +static void +fmat_gui_matrix_set_int(void *obj, int row, int col, int value){} +static void +fmat_gui_matrix_set_string(void *obj, int row, int col, const char *value){} + /********************************************************* * * class init/delete @@ -5506,6 +5551,18 @@ fmat_gui_interface_bpf->getNextPoint = fmat_gui_bpf_get_next_point; fts_class_gui_interface(cl, fts_s_bpf, fmat_gui_interface_bpf); + + fmat_gui_interface_matrix = (imtr_guiInterfaceMatrix *)fts_malloc(sizeof(imtr_guiInterfaceMatrix)); + ((imtr_guiInterface *)fmat_gui_interface_matrix)->name = fts_symbol_name(fts_s_matrix); + fmat_gui_interface_matrix->isFloat = fmat_gui_matrix_is_float; + fmat_gui_interface_matrix->getRows = fmat_gui_matrix_get_rows; + fmat_gui_interface_matrix->getCols = fmat_gui_matrix_get_cols; + fmat_gui_interface_matrix->getValue = fmat_gui_matrix_get_value; + fmat_gui_interface_matrix->setFloat = fmat_gui_matrix_set_float; + fmat_gui_interface_matrix->setInt =fmat_gui_matrix_set_int; + fmat_gui_interface_matrix->setString = fmat_gui_matrix_set_string; + + fts_class_gui_interface(cl, fts_s_matrix, fmat_gui_interface_matrix); } FTS_MODULE_INIT(fmat) Modified: trunk/ftm/ftmlib/classes/mat.c =================================================================== --- trunk/ftm/ftmlib/classes/mat.c 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/classes/mat.c 2008-07-24 10:29:43 UTC (rev 1833) @@ -30,6 +30,7 @@ static imtr_guiInterfaceMarkers *mat_gui_interface_markers = NULL; static imtr_guiInterfaceScore *mat_gui_interface_score = NULL; +static imtr_guiInterfaceMatrix *mat_gui_interface_matrix = NULL; static void mat_changed(mat_t *mat) @@ -2059,7 +2060,7 @@ mat_delete_rows((mat_t *)obj, index, 1); } static void -mat_gui_markers_set_label(void *obj, void *marker, int index, char *label) +mat_gui_markers_set_label(void *obj, void *marker, int index, const char *label) { int m = mat_get_m((mat_t *)obj); int n = mat_get_n((mat_t *)obj); @@ -2294,6 +2295,108 @@ return NULL; } +/************************************************************ + * + * Matrix Gui Interface + * + */ + +static int +mat_gui_matrix_is_float() +{ + return 0; +} +static int +mat_gui_matrix_get_rows(void *obj) +{ + mat_t *self = (mat_t *) obj; + return mat_get_m(self); +} +static int +mat_gui_matrix_get_cols(void *obj) +{ + mat_t *self = (mat_t *) obj; + return mat_get_n(self); +} +static int +mat_gui_matrix_get_value(void *obj, int row, int col, double *float_val, int *int_val, char **string_val) +{ + mat_t *self = (mat_t *) obj; + fts_atom_t *val = mat_get_element(self, row, col); + + if(fts_is_float(val)) + { + *float_val = fts_get_number_float(val); + *int_val = 0; + *string_val = 0; + return 0; + } + else if(fts_is_int(val)) + { + *float_val = 0; + *int_val = fts_get_number_int(val); + *string_val = 0; + return 1; + } + else if(fts_is_symbol(val)) + { + *float_val = 0; + *int_val = 0; + *string_val = fts_symbol_name(fts_get_symbol(val)); + return 2; + } + else if(fts_is_object(val)) + { + char buff[256]; + fts_object_t *obj = fts_get_object(val); + int obj_id = fts_object_get_id(obj); + //ftm_context_t *context = ftm_context_get(obj); + fts_symbol_t name = fts_s_empty_string; + int len; + + /*if(context != NULL) + name = ftm_context_get_name(obj->context);*/ + + if(name != fts_s_empty_string) + snprintf(buff, 255, "<%s[#%d]> [%s]", fts_symbol_name(fts_object_get_class_name(obj)), obj_id, fts_symbol_name(name)); + else + snprintf(buff, 255, "<%s[#%d]>", fts_symbol_name(fts_object_get_class_name(obj)), obj_id); + + len = strlen(buff); + /*buff[len] = '\0'; + buff[len+1] = '\0';*/ + + *float_val = 0; + *int_val = 0; + strcpy(*string_val, buff); + return 3; + } + return -1; +} +static void +mat_gui_matrix_set_float(void *obj, int row, int col, double value) +{ + mat_t *self = (mat_t *) obj; + fts_atom_t a; + fts_set_float(&a, value); + mat_set_element(self, row, col, &a); +} +static void +mat_gui_matrix_set_int(void *obj, int row, int col, int value) +{ + mat_t *self = (mat_t *) obj; + fts_atom_t a; + fts_set_int(&a, value); + mat_set_element(self, row, col, &a); +} +static void +mat_gui_matrix_set_string(void *obj, int row, int col, const char *value) +{ + mat_t *self = (mat_t *) obj; + fts_atom_t a; + fts_set_symbol(&a, fts_new_symbol(value)); + mat_set_element(self, row, col, &a); +} /******************************************************************** * * class @@ -2503,6 +2606,18 @@ mat_gui_interface_score->setPitch = mat_gui_score_set_pitch; fts_class_gui_interface(cl, fts_s_score, mat_gui_interface_score); + + mat_gui_interface_matrix = (imtr_guiInterfaceMatrix *)fts_malloc(sizeof(imtr_guiInterfaceMatrix)); + ((imtr_guiInterface *)mat_gui_interface_matrix)->name = fts_symbol_name(fts_s_matrix); + mat_gui_interface_matrix->isFloat = mat_gui_matrix_is_float; + mat_gui_interface_matrix->getRows = mat_gui_matrix_get_rows; + mat_gui_interface_matrix->getCols = mat_gui_matrix_get_cols; + mat_gui_interface_matrix->getValue = mat_gui_matrix_get_value; + mat_gui_interface_matrix->setFloat = mat_gui_matrix_set_float; + mat_gui_interface_matrix->setInt = mat_gui_matrix_set_int; + mat_gui_interface_matrix->setString = mat_gui_matrix_set_string; + + fts_class_gui_interface(cl, fts_s_matrix, mat_gui_interface_matrix); } FTS_MODULE_INIT(mat) Modified: trunk/ftm/ftmlib/classes/sequence.c =================================================================== --- trunk/ftm/ftmlib/classes/sequence.c 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/classes/sequence.c 2008-07-24 10:29:43 UTC (rev 1833) @@ -2509,7 +2509,7 @@ sequence_remove_event((sequence_t *)obj, (event_t *)marker); } static void -sequence_gui_markers_set_label(void *obj, void *marker, int index, char *label) +sequence_gui_markers_set_label(void *obj, void *marker, int index, const char *label) { fts_atom_t k; fts_set_symbol(&k, fts_new_symbol(label)); Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -391,6 +391,7 @@ PREDEF_SYMBOL( fts_s_layout, "layout"); PREDEF_SYMBOL( fts_s_lines, "lines"); PREDEF_SYMBOL( fts_s_lock, "lock"); +PREDEF_SYMBOL( fts_s_matrix, "matrix"); PREDEF_SYMBOL( fts_s_opacity, "opacity"); PREDEF_SYMBOL( fts_s_peaks, "peaks"); PREDEF_SYMBOL( fts_s_points, "points"); Modified: trunk/ftm/gui/Juce/c_gui/guiinterfaces.h =================================================================== --- trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/c_gui/guiinterfaces.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -432,7 +432,7 @@ * @param the label * @ingroup guiinterfaces */ -typedef void (*imtr_gui_interface_markers_set_label_t)(void *obj, void *marker, int index, char *label); +typedef void (*imtr_gui_interface_markers_set_label_t)(void *obj, void *marker, int index, const char *label); /** * @brief sets the cue to given marker * @param obj the markers track object @@ -614,4 +614,95 @@ } imtr_guiInterfaceScore; /** @} Score gui interface */ + +/*********************************************************** + * + * Matrix GUI interface + * + */ + +/** @name Matrix gui interface + * @{ */ +/** + * @brief returns true if the matrix object is a float matrix + * @return 1 if matriw is a float matrix, 0 otherwise + * @ingroup guiinterfaces + */ +typedef int (*imtr_gui_interface_matrix_is_float_t)(void); + +/** + * @brief returns the number of rows + * @param obj the matrix object + * @return number of rows + * @ingroup guiinterfaces + */ +typedef int (*imtr_gui_interface_matrix_get_rows_t)(void *obj); + +/** + * @brief returns the number of cols + * @param obj the matrix object + * @return number of columns + * @ingroup guiinterfaces + */ +typedef int (*imtr_gui_interface_matrix_get_cols_t)(void *obj); + +/** + * @brief returns the value at given position + * @param obj the matrix object + * @param row the row + * @param col the col + * @param double_int return int value (if the value is int) + * @param double_value return double value (if the value is double) + * @param string_value return char* value (if the value is char*) + * @ingroup guiinterfaces + */ +typedef int (*imtr_gui_interface_matrix_get_value_t)(void *obj, int row, int col, double *double_value, int *int_value, char **string_value); + +/** + * @brief set double value at given position + * @param obj the matrix object + * @param row the row + * @param col the col + * @param value the new value + * @ingroup guiinterfaces + */ +typedef void (*imtr_gui_interface_matrix_set_float_t)(void *obj, int row, int col, double value); +/** + * @brief set int value at given position + * @param obj the matrix object + * @param row the row + * @param col the col + * @param value the new value + * @ingroup guiinterfaces + */ +typedef void (*imtr_gui_interface_matrix_set_int_t)(void *obj, int row, int col, int value); +/** + * @brief set char* value at given position + * @param obj the matrix object + * @param row the row + * @param col the col + * @param value the new value + * @ingroup guiinterfaces + */ +typedef void (*imtr_gui_interface_matrix_set_string_t)(void *obj, int row, int col, const char *value); + +/** + * @brief score gui interface + * @ingroup guiinterfaces + */ +typedef struct _imtrGuiInterfaceMatrix + { + imtr_guiInterface head; + + imtr_gui_interface_matrix_is_float_t isFloat; + imtr_gui_interface_matrix_get_rows_t getRows; + imtr_gui_interface_matrix_get_cols_t getCols; + imtr_gui_interface_matrix_get_value_t getValue; + imtr_gui_interface_matrix_set_float_t setFloat; + imtr_gui_interface_matrix_set_int_t setInt; + imtr_gui_interface_matrix_set_string_t setString; + + } imtr_guiInterfaceMatrix; +/** @} Score gui interface */ + #endif Modified: trunk/ftm/gui/Juce/common/BpfEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/BpfEditor.cpp 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/common/BpfEditor.cpp 2008-07-24 10:29:43 UTC (rev 1833) @@ -274,7 +274,6 @@ g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, getHeight()); g.setColour(lightColour); g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, getHeight()); - } else { Modified: trunk/ftm/gui/Juce/common/EditorContainer.cpp =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-07-24 10:29:43 UTC (rev 1833) @@ -584,6 +584,9 @@ else if(interface_name == JUCE_EDITOR_NAMESPACE::String("score")) editor = createScoreEditor((void *)obj, (imtr_guiInterfaceScore *)guiInterface, this, listener); + else + if(interface_name == JUCE_EDITOR_NAMESPACE::String("matrix")) + editor = createMatrixEditor((void *)obj, (imtr_guiInterfaceMatrix *)guiInterface, this, listener); } else { Modified: trunk/ftm/gui/Juce/common/ImtrEditor.h =================================================================== --- trunk/ftm/gui/Juce/common/ImtrEditor.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/common/ImtrEditor.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -357,7 +357,7 @@ /** @} Tools interaction */ virtual void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour color) = 0; - virtual void disposeTableView() = 0; + virtual void disposeTableView() {}; virtual float getOriginalLength() = 0; virtual void postError(JUCE_EDITOR_NAMESPACE::String error) = 0; Modified: trunk/ftm/gui/Juce/common/MarkersTableView.cpp =================================================================== --- trunk/ftm/gui/Juce/common/MarkersTableView.cpp 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/common/MarkersTableView.cpp 2008-07-24 10:29:43 UTC (rev 1833) @@ -255,12 +255,13 @@ owner.markersGui->setCue(owner.obj, evt, row, text.getIntValue()); break; case 3: - int len = text.length(); + /*int len = text.length(); char *buff = (char *)alloca(sizeof(char) * (len+1)); text.copyToBuffer(buff, len); buff[len] = '\0'; buff[len+1] = '\0'; - owner.markersGui->setLabel(owner.obj, evt, row, buff); + owner.markersGui->setLabel(owner.obj, evt, row, buff);*/ + owner.markersGui->setLabel(owner.obj, evt, row, text); break; } owner.parent->objectRefresh(); Added: trunk/ftm/gui/Juce/common/MatrixEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/MatrixEditor.cpp (rev 0) +++ trunk/ftm/gui/Juce/common/MatrixEditor.cpp 2008-07-24 10:29:43 UTC (rev 1833) @@ -0,0 +1,611 @@ +/* + * IMTR EDITOR + * Copyright (C) 2004 by IRCAM-Centre Georges Pompidou, Paris, France. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * See file COPYING.LIB + for further informations on licensing terms. + * + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +//#include "src/juce_WithoutMacros.h" +#ifdef DISABLE_JUCE_NAMESPACE +#define DONT_SET_USING_JUCE_NAMESPACE 1 +#endif +#include "juce.h" +#include "imtrjuce.h" +#include "ImtrEditor.h" + + +#define MINWIDTH 64 // minimum width and height +#define MINHEIGHT 16 +#define DEFWIDTH 256 // default width and height +#define DEFHEIGHT 128 + +#define LINES_VIEW 0 +#define PEEKS_VIEW 1 +#define STEPS_VIEW 2 + +#define float_Pi 3.14159265358979323846f +#define MARKERS_INFO_SIZE 35 + +class MatrixEditor : public JUCE_EDITOR_NAMESPACE::Component, public JUCE_EDITOR_NAMESPACE::TableListBoxModel, public ImtrEditor +{ + JUCE_EDITOR_NAMESPACE::Colour backcolor, lightColor, darkerColor, forecolor, selectColor, labelColor, selectedCellColor; + float opacity; + + imtr_guiInterfaceMatrix *matrixGui; + void *obj; + + ImtrEditorListener *listener; + EditorContainer *container; + float v_range, value_range, original_length; + float v_min, v_max; + float value_min, value_max; + + JUCE_EDITOR_NAMESPACE::TableListBox* table; + JUCE_EDITOR_NAMESPACE::Font font; + + /*-------- offscreen -------*/ + JUCE_EDITOR_NAMESPACE::Image *infoImage; + + int lastClickedCol; + bool activateSelectedCell; + +public: + MatrixEditor(void *obj, imtr_guiInterfaceMatrix *matrixGui, EditorContainer *container, ImtrEditorListener *listener) : font (12.0f), listener(listener), container(container), obj(obj), matrixGui(matrixGui) + { + setInterceptsMouseClicks(true, true); + setWantsKeyboardFocus(true); + setMouseClickGrabsKeyboardFocus(true); + setFocusContainer(true); + + backcolor = container->getBackgroundColor(); + lightColor = container->getBackgroundColor().brighter(0.2f); + darkerColor = container->getBackgroundColor().darker(0.2f); + forecolor = JUCE_EDITOR_NAMESPACE::Colours::black; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + labelColor = forecolor.withAlpha(0.4f); + selectedCellColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(JUCE_EDITOR_NAMESPACE::Colours::lightblue, JUCE_EDITOR_NAMESPACE::Colours::black); + opacity = container->getOpacity(); + + /* time range */ + original_length = 0; + /* values in fmat */ + value_min = -20.0f; + value_max = 20.0f; + value_range = value_max - value_min; + /* fmat index */ + v_min = 0.0f; + v_max = 1.0f; + v_range = v_max-v_min; + + infoImage = NULL; + + description = JUCE_EDITOR_NAMESPACE::String("matrix"); + + // Create our table component and add it to this component.. + table = new JUCE_EDITOR_NAMESPACE::TableListBox ("matrix", this); + + // give it a border + table->setColour (JUCE_EDITOR_NAMESPACE::ListBox::outlineColourId, JUCE_EDITOR_NAMESPACE::Colours::grey); + table->setOutlineThickness (1); + //table->setOpaque(true); + + initColumns(); + + addAndMakeVisible(table); + + (dynamic_cast <JUCE_EDITOR_NAMESPACE::Component *>(table))->addMouseListener(dynamic_cast <JUCE_EDITOR_NAMESPACE::MouseListener*> (this), true); + + lastClickedCol = -1; + activateSelectedCell = false; + } + + ~MatrixEditor() + { + } + + void initColumns() + { + table->getHeader()->removeAllColumns(); + + // Add some columns to the table header, based on the column list in our database.. + int flags = (JUCE_EDITOR_NAMESPACE::TableHeaderComponent::visible | JUCE_EDITOR_NAMESPACE::TableHeaderComponent::resizable); + for(int i=0; i < matrixGui->getCols(obj); i++) + table->getHeader()->addColumn(JUCE_EDITOR_NAMESPACE::String(i), i, 200, 50, 400, flags); + + // we could now change some initial settings.. + table->getHeader()->setSortColumnId (1, true); // sort forwards by the ID column + // un-comment this line to have a go of stretch-to-fit mode + table->getHeader()->setStretchToFitActive (true); + table->setHeaderHeight(15); + } + + void mouseDown(const JUCE_EDITOR_NAMESPACE::MouseEvent& e) + { + const JUCE_EDITOR_NAMESPACE::MouseEvent& ev = e.getEventRelativeTo(table); + int row = table->getRowContainingPosition(ev.getMouseDownX(), ev.getMouseDownY()); + + if(row == -1) + lastClickedCol = -1; + else + { + lastClickedCol = table->getHeader()->getColumnIdAtX(ev.getMouseDownX()); + } + table->selectRow(row); + table->repaint(); + //listener->postError(JUCE_EDITOR_NAMESPACE::String(row)); + } + /////////////////////////// Info Image + void drawInfoBackground(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = g.getClipBounds(); + + g.fillAll(backcolor); + + g.setColour(darkerColor); + if(!container->isVertical()) + { + g.drawLine(bounds.getWidth()-2, 0, bounds.getWidth()-2, bounds.getHeight()); + g.setColour(lightColor); + g.drawLine(bounds.getWidth()-1, 0, bounds.getWidth()-1, bounds.getHeight()); + } + else + { + g.drawLine(0, bounds.getHeight()-2, bounds.getWidth(), bounds.getHeight()-2); + g.setColour(lightColor); + g.drawLine(0, bounds.getHeight()-1, bounds.getWidth(), bounds.getHeight()-1); + } + } + void createAndDrawInfoBackground() + { + if(infoImage != NULL) + delete infoImage; + + if(container->isVertical()) + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, getWidth(), MARKERS_INFO_SIZE, true); + else + infoImage = new JUCE_EDITOR_NAMESPACE::Image(JUCE_EDITOR_NAMESPACE::Image::ARGB, MARKERS_INFO_SIZE, getHeight(), true); + + JUCE_EDITOR_NAMESPACE::Graphics info_g (*infoImage); + drawInfoBackground(info_g); + } + + //////////////////////////////////////////////////////////////////////////////////////// + int getNumRows() + { + return matrixGui->getRows(obj); + } + + // This is overloaded from TableListBoxModel, and should fill in the background of the whole row + void paintRowBackground (JUCE_EDITOR_NAMESPACE::Graphics& g, int rowNumber, int width, int height, bool rowIsSelected) + { + if (rowIsSelected) + { + g.fillAll (JUCE_EDITOR_NAMESPACE::Colours::lightblue); + + if(lastClickedCol != -1) + { + JUCE_EDITOR_NAMESPACE::Rectangle bounds = table->getHeader()->getColumnPosition(lastClickedCol); + g.setColour(selectedCellColor); + g.fillRect(bounds.getX(), bounds.getY(), bounds.getWidth(), height); + } + } + } + + void paintCell (JUCE_EDITOR_NAMESPACE::Graphics& g, + int rowNumber, + int columnId, + int width, int height, + bool rowIsSelected) {} + + JUCE_EDITOR_NAMESPACE::Component* refreshComponentForCell (int rowNumber, int columnId, bool isRowSelected, + JUCE_EDITOR_NAMESPACE::Component* existingComponentToUpdate) + { + JUCE_EDITOR_NAMESPACE::String text; + MatrixComponent *label = (MatrixComponent*) existingComponentToUpdate; + + if (label == NULL) + label = new MatrixComponent(*this, rowNumber, columnId); + else + label->setRowAndCol(rowNumber, columnId); + + /*work around to select a selected cell with a return key pressed; in returnKeyPressed updateContent methos is called; + this method call a refreshComponentFor Cell in for every cell; here we test if this cell correspond to the selected cell; + if yes we activate the editor*/ + if(activateSelectedCell && isRowSelected && columnId == lastClickedCol) + { + label->showEditor(); + activateSelectedCell = false; + } + return label; + } + + void returnKeyPressed(int lastRowSelected) + { + if(lastClickedCol >= 0) + { + activateSelectedCell = true; + table->updateContent(); + } + } + /****************************** + Key Listener + *****************************/ + bool keyPressed(const JUCE_EDITOR_NAMESPACE::KeyPress& key) + { + int code = key.getKeyCode(); + + if(code == JUCE_EDITOR_NAMESPACE::KeyPress::leftKey) + { + if(lastClickedCol > 0) + { + lastClickedCol--; + table->repaint(); + } + return true; + } + else if(code == JUCE_EDITOR_NAMESPACE::KeyPress::rightKey) + { + if(lastClickedCol < matrixGui->getCols(obj)-1) + { + lastClickedCol++; + table->repaint(); + } + return true; + } + return false; + } + bool keyStateChanged(){return false;} + + void resized() + { + table->setBoundsInset (JUCE_EDITOR_NAMESPACE::BorderSize(1)); + } + + /************************* + ImtrEditor + **************************/ + void *getObject() + { + return obj; + } + + imtr_guiInterface *getInterface() + { + return (imtr_guiInterface *)matrixGui; + } + + void postError(JUCE_EDITOR_NAMESPACE::String error) + { + container->postError(error); + } + + void objectRefresh() + { + //redraw_offscreen = true; + container->repaint(); + } + + void objectChanged() + { + if(matrixGui->getCols(obj) != table->getHeader()->getNumColumns(false)) + initColumns(); + table->updateContent(); + } + + void layoutChanged(){} + + void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) + { + backcolor = bcolor; + darkerColor = backcolor.darker(0.2f); + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + lightColor = backcolor.brighter(0.2f); + } + + void backgroundColorChanged(JUCE_EDITOR_NAMESPACE::Colour bcolor){ setBackgroundColor(bcolor);} + + void setForegroundColor(JUCE_EDITOR_NAMESPACE::Colour fcolor) + { + forecolor = fcolor; + selectColor = JUCE_EDITOR_NAMESPACE::Colour::contrasting(backcolor, forecolor); + labelColor = forecolor.withAlpha(0.4f); + } + + JUCE_EDITOR_NAMESPACE::Colour getForegroundColor() + { + return forecolor; + } + + JUCE_EDITOR_NAMESPACE::Colour getBackgroundColor() + { + return backcolor; + } + + void setOpacity(float alpha) + { + opacity = alpha; + } + + void setForemost(bool isForemost) + { + if(isForemost) + setOpacity(container->getOpacity()); + else + { + disposeTableView(); + setOpacity(0.0f); + } + } + + float getOriginalLength() + { + return original_length; + } + void setTool(JUCE_EDITOR_NAMESPACE::MouseListener *tool){} + void openPopupMenu(){} + void addToLocation(int x, int y, bool isShiftDown){} + void commandAltInteraction(int x, int y, bool isShiftDown){} + void startDragging(int x, int y, int w, int h, bool isShiftDown){} + bool isSelecting(){ return false;} + bool isSelectingRegion(){return false;} + bool isMovingSelection(){ return false;} + void setSelectingRegion(bool isSelectingRegion){} + void setSelectionRect(int x, int y, int w, int h){} + void dragSelection(int x, int y, int dx, int dy){} + void endSelecting(){} + void endSelectingRegion(){} + void endMovingSelection(){} + + /************************ + Coordinates conversion + ***********************/ + int editorGetX(double x) + { + if(!container->isVertical()) + { + float dx = getWidth()/container->getHLength(); + return (int)((x+container->getHTransposition())*dx*container->getHZoom()); + } + else + { + float value = x - v_min; + float width = getWidth(); + float dx = width/v_range; + return (int)(value*dx); + } + } + int editorGetY(double y) + { + if(!container->isVertical()) + { + float value = y - v_min; + float height = getHeight(); + float dy = height/v_range; + return (int)(value*dy); + } + else + { + float dy = getHeight()/container->getHLength(); + return (int)((y+container->getHTransposition())*dy*container->getHZoom()); + } + } + double editorGetInvX(float x) + { + if(!container->isVertical()) + { + float dx = getWidth()/container->getHLength(); + return (x/dx)/container->getHZoom() - container->getHTransposition(); + } + else + { + float width = getWidth(); + float dx = width/v_range; + return (x/dx + v_min); + } + } + double editorGetInvY(float y) + { + if(!container->isVertical()) + { + float height = getHeight(); + float dy = height/v_range; + return (y/dy + v_min); + } + else + { + float dy = (getHeight()/container->getHLength()); + return (y/dy)/container->getHZoom() - container->getHTransposition(); + } + } + bool haveInfoPanel() {return true;} + JUCE_EDITOR_NAMESPACE::Image *getInfoImage() + { + if(infoImage == NULL) createAndDrawInfoBackground(); + return infoImage; + } + + class MatrixComponent: public JUCE_EDITOR_NAMESPACE::Component, public JUCE_EDITOR_NAMESPACE::LabelListener + { + public: + MatrixComponent (MatrixEditor& owner_, int col, int row) + : owner (owner_), column(col), row(row) + { + JUCE_EDITOR_NAMESPACE::String text; + double floatVal; + int intVal; + char *stringVal = (char *)alloca(sizeof(char) * 256); + int type = -1; + + type = owner.matrixGui->getValue(owner.obj, row, column, &floatVal, &intVal, &stringVal); + + switch(type) + { + case 0: + text = JUCE_EDITOR_NAMESPACE::String(floatVal); + break; + case 1: + text = JUCE_EDITOR_NAMESPACE::String(intVal); + break; + case 2: + text = JUCE_EDITOR_NAMESPACE::String(stringVal); + break; + case 3: + text = JUCE_EDITOR_NAMESPACE::String(stringVal); + break; + } + + addAndMakeVisible (label = new JUCE_EDITOR_NAMESPACE::Label ("matrix label", text)); + + label->setEditable(false, true, true); + label->addListener(this); + } + + ~MatrixComponent(){} + + void showEditor() + { + label->showEditor(); + } + + void setRowAndCol(int r, int c) + { + JUCE_EDITOR_NAMESPACE::String text; + double floatVal; + int intVal; + char *stringVal = (char *)alloca(sizeof(char) * 256); + int type = -1; + + row = r; + column = c; + + type = owner.matrixGui->getValue(owner.obj, row, column, &floatVal, &intVal, &stringVal); + + switch(type) + { + case 0: + text = JUCE_EDITOR_NAMESPACE::String(floatVal); + break; + case 1: + text = JUCE_EDITOR_NAMESPACE::String(intVal); + break; + case 2: + text = JUCE_EDITOR_NAMESPACE::String(stringVal); + break; + case 3: + text = JUCE_EDITOR_NAMESPACE::String(stringVal); + label->setColour(JUCE_EDITOR_NAMESPACE::Label::backgroundColourId, JUCE_EDITOR_NAMESPACE::Colours::lightgrey.withAlpha(0.5f)); + label->setColour(JUCE_EDITOR_NAMESPACE::Label::outlineColourId, JUCE_EDITOR_NAMESPACE::Colours::grey); + break; + } + + label->setText(text, false); + label->setEditable(false, true, true); + label->addListener(this); + } + void resized() + { + label->setBoundsInset(JUCE_EDITOR_NAMESPACE::BorderSize (1)); + } + + bool stringIsInt(JUCE_EDITOR_NAMESPACE::String text) + { + for(int i=0; i < text.length(); i++) + if(!JUCE_EDITOR_NAMESPACE::CharacterFunctions::isDigit(text[i])) return false; + return true; + } + + bool stringIsFloat(JUCE_EDITOR_NAMESPACE::String text) + { + for(int i=0; i < text.length(); i++) + if(!JUCE_EDITOR_NAMESPACE::CharacterFunctions::isDigit(text[i]) && text[i] != '.') return false; + return true; + } + + bool stringIsObject(JUCE_EDITOR_NAMESPACE::String text) + { + return false;//for the moment... + } + + int getStringType(JUCE_EDITOR_NAMESPACE::String text) + { + if(stringIsInt(text)) + return 1; + else if(stringIsFloat(text)) + return 0; + else if(stringIsObject(text)) + return 3; + else return 2; + } + + void labelTextChanged(JUCE_EDITOR_NAMESPACE::Label *label) + { + JUCE_EDITOR_NAMESPACE::String text = label->getText(); + + if(owner.matrixGui->isFloat()) + { + JUCE_TRY + { + float val = text.getFloatValue(); + owner.matrixGui->setFloat(owner.obj, row, column, val); + } + catch(const std::exception& e) + { + owner.listener->postError(JUCE_EDITOR_NAMESPACE::String("Error: is not a float")); + } + } + else + { + int type = getStringType(text); + + JUCE_TRY + { + switch(type) + { + case 0: + owner.matrixGui->setFloat(owner.obj, row, column, text.getFloatValue()); + break; + case 1: + owner.matrixGui->setInt(owner.obj, row, column, text.getIntValue()); + break; + case 2: + owner.matrixGui->setString(owner.obj, row, column, text); + break; + case 3: + //owner.matrixGui->setObject(owner.obj, row, column, text); + break; + } + } + catch(const std::exception& e) + { + owner.listener->postError(JUCE_EDITOR_NAMESPACE::String("Error: is not a float")); + } + } + } + + private: + MatrixEditor& owner; + JUCE_EDITOR_NAMESPACE::Label* label; + int row, column; + }; +}; + +JUCE_EDITOR_NAMESPACE::Component *createMatrixEditor(void *obj, imtr_guiInterfaceMatrix *matrixGui, EditorContainer *container, ImtrEditorListener *listener) +{ + return new MatrixEditor(obj, matrixGui, container, listener); +} \ No newline at end of file Property changes on: trunk/ftm/gui/Juce/common/MatrixEditor.cpp ___________________________________________________________________ Added: svn:executable + * Modified: trunk/ftm/gui/Juce/common/imtrjuce.h =================================================================== --- trunk/ftm/gui/Juce/common/imtrjuce.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/common/imtrjuce.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -53,6 +53,7 @@ JUCE_EDITOR_NAMESPACE::Component* createMarkersEditor(void *obj, imtr_guiInterfaceMarkers *markersGui, EditorContainer *container, ImtrEditorListener *listener); JUCE_EDITOR_NAMESPACE::Component* createScoreEditor(void *obj, imtr_guiInterfaceScore *scoreGui, EditorContainer *container, ImtrEditorListener *listener); JUCE_EDITOR_NAMESPACE::Component* createFvecEditor(void *obj, imtr_guiInterfaceFvec *fvecGui, EditorContainer *container, ImtrEditorListener *listener); +JUCE_EDITOR_NAMESPACE::Component* createMatrixEditor(void *obj, imtr_guiInterfaceMatrix *matrixGui, EditorContainer *container, ImtrEditorListener *listener); JUCE_EDITOR_NAMESPACE::Component* createBpfTableView(ImtrEditor *parent, void *obj, imtr_guiInterfaceBpf *bpfGui); JUCE_EDITOR_NAMESPACE::Component* createMarkersTableView(ImtrEditor *parent, void *obj, imtr_guiInterfaceMarkers *markersGui); JUCE_EDITOR_NAMESPACE::Component* createScoreTableView(ImtrEditor *parent, void *obj, imtr_guiInterfaceScore *scoreGui); Modified: trunk/ftm/gui/Juce/cpp_gui/guiinterfaces.h =================================================================== --- trunk/ftm/gui/Juce/cpp_gui/guiinterfaces.h 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/cpp_gui/guiinterfaces.h 2008-07-24 10:29:43 UTC (rev 1833) @@ -149,4 +149,25 @@ }; /** @} Score gui interface */ +/** + * @brief Matrix gui interface + * @ingroup guiinterfaces + */ +class imtr_guiInterfaceMatrix: public imtr_guiInterface + { + public: + imtr_guiInterfaceMatrix(){setName("matrix");} + virtual ~imtr_guiInterfaceMatrix() {} + + virtual int isFloat() = 0; + virtual int getRows(void *obj) = 0; + virtual int getCols(void *obj) = 0; + + virtual int getValue(void *obj, int row, int col, double *double_value, int *int_value, char **string_value) = 0; + virtual void setFloat(void *obj, int row, int col, double value) = 0; + virtual void setInt(void *obj, int row, int col, int value) = 0; + virtual void setString(void *obj, int row, int col, char *value) = 0; + }; +/** @} Matrix gui interface */ + #endif Modified: trunk/ftm/gui/Juce/examples/osx-application/Main.cpp =================================================================== --- trunk/ftm/gui/Juce/examples/osx-application/Main.cpp 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/examples/osx-application/Main.cpp 2008-07-24 10:29:43 UTC (rev 1833) @@ -133,6 +133,7 @@ void outputIntegers(StringArray symbols, Array <int> values){} void outputFloats(StringArray symbols, Array <float> values){} void postError(String error){} + void doAction(String action){} /* ButtonListener interface */ void buttonClicked(Button *button) Modified: trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/project.pbxproj 2008-07-22 14:55:53 UTC (rev 1832) +++ trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/project.pbxproj 2008-07-24 10:29:43 UTC (rev 1833) @@ -11,6 +11,11 @@ 3B68AF010DF5899E00A07177 /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B68AF000DF5899E00A07177 /* Main.cpp */; }; 3B68AF130DF58A1E00A07177 /* EditTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B68AF120DF58A1E00A07177 /* EditTool.cpp */; }; 3B8DE2400E1101E9000757BC /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B8DE23F0E1101E9000757BC /* AppKit.framework */; }; + 3BC5AD1B0E35E9FF00AAA94D /* InfoPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BC5AD170E35E9FF00AAA94D /* InfoPanel.cpp */; }; + 3BC5AD1C0E35E9FF00AAA94D /* MatrixEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BC5AD180E35E9FF00AAA94D /* MatrixEditor.cpp */; }; + 3BC5AD1D0E35E9FF00AAA94D /* ScoreEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BC5AD190E35E9FF00AAA94D /* ScoreEditor.cpp */; }; + 3BC5AD1E0E35E9FF00AAA94D /* ScoreTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BC5AD1A0E35E9FF00AAA94D /* ScoreTableView.cpp */; }; + 3BC5AD200E35EA2800AAA94D /* EditorContainerListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BC5AD1F0E35EA2800AAA94D /* EditorContainerListener.h */; }; 3BE201330DF3F5990072ED88 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BE201320DF3F5990072ED88 /* OpenGL.framework */; }; 3BE2017A0DF3F6AB0072ED88 /* BpfEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BE201600DF3F6AB0072ED88 /* BpfEditor.cpp */; }; 3BE2017C0DF3F6AB0072ED88 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BE201620DF3F6AB0072ED88 /* BpfTableView.cpp */; }; @@ -37,6 +42,11 @@ 3B68AF000DF5899E00A07177 /* Main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Main.cpp; sourceTree = SOURCE_ROOT; }; 3B68AF120DF58A1E00A07177 /* EditTool.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EditTool.cpp; sourceTree = "<group>"; }; 3B8DE23F0E1101E9000757BC /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; + 3BC5AD170E35E9FF00AAA94D /* InfoPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InfoPanel.cpp; sourceTree = "<group>"; }; + 3BC5AD180E35E9FF00AAA94D /* MatrixEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MatrixEditor.cpp; sourceTree = "<group>"; }; + 3BC5AD190E35E9FF00AAA94D /* ScoreEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreEditor.cpp; sourceTree = "<group>"; }; + 3BC5AD1A0E35E9FF00AAA94D /* ScoreTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreTableView.cpp; sourceTree = "<group>"; }; + 3BC5AD1F0E35EA2800AAA94D /* EditorContainerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditorContainerListener.h; sourceTree = "<group>"; }; 3BE201320DF3F5990072ED88 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; 3BE201600DF3F6AB0072ED88 /* BpfEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BpfEditor.cpp; sourceTree = "<group>"; }; 3BE201620DF3F6AB0072ED88 /* BpfTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BpfTableView.cpp; sourceTree = "<group>"; }; @@ -115,6 +125,7 @@ 3BE201630DF3F6AB0072ED88 /* CursorTool.cpp */, 3BE201640DF3F6AB0072ED88 /* EditorContainer.cpp */, 3BE201650DF3F6AB0072ED88 /* EditorContainer.h */, + 3BC5AD1F0E35EA2800AAA94D /* EditorContainerListener.h */, 3BE201660DF3F6AB0072ED88 /* EditorResizerBar.cpp */, 3BE201670DF3F6AB0072ED88 /* EditorResizerBar.h */, 3BE201680DF3F6AB0072ED88 /* EditorScrollBar.cpp */, @@ -125,9 +136,13 @@ 3BE2016E0DF3F6AB0072ED88 /* ImtrEditor.h */, 3BE2016F0DF3F6AB0072ED88 /* ImtrEditorListener.h */, 3BE201700DF3F6AB0072ED88 /* imtrjuce.h */, + 3BC5AD170E35E9FF00AAA94D /* InfoPanel.cpp */, 3BE201730DF3F6AB0072ED88 /* MarkersEditor.cpp */, 3BE201740DF3F6AB0072ED88 /* MarkersTableView.cpp */, + 3BC5AD180E35E9FF00AAA94D /* MatrixEditor.cpp */, 3BE201750DF3F6AB0072ED88 /* RegionTool.cpp */, + 3BC5AD190E35E9FF00AAA94D /* ScoreEditor.cpp */, + 3BC5AD1A0E35E9FF00AAA94D /* ScoreTableView.cpp */, 3BE201760DF3F6AB0072ED88 /* ScrollZoomListener.h */, 3BE201770DF3F6AB0072ED88 /* ScrollZoomTool.cpp */, 3BE201780DF3F6AB0072ED88 /* SpectrogramEditor.cpp */, @@ -169,6 +184,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 3BC5AD200E35EA2800AAA94D /* EditorContainerListener.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -240,6 +256,10 @@ 3BE201880DF3F6AB0072ED88 /* SpectrogramEditor.cpp in Sources */, 3B68AF010DF5899E00A07177 /* Main.cpp in Sources */, 3B68AF130DF58A1E00A07177 /* EditTool.cpp in Sources */, + 3BC5AD1B0E35E9FF00AAA94D /* InfoPanel.cpp in Sources */, + 3BC5AD1C0E35E9FF00AAA94D /* MatrixEditor.cpp in Sources */, + 3BC5AD1D0E35E9FF00AAA94D /* ScoreEditor.cpp in Sources */, + 3BC5AD1E0E35E9FF00AAA94D /* ScoreTableView.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -256,7 +276,10 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ../../../../components/juce; + HEADER_SEARCH_PATHS = ( + ../../common, + ../../../../components/juce, + ); INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-08-05 10:25:55
|
Revision: 1853 http://ftm.svn.sourceforge.net/ftm/?rev=1853&view=rev Author: borghesi Date: 2008-08-05 10:25:58 +0000 (Tue, 05 Aug 2008) Log Message: ----------- ftm.editor: ScoreEditor with images, waiting for a way to load ttf font Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/externals/max/ftm.editor.cpp trunk/ftm/gui/Juce/common/EditorContainer.cpp trunk/ftm/gui/Juce/common/EditorContainer.h trunk/ftm/gui/Juce/common/ScoreEditor.cpp trunk/ftm/gui/Juce/common/imtrjuce.h trunk/ftm/patches/max/help/ftm.editor.help Added Paths: ----------- trunk/ftm/gui/Juce/common/EditorRuler.cpp trunk/ftm/gui/Juce/common/ImtrEditorData.cpp trunk/ftm/gui/Juce/common/ImtrEditorData.h Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-04 18:10:32 UTC (rev 1852) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-05 10:25:58 UTC (rev 1853) @@ -192,9 +192,12 @@ 3B4E71160CC8E399006DFB5A /* MarkersTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */; }; 3B7073BE0713F12300764C51 /* ftm.list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B7073BD0713F04500764C51 /* ftm.list.c */; }; 3B8DE0FC0E10F962000757BC /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B8DE0FB0E10F962000757BC /* AppKit.framework */; }; + 3B95E85C0E40A49000B545D0 /* ImtrEditorData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B95E85A0E40A49000B545D0 /* ImtrEditorData.cpp */; }; + 3B95E85D0E40A49000B545D0 /* ImtrEditorData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B95E85B0E40A49000B545D0 /* ImtrEditorData.h */; }; 3B99E1280E349FB3000AF43F /* MatrixEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B99E1270E349FB3000AF43F /* MatrixEditor.cpp */; }; 3B9D37B30E1CD6CC002ED38C /* EditorContainerListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */; }; 3B9D37B40E1CD6CC002ED38C /* InfoPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */; }; + 3BA14D210E4755C500F1A083 /* EditorRuler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA14D200E4755C500F1A083 /* EditorRuler.cpp */; }; 3BA9E3B80E2513A500B88643 /* ScoreEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */; }; 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */; }; 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */; }; @@ -614,9 +617,12 @@ 3B4E71150CC8E399006DFB5A /* MarkersTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MarkersTableView.cpp; sourceTree = "<group>"; }; 3B7073BD0713F04500764C51 /* ftm.list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.list.c; sourceTree = "<group>"; }; 3B8DE0FB0E10F962000757BC /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; + 3B95E85A0E40A49000B545D0 /* ImtrEditorData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImtrEditorData.cpp; sourceTree = "<group>"; }; + 3B95E85B0E40A49000B545D0 /* ImtrEditorData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImtrEditorData.h; sourceTree = "<group>"; }; 3B99E1270E349FB3000AF43F /* MatrixEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MatrixEditor.cpp; sourceTree = "<group>"; }; 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditorContainerListener.h; sourceTree = "<group>"; }; 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InfoPanel.cpp; sourceTree = "<group>"; }; + 3BA14D200E4755C500F1A083 /* EditorRuler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorRuler.cpp; sourceTree = "<group>"; }; 3BA9E3B60E2513A500B88643 /* ScoreEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreEditor.cpp; sourceTree = "<group>"; }; 3BA9E3B70E2513A500B88643 /* ScoreTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreTableView.cpp; sourceTree = "<group>"; }; 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BpfTableView.cpp; sourceTree = "<group>"; }; @@ -1136,6 +1142,9 @@ 3B35E1920C05AD2600567CE9 /* Juce */ = { isa = PBXGroup; children = ( + 3BA14D200E4755C500F1A083 /* EditorRuler.cpp */, + 3B95E85A0E40A49000B545D0 /* ImtrEditorData.cpp */, + 3B95E85B0E40A49000B545D0 /* ImtrEditorData.h */, 3BBD0E010E261F6D0074EE11 /* BpfTableView.cpp */, 3B9D37B10E1CD6CC002ED38C /* EditorContainerListener.h */, 3B9D37B20E1CD6CC002ED38C /* InfoPanel.cpp */, @@ -1320,6 +1329,7 @@ 3BE7C48D0DEC385D00A0B7A5 /* ImtrEditor.h in Headers */, 3BE7C48E0DEC385D00A0B7A5 /* ImtrEditorListener.h in Headers */, 3B9D37B30E1CD6CC002ED38C /* EditorContainerListener.h in Headers */, + 3B95E85D0E40A49000B545D0 /* ImtrEditorData.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3146,6 +3156,8 @@ 3BA9E3B90E2513A500B88643 /* ScoreTableView.cpp in Sources */, 3BBD0E020E261F6D0074EE11 /* BpfTableView.cpp in Sources */, 3B99E1280E349FB3000AF43F /* MatrixEditor.cpp in Sources */, + 3B95E85C0E40A49000B545D0 /* ImtrEditorData.cpp in Sources */, + 3BA14D210E4755C500F1A083 /* EditorRuler.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: trunk/ftm/externals/max/ftm.editor.cpp =================================================================== --- trunk/ftm/externals/max/ftm.editor.cpp 2008-08-04 18:10:32 UTC (rev 1852) +++ trunk/ftm/externals/max/ftm.editor.cpp 2008-08-05 10:25:58 UTC (rev 1853) @@ -718,6 +718,18 @@ } } + void setRulerProperty(fts_symbol_t prop, int ac, fts_atom_t *at) + { + if(prop == fts_s_visible) + { + if(ac == 1 && fts_is_number(at)) + editorContainer->setRulerVisible((fts_get_number_int(at) == 1)); + } + else if(prop == fts_s_style) + { + post("waring: message 'style' for infopanel not yet implemented!"); + } + } void setDomain(fts_symbol_t prop, int ac, fts_atom_t *at) { @@ -1438,6 +1450,19 @@ } } static void +ftmeditor_set_ruler(t_object *o, Symbol *s, short ac, Atom *at) +{ + ftmeditor_t *self = (ftmeditor_t*)o; + if(self->container != NULL && ac > 0) + { + if(ac > 1 && fts_is_symbol(at)) + { + self->container->setRulerProperty(fts_get_symbol(at), ac-1, at+1); + qelem_set(self->x_qelem); + } + } +} +static void ftmeditor_set_layout(t_object *o, Symbol *s, short ac, Atom *at) { ftmeditor_t *self = (ftmeditor_t*)o; @@ -1715,6 +1740,7 @@ addmess((method)ftmeditor_get_editor_property, "get", A_GIMME, 0); addmess((method)ftmeditor_set_infopanel, "infopanel", A_GIMME, 0); + addmess((method)ftmeditor_set_ruler, "ruler", A_GIMME, 0); addmess((method)ftmeditor_set_layout, "layout", A_GIMME, 0); addmess((method)ftmeditor_set_split, "split", A_GIMME, 0); addmess((method)ftmeditor_set_orientation, "orientation", A_GIMME, 0); Modified: trunk/ftm/gui/Juce/common/EditorContainer.cpp =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-08-04 18:10:32 UTC (rev 1852) +++ trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-08-05 10:25:58 UTC (rev 1853) @@ -314,6 +314,7 @@ dscroll = NULL; infoPanel = NULL; + editorRuler = NULL; backcolor = /*JUCE_EDITOR_NAMESPACE::Colour(126, 132, 178)*/JUCE_EDITOR_NAMESPACE::Colours::white; selectionColorAsBackground = true; regionSelectionColor = backcolor.brighter(); @@ -334,6 +335,7 @@ infopanel_size = INFOPANEL_DEFAULT_SIZE; initInfoPanel(); + initEditorRuler(); InitContainer(); InitTools(); } @@ -618,6 +620,17 @@ addAndMakeVisible(infoPanel); } +void +EditorContainer::initEditorRuler() +{ + editorRuler = createEditorRuler(this); + editorRuler->setBoundsRelative(0.0f, 0.0f, 0.2f, 1.0f); + + if(ruler_visible) + addAndMakeVisible(editorRuler); +} + + JUCE_EDITOR_NAMESPACE::Colour EditorContainer::getDScrollColor() { @@ -967,6 +980,16 @@ else infoPanel->setBounds(0, 0, rect.getWidth(), infopanel_size); } + if(ruler_visible) + { + if(editorRuler == NULL) + initEditorRuler(); + + if(orientation == horizontal) + editorRuler->setBounds(0, 0, rect.getWidth(), RULER_DEFAULT_SIZE); + else + editorRuler->setBounds(0, 0, RULER_DEFAULT_SIZE, rect.getHeight()); + } if(layout == juxtaposed) { @@ -974,8 +997,8 @@ if(orientation == horizontal) { - float height = rect.getHeight(); - float y = 0.0f; + float height = (ruler_visible) ? rect.getHeight() - RULER_DEFAULT_SIZE : rect.getHeight(); + float y = (ruler_visible) ? RULER_DEFAULT_SIZE : 0.0f; float editor_x = (infopanel_visible) ? infopanel_size : 0; float editor_w = (infopanel_visible) ? rect.getWidth()-infopanel_size : rect.getWidth(); for(i = 0; i < editors.size(); i++) @@ -993,7 +1016,7 @@ } else { - float width = (float)rect.getWidth(); + float width = (ruler_visible) ? (float)rect.getWidth() - RULER_DEFAULT_SIZE : (float)rect.getWidth(); float x = width; float editor_y = (infopanel_visible) ? infopanel_size : 0; float editor_h = (infopanel_visible) ? rect.getHeight()-infopanel_size : rect.getHeight(); @@ -1019,9 +1042,12 @@ if(orientation == horizontal) { int editor_x = (infopanel_visible) ? infopanel_size : 0; + int editor_y = (ruler_visible) ? RULER_DEFAULT_SIZE : 0; int editor_w = (infopanel_visible) ? rect.getWidth()-infopanel_size : rect.getWidth(); int editor_h = (dscroll_visible) ? (rect.getHeight() - dscroll_size) : rect.getHeight(); - tabbedContainer->setBounds(editor_x, 0, editor_w, editor_h); + if(ruler_visible) editor_h = editor_h - RULER_DEFAULT_SIZE; + + tabbedContainer->setBounds(editor_x, editor_y, editor_w, editor_h); } else { @@ -1029,6 +1055,9 @@ int editor_x = (dscroll_visible) ? dscroll_size : 0; int editor_y = (infopanel_visible) ? infopanel_size : 0; int editor_h = (infopanel_visible) ? rect.getHeight() -infopanel_size : rect.getHeight(); + + if(ruler_visible) editor_w = editor_w - RULER_DEFAULT_SIZE; + tabbedContainer->setBounds(editor_x, editor_y, editor_w, editor_h); } } @@ -1406,6 +1435,25 @@ } /******************************************* + ________ editor Ruler _________________________ + ********************************************/ +void +EditorContainer::setRulerVisible(bool vis) +{ + if(editorRuler != NULL) + { + ruler_visible = vis; + + if(ruler_visible) + addAndMakeVisible(editorRuler); + else + removeChildComponent(editorRuler); + + resized(); + } +} + +/******************************************* ________ view _________________________ ********************************************/ Modified: trunk/ftm/gui/Juce/common/EditorContainer.h =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.h 2008-08-04 18:10:32 UTC (rev 1852) +++ trunk/ftm/gui/Juce/common/EditorContainer.h 2008-08-05 10:25:58 UTC (rev 1853) @@ -426,6 +426,22 @@ int getInfoPanelSize(){return infopanel_size;} /** @} InfoPanel properties */ + /** @name Ruler properties + * @{ */ + /** + * @brief hide/show the ruler + * @param vis whether to show or hide the ruler + * @ingroup EditorContainer + */ + void setRulerVisible(bool vis); + /** + * @brief returns true is ruler is visible + * @return if the ruler is visible + * @ingroup EditorContainer + */ + bool isRulerVisible(){return ruler_visible;} + /** @} InfoPanel properties */ + /** @name Domain * @{ */ /** @@ -780,6 +796,7 @@ void createScrollBar(); void initInfoPanel(); + void initEditorRuler(); void paint (JUCE_EDITOR_NAMESPACE::Graphics& g); void resized(); @@ -818,6 +835,11 @@ int infopanel_size; bool infopanel_visible; static const int INFOPANEL_DEFAULT_SIZE = /*55*/35; + + /* ruler */ + JUCE_EDITOR_NAMESPACE::Component *editorRuler; + bool ruler_visible; + static const int RULER_DEFAULT_SIZE = 15; /* tabs */ EditorTabbedContainer *tabbedContainer; Added: trunk/ftm/gui/Juce/common/EditorRuler.cpp =================================================================== --- trunk/ftm/gui/Juce/common/EditorRuler.cpp (rev 0) +++ trunk/ftm/gui/Juce/common/EditorRuler.cpp 2008-08-05 10:25:58 UTC (rev 1853) @@ -0,0 +1,67 @@ +/* + * IMTR EDITOR + * Copyright (C) 2004 by IRCAM-Centre Georges Pompidou, Paris, France. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * See file COPYING.LIB + for further informations on licensing terms. + * + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifdef DISABLE_JUCE_NAMESPACE +#define DONT_SET_USING_JUCE_NAMESPACE 1 +#endif + +#include "juce.h" +#include "imtrjuce.h" + +#include "juce.h" +#include "imtrjuce.h" + +class EditorRuler : public JUCE_EDITOR_NAMESPACE::Component, public EditorContainerListener +{ + EditorContainer *container; + +public: + EditorRuler(EditorContainer *container): container(container) + { + setOpaque(true); + setBufferedToImage(true); + + container->addEditorContainerListener(this); + } + + ~EditorRuler() + { + } + + void paint(JUCE_EDITOR_NAMESPACE::Graphics& g) + { + g.fillAll(container->getBackgroundColor()); + } + + void resized(){} + + void containerChanged() + { + repaint(); + } +}; + +JUCE_EDITOR_NAMESPACE::Component *createEditorRuler(EditorContainer *container) +{ + return new EditorRuler(container); +} \ No newline at end of file Property changes on: trunk/ftm/gui/Juce/common/EditorRuler.cpp ___________________________________________________________________ Added: svn:executable + * Added: trunk/ftm/gui/Juce/common/ImtrEditorData.cpp =================================================================== --- trunk/ftm/gui/Juce/common/ImtrEditorData.cpp (rev 0) +++ trunk/ftm/gui/Juce/common/ImtrEditorData.cpp 2008-08-05 10:25:58 UTC (rev 1853) @@ -0,0 +1,8105 @@ +#include "ImtrEditorData.h" + +//============================================================================== +// Binary resources - be careful not to edit any of these sections! + +// JUCER_RESOURCE: violin_h_png, 3314, "../../violin_h.png" +static const unsigned char score_violin_h_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,56,0,0,0,21,8,6,0,0,0,19,180,45,246,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11, +19,1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,21, +8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188, +247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192, +7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12, +0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194, +121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26, +128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192, +87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142, +68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225, +207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100, +128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8, +23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168, +55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12, +171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24, +98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32, +43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82, +175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103, +40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243, +85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188, +198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40, +167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206, +5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12, +88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38, +6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166, +89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125, +97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51, +227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219, +175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247, +97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122, +124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88, +157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168, +22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22, +154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90, +40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10, +227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134, +157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180, +13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236, +213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82, +143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155, +83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206, +223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238, +122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64, +237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167, +67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251, +237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0, +0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,2,29,73,68,65,84,120,218,220,87,209,109,227,48,12,125,28,193,43,104,5,221,8,234,8,185,17,188,130,58,66,86,80,71,72,71,240,141,96, +143,144,142,224,140,224,251,121,6,8,86,146,165,75,147,43,42,64,136,99,91,148,30,223,35,77,202,182,109,248,201,67,68,228,43,237,13,0,78,0,60,0,7,32,240,254,7,231,31,0,239,188,126,26,194,175,152,131,136, +68,17,89,69,100,107,152,103,174,193,19,230,221,12,122,0,23,94,191,3,88,0,220,212,51,79,86,237,184,1,120,5,240,246,157,25,244,100,45,30,188,231,68,36,21,216,156,30,201,102,78,102,19,15,19,26,192,93,249, +219,227,144,57,3,114,237,180,211,13,208,23,226,39,85,22,207,34,114,250,199,120,77,5,144,227,35,0,14,100,162,148,16,114,155,142,25,240,187,2,102,35,191,88,144,96,234,216,239,46,128,123,246,187,20,54,140, +5,246,92,70,174,37,39,149,164,220,2,210,81,41,145,103,156,212,60,243,126,168,1,156,148,129,22,128,142,0,45,96,205,84,238,179,177,118,130,76,116,204,213,128,42,57,114,229,26,103,1,174,60,208,144,73,0,185, +24,12,230,254,88,145,149,207,100,76,45,233,80,113,236,86,97,102,224,158,135,170,3,61,226,204,194,88,201,106,193,176,122,148,109,45,128,11,247,220,195,34,82,65,57,38,231,134,79,136,43,100,230,184,3,76, +157,129,29,120,176,163,207,193,200,24,153,51,135,118,133,117,169,35,126,45,163,185,175,192,176,31,248,218,1,208,198,160,87,89,117,86,82,60,43,249,218,50,173,135,113,29,46,53,54,83,198,49,131,126,152,26, +217,59,43,38,44,152,156,167,79,13,89,57,231,196,75,5,168,207,48,120,53,123,12,182,22,141,172,25,247,106,255,198,238,192,169,154,114,239,8,60,215,252,110,168,6,39,213,85,0,192,11,109,180,12,199,51,5,99, +99,175,101,23,85,243,46,180,251,166,106,225,79,197,246,110,208,241,165,155,50,180,152,182,104,38,192,165,114,192,4,96,84,255,23,0,191,238,40,157,29,167,30,31,213,246,235,142,42,97,172,148,87,129,210,125, +74,189,249,200,118,105,36,75,80,178,243,100,216,202,233,229,128,237,111,219,240,250,12,91,154,181,103,54,183,15,105,120,117,124,4,197,222,98,154,223,255,50,254,14,0,115,139,38,255,8,42,38,36,0,0,0,0,73, +69,78,68,174,66,96,130,0,0}; + +// JUCER_RESOURCE: violin_v_png, 3390, "../../violin_v.png" +static const unsigned char score_violin_v_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,21,0,0,0,56,8,6,0,0,0,18,37,179,126,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11, +19,1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,21, +8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188, +247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192, +7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12, +0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194, +121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26, +128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192, +87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142, +68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225, +207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100, +128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8, +23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168, +55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12, +171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24, +98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32, +43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82, +175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103, +40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243, +85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188, +198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40, +167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206, +5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12, +88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38, +6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166, +89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125, +97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51, +227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219, +175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247, +97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122, +124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88, +157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168, +22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22, +154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90, +40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10, +227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134, +157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180, +13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236, +213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82, +143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155, +83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206, +223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238, +122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64, +237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167, +67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251, +237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0, +0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,2,105,73,68,65,84,120,218,172,88,237,145,163,48,12,149,152,109,192,87,2,91,130,91,224,74,160,5,95,9,180,64,74,224,74,32,37,144,18, +160,4,167,132,80,130,239,143,152,245,106,37,35,135,99,38,147,25,227,60,235,227,233,73,14,166,148,160,105,26,168,120,28,125,239,234,142,148,18,32,162,245,51,32,98,66,196,136,136,78,219,87,3,122,0,30,159, +65,221,107,116,191,5,128,40,172,255,18,195,96,180,116,98,86,22,173,181,130,190,50,160,23,29,18,17,113,121,23,180,203,0,215,44,65,142,14,120,11,52,79,80,203,222,45,194,26,52,21,188,188,3,192,83,73,226, +183,199,2,234,233,251,81,120,87,13,10,153,165,28,208,93,1,125,10,124,12,87,202,116,22,168,227,10,201,51,89,186,9,107,35,243,162,218,253,167,16,203,80,72,158,201,253,150,170,231,112,59,254,175,50,141,84, +89,43,171,253,246,10,168,36,40,243,21,61,13,138,66,181,239,130,134,26,201,179,128,106,128,211,89,184,52,80,207,52,212,12,168,129,58,5,48,33,98,111,1,253,16,168,59,11,66,241,151,138,160,53,41,5,179,116, +40,184,220,149,104,164,185,47,185,61,9,97,169,2,29,13,228,142,37,126,242,190,207,251,250,6,0,191,5,13,157,41,174,15,122,183,137,162,66,150,242,88,122,129,98,139,194,136,149,239,63,64,151,2,23,125,129, +98,249,44,224,57,104,84,106,154,75,221,25,176,203,65,181,228,72,67,217,74,37,220,11,33,25,37,208,65,24,22,120,156,71,2,149,100,241,133,136,142,199,180,99,160,210,97,225,176,72,57,188,107,180,230,37,148, +105,78,55,62,68,220,242,30,214,176,142,233,148,78,186,179,181,142,237,123,228,123,154,204,146,93,176,224,94,56,204,107,6,52,204,133,94,81,167,96,0,253,178,154,9,74,20,24,224,51,26,149,146,149,142,73,134, +75,159,231,213,193,128,58,86,182,188,245,120,77,249,61,89,124,166,242,137,25,18,44,61,106,37,98,107,82,183,82,5,70,22,154,211,43,79,200,146,180,81,210,60,201,159,39,118,252,225,18,89,115,143,106,217,208, +22,8,236,118,245,26,201,111,45,203,149,27,159,246,68,0,248,188,50,243,107,3,241,143,34,248,56,249,81,200,74,244,86,0,221,172,49,157,12,35,79,47,13,107,26,104,167,180,12,47,236,27,173,23,137,94,89,239, +132,219,160,179,38,74,155,153,118,97,223,211,202,211,65,233,239,78,40,213,214,26,211,124,174,154,233,16,39,36,114,172,157,164,15,181,122,81,150,29,89,21,104,125,122,247,63,20,71,92,237,136,143,59,245, +163,187,122,49,3,128,127,3,0,139,9,138,209,217,244,10,10,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +// JUCER_RESOURCE: bass_h_png, 3091, "../../bass_h.png" +static const unsigned char score_bass_h_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,27,0,0,0,19,8,6,0,0,0,97,135,118,56,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19, +1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,21,8, +32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247, +230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192,7, +190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39,127, +230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,0,48, +81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194,121, +153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26,128, +59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192,87, +253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,68, +154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,207, +119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100,128, +28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8,23,153, +133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168,55,26, +132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,171,198, +26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24,98,50,49, +135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32,43,200,133, +228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82,175,81,135, +168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,40,25,155, +24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243,85,203,84, +143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188,198,32,11, +99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40,167,151, +243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206,5,157, +231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,88,6, +179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38,6,38, +33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166,89, +238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125,97, +103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,227, +182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219,175, +238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247,97, +239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122,124, +33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126,12, +39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,157, +88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168,22,140, +37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22,154,118, +32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90,40,215,42, +7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,227,21,5, +43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134,157,27, +62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180,13,223, +86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236,213, +219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82,143, +214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,83,154, +251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206,223, +106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238,122, +189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64,237, +65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167,67, +207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251,237, +193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,0,128, +233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,1,62,73,68,65,84,120,218,164,149,235,113,131,64,12,132,191,77,7,180,64,11,164,4,82,130,91,160,5,82,130,93,2,41,1,151,112,46,193,148,224, +148,0,37,144,63,194,115,17,28,195,67,51,59,195,160,19,210,174,116,66,146,90,224,6,116,156,179,50,122,238,128,97,118,66,82,46,233,37,41,147,196,1,20,22,63,58,52,254,155,31,192,47,240,3,4,32,59,192,168, +5,114,247,238,219,216,5,160,136,153,77,8,134,61,172,202,5,70,163,189,199,152,133,137,97,28,152,75,234,141,254,214,100,121,34,89,229,100,110,124,50,36,213,41,189,87,208,184,68,207,133,216,151,21,38,223, +131,6,168,76,243,175,197,169,154,91,97,211,56,0,247,133,152,0,60,150,42,205,172,186,209,100,45,15,78,169,103,86,167,156,113,194,81,210,245,196,213,168,166,62,174,29,242,9,123,235,233,214,164,89,52,3,163, +164,124,75,64,147,184,176,181,73,156,185,201,187,152,191,119,202,176,85,138,139,11,222,131,103,188,65,182,216,29,248,180,77,179,199,110,22,55,219,32,123,46,242,213,245,115,116,189,109,236,156,143,213, +201,101,79,17,237,212,97,245,239,113,98,211,183,134,34,49,84,193,122,253,246,29,77,22,34,217,66,98,229,77,96,239,128,120,139,165,122,172,248,58,167,162,206,244,138,68,143,114,195,191,66,254,6,0,126,149, +120,206,190,115,158,185,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +// JUCER_RESOURCE: bass_v_png, 3093, "../../bass_v.png" +static const unsigned char score_bass_v_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,19,0,0,0,27,8,6,0,0,0,158,3,180,161,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19, +1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,21,8, +32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247, +230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192,7, +190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39,127, +230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,0,48, +81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194,121, +153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26,128, +59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192,87, +253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,68, +154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,207, +119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100,128, +28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8,23,153, +133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168,55,26, +132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,171,198, +26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24,98,50,49, +135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32,43,200,133, +228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82,175,81,135, +168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,40,25,155, +24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243,85,203,84, +143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188,198,32,11, +99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40,167,151, +243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206,5,157, +231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,88,6, +179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38,6,38, +33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166,89, +238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125,97, +103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,227, +182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219,175, +238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247,97, +239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122,124, +33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126,12, +39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,157, +88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168,22,140, +37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22,154,118, +32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90,40,215,42, +7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,227,21,5, +43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134,157,27, +62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180,13,223, +86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236,213, +219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82,143, +214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,83,154, +251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206,223, +106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238,122, +189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64,237, +65,217,67,221,135,213,63,91,254... [truncated message content] |
From: <nsc...@us...> - 2008-08-21 16:18:41
|
Revision: 1865 http://ftm.svn.sourceforge.net/ftm/?rev=1865&view=rev Author: nschnell Date: 2008-08-21 15:42:09 +0000 (Thu, 21 Aug 2008) Log Message: ----------- added very first versions of Max 5 externals (for Alpha version based on FTM 2.3) Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.mode1v3 trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.pbxuser trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.mode1v3 trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.pbxuser trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj Added Paths: ----------- trunk/ftm/externals/max5/ trunk/ftm/externals/max5/ftm.mess.c trunk/ftm/externals/max5/ftm.object.c trunk/ftm/externals/max5/ftm.vecdisplay.c Modified: trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.mode1v3 =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.mode1v3 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.mode1v3 2008-08-21 15:42:09 UTC (rev 1865) @@ -197,48 +197,7 @@ <key>Notifications</key> <array/> <key>OpenEditors</key> - <array> - <dict> - <key>Content</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5CD5DEC20E18215E00C85139</string> - <key>PBXProjectModuleLabel</key> - <string>ftm.jitter.c</string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5CD5DEC30E18215E00C85139</string> - <key>PBXProjectModuleLabel</key> - <string>ftm.jitter.c</string> - <key>_historyCapacity</key> - <integer>0</integer> - <key>bookmark</key> - <string>5CD5DEC40E18215E00C85139</string> - <key>history</key> - <array> - <string>5CD5DEBD0E18213700C85139</string> - </array> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>Geometry</key> - <dict> - <key>Frame</key> - <string>{{0, 20}, {1120, 777}}</string> - <key>PBXModuleWindowStatusBarHidden2</key> - <false/> - <key>RubberWindowFrame</key> - <string>15 60 1120 818 0 0 1440 878 </string> - </dict> - </dict> - </array> + <array/> <key>PerspectiveWidths</key> <array> <integer>-1</integer> @@ -558,9 +517,9 @@ <integer>5</integer> <key>WindowOrderList</key> <array> + <string>5CD5DEC20E18215E00C85139</string> <string>5CD5DBA70E17D83600C85139</string> <string>/Users/schnell/Development/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj</string> - <string>5CD5DEC20E18215E00C85139</string> </array> <key>WindowString</key> <string>0 59 1440 819 0 0 1440 878 </string> Modified: trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.pbxuser =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.pbxuser 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmexternals-max5.xcodeproj/schnell.pbxuser 2008-08-21 15:42:09 UTC (rev 1865) @@ -61,10 +61,6 @@ PBXPerProjectTemplateStateSaveDate = 236462161; PBXWorkspaceStateSaveDate = 236462161; }; - perUserProjectItems = { - 5CD5DEBD0E18213700C85139 /* PBXTextBookmark */ = 5CD5DEBD0E18213700C85139 /* PBXTextBookmark */; - 5CD5DEC40E18215E00C85139 /* PBXTextBookmark */ = 5CD5DEC40E18215E00C85139 /* PBXTextBookmark */; - }; sourceControlManager = 5CD5DBA90E17D83700C85139 /* Source Control */; userBuildSettings = { }; @@ -163,29 +159,12 @@ sepNavIntBoundsRect = "{{0, 0}, {1061, 13472}}"; sepNavSelRange = "{21821, 0}"; sepNavVisRange = "{21301, 1255}"; + sepNavWindowFrame = "{{15, 4}, {1120, 874}}"; }; }; 5CD5DEB30E1820FC00C85139 /* todo */ = { activeExec = 0; }; - 5CD5DEBD0E18213700C85139 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "warning: passing argument 3 of 'maxext_init_raw' from incompatible pointer type"; - fRef = 5CD5DDA30E17FCAB00C85139 /* ftm.jitter.c */; - rLen = 1; - rLoc = 775; - rType = 1; - }; - 5CD5DEC40E18215E00C85139 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 5CD5DDA30E17FCAB00C85139 /* ftm.jitter.c */; - name = "ftm.jitter.c: 770"; - rLen = 0; - rLoc = 21821; - rType = 0; - vrLen = 1255; - vrLoc = 21301; - }; 5CEF80BA0AB157E500AE1943 /* additional */ = { activeExec = 0; }; Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-21 15:42:09 UTC (rev 1865) @@ -4152,12 +4152,14 @@ F47D6B1508A36696001D9636 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + PRODUCT_NAME = install; }; name = Debug; }; F47D6B1608A36696001D9636 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + PRODUCT_NAME = install; }; name = Release; }; Modified: trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.mode1v3 =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.mode1v3 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.mode1v3 2008-08-21 15:42:09 UTC (rev 1865) @@ -271,6 +271,7 @@ <array> <string>0867D691FE84028FC02AAC07</string> <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> <string>1C37FABC05509CD000000102</string> </array> <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> @@ -280,7 +281,7 @@ </array> </array> <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {185, 760}}</string> + <string>{{0, 0}, {185, 884}}</string> </dict> <key>PBXTopSmartGroupGIDs</key> <array/> @@ -292,14 +293,14 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {202, 778}}</string> + <string>{{0, 0}, {202, 902}}</string> <key>GroupTreeTableConfiguration</key> <array> <string>MainColumn</string> <real>185</real> </array> <key>RubberWindowFrame</key> - <string>0 59 1440 819 0 0 1440 878 </string> + <string>0 59 1280 943 0 0 1280 1002 </string> </dict> <key>Module</key> <string>PBXSmartGroupTreeModule</string> @@ -334,9 +335,9 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {1233, 0}}</string> + <string>{{0, 0}, {1073, 0}}</string> <key>RubberWindowFrame</key> - <string>0 59 1440 819 0 0 1440 878 </string> + <string>0 59 1280 943 0 0 1280 1002 </string> </dict> <key>Module</key> <string>PBXNavigatorGroup</string> @@ -354,18 +355,18 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 5}, {1233, 773}}</string> + <string>{{0, 5}, {1073, 897}}</string> <key>RubberWindowFrame</key> - <string>0 59 1440 819 0 0 1440 878 </string> + <string>0 59 1280 943 0 0 1280 1002 </string> </dict> <key>Module</key> <string>XCDetailModule</string> <key>Proportion</key> - <string>773pt</string> + <string>897pt</string> </dict> </array> <key>Proportion</key> - <string>1233pt</string> + <string>1073pt</string> </dict> </array> <key>Name</key> @@ -380,9 +381,9 @@ </array> <key>TableOfContents</key> <array> - <string>5CD5DDBC0E18010100C85139</string> + <string>5CD5DFB00E18492000C85139</string> <string>1CE0B1FE06471DED0097A5F4</string> - <string>5CD5DDBD0E18010100C85139</string> + <string>5CD5DFB10E18492000C85139</string> <string>1CE0B20306471E060097A5F4</string> <string>1CE0B20506471E060097A5F4</string> </array> @@ -516,10 +517,15 @@ <integer>5</integer> <key>WindowOrderList</key> <array> + <string>5CD5DFB90E18492000C85139</string> + <string>5CD5DFBA0E18492000C85139</string> + <string>5CD5DFBB0E18492000C85139</string> + <string>1C78EAAD065D492600B07095</string> + <string>1CD10A99069EF8BA00B06720</string> <string>/Users/schnell/Development/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj</string> </array> <key>WindowString</key> - <string>0 59 1440 819 0 0 1440 878 </string> + <string>0 59 1280 943 0 0 1280 1002 </string> <key>WindowToolsV3</key> <array> <dict> @@ -598,7 +604,7 @@ <key>TableOfContents</key> <array> <string>5CD5DB5F0E17D6D600C85139</string> - <string>5CD5DB600E17D6D600C85139</string> + <string>5CD5DE850E18200E00C85139</string> <string>1CD0528F0623707200166675</string> <string>XCMainBuildResultsModuleGUID</string> </array> @@ -612,8 +618,12 @@ <false/> </dict> <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> <key>Identifier</key> <string>windowTool.debugger</string> + <key>IsVertical</key> + <true/> <key>Layout</key> <array> <dict> @@ -636,8 +646,8 @@ <string>yes</string> <key>sizes</key> <array> - <string>{{0, 0}, {317, 164}}</string> - <string>{{317, 0}, {377, 164}}</string> + <string>{{0, 0}, {183, 251}}</string> + <string>{{183, 0}, {1097, 251}}</string> </array> </dict> <key>VerticalSplitView</key> @@ -652,8 +662,8 @@ <string>yes</string> <key>sizes</key> <array> - <string>{{0, 0}, {694, 164}}</string> - <string>{{0, 164}, {694, 216}}</string> + <string>{{0, 0}, {1280, 251}}</string> + <string>{{0, 251}, {1280, 650}}</string> </array> </dict> </dict> @@ -666,8 +676,6 @@ </dict> <key>GeometryConfiguration</key> <dict> - <key>DebugConsoleDrawerSize</key> - <string>{100, 120}</string> <key>DebugConsoleVisible</key> <string>None</string> <key>DebugConsoleWindowFrame</key> @@ -675,18 +683,34 @@ <key>DebugSTDIOWindowFrame</key> <string>{{200, 200}, {500, 300}}</string> <key>Frame</key> - <string>{{0, 0}, {694, 380}}</string> + <string>{{0, 0}, {1280, 901}}</string> + <key>PBXDebugSessionStackFrameViewKey</key> + <dict> + <key>DebugVariablesTableConfiguration</key> + <array> + <string>Name</string> + <real>120</real> + <string>Value</string> + <real>85</real> + <string>Summary</string> + <real>867</real> + </array> + <key>Frame</key> + <string>{{183, 0}, {1097, 251}}</string> + <key>RubberWindowFrame</key> + <string>0 60 1280 942 0 0 1280 1002 </string> + </dict> <key>RubberWindowFrame</key> - <string>321 238 694 422 0 0 1440 878 </string> + <string>0 60 1280 942 0 0 1280 1002 </string> </dict> <key>Module</key> <string>PBXDebugSessionModule</string> <key>Proportion</key> - <string>100%</string> + <string>901pt</string> </dict> </array> <key>Proportion</key> - <string>100%</string> + <string>901pt</string> </dict> </array> <key>Name</key> @@ -696,22 +720,26 @@ <string>PBXDebugSessionModule</string> </array> <key>StatusbarIsVisible</key> - <integer>1</integer> + <true/> <key>TableOfContents</key> <array> <string>1CD10A99069EF8BA00B06720</string> - <string>1C0AD2AB069F1E9B00FABCE6</string> + <string>5CD5DFB20E18492000C85139</string> <string>1C162984064C10D400B95A72</string> - <string>1C0AD2AC069F1E9B00FABCE6</string> + <string>5CD5DFB30E18492000C85139</string> + <string>5CD5DFB40E18492000C85139</string> + <string>5CD5DFB50E18492000C85139</string> + <string>5CD5DFB60E18492000C85139</string> + <string>5CD5DFB70E18492000C85139</string> </array> <key>ToolbarConfiguration</key> <string>xcode.toolbar.config.debugV3</string> <key>WindowString</key> - <string>321 238 694 422 0 0 1440 878 </string> + <string>0 60 1280 942 0 0 1280 1002 </string> <key>WindowToolGUID</key> <string>1CD10A99069EF8BA00B06720</string> <key>WindowToolIsVisible</key> - <integer>0</integer> + <false/> </dict> <dict> <key>Identifier</key> @@ -817,8 +845,12 @@ <string>MENUSEPARATOR</string> </dict> <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> <key>Identifier</key> <string>windowTool.debuggerConsole</string> + <key>IsVertical</key> + <true/> <key>Layout</key> <array> <dict> @@ -826,7 +858,7 @@ <array> <dict> <key>BecomeActive</key> - <integer>1</integer> + <true/> <key>ContentConfiguration</key> <dict> <key>PBXProjectModuleGUID</key> @@ -837,9 +869,9 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {650, 250}}</string> + <string>{{0, 0}, {650, 209}}</string> <key>RubberWindowFrame</key> - <string>516 632 650 250 0 0 1680 1027 </string> + <string>1301 750 650 250 1280 124 1440 900 </string> </dict> <key>Module</key> <string>PBXDebugCLIModule</string> @@ -858,21 +890,21 @@ <string>PBXDebugCLIModule</string> </array> <key>StatusbarIsVisible</key> - <integer>1</integer> + <true/> <key>TableOfContents</key> <array> <string>1C78EAAD065D492600B07095</string> - <string>1C78EAAE065D492600B07095</string> + <string>5CD5DFB80E18492000C85139</string> <string>1C78EAAC065D492600B07095</string> </array> <key>ToolbarConfiguration</key> <string>xcode.toolbar.config.consoleV3</string> <key>WindowString</key> - <string>650 41 650 250 0 0 1280 1002 </string> + <string>1301 750 650 250 1280 124 1440 900 </string> <key>WindowToolGUID</key> <string>1C78EAAD065D492600B07095</string> <key>WindowToolIsVisible</key> - <integer>0</integer> + <false/> </dict> <dict> <key>Identifier</key> Modified: trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.pbxuser =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.pbxuser 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmlib-max5.xcodeproj/schnell.pbxuser 2008-08-21 15:42:09 UTC (rev 1865) @@ -3,17 +3,35 @@ 0867D690FE84028FC02AAC07 /* Project object */ = { activeArchitecture = i386; activeBuildConfigurationName = Debug; + activeExecutable = 5CD5DFA90E18490A00C85139 /* debug runtime */; activeTarget = 8D07F2BC0486CC7A007CD1D0 /* ftmlib */; addToTargets = ( ); codeSenseManager = 5CD5DB650E17D6D800C85139 /* Code sense */; + executables = ( + 5CD5DFA90E18490A00C85139 /* debug runtime */, + ); perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; + PBXFileTableDataSourceColumnWidthsKey = ( + 22, + 300, + 722, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXExecutablesDataSource_ActiveFlagID, + PBXExecutablesDataSource_NameID, + PBXExecutablesDataSource_CommentsID, + ); + }; PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 994, + 834, 20, 48, 43, @@ -52,16 +70,30 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 236462087; - PBXWorkspaceStateSaveDate = 236462087; + PBXPerProjectTemplateStateSaveDate = 236472524; + PBXWorkspaceStateSaveDate = 236472524; }; sourceControlManager = 5CD5DB640E17D6D800C85139 /* Source Control */; userBuildSettings = { }; }; + 5C0B80C0082E1D0500E7F7D3 /* maxext.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1219, 20176}}"; + sepNavSelRange = "{5017, 0}"; + sepNavVisRange = "{4586, 739}"; + }; + }; 5C209E120D0EDF8200BF135F /* libftm */ = { activeExec = 0; }; + 5C5F07D1078218BA00A59DE2 /* ftmext.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1379, 25408}}"; + sepNavSelRange = "{31869, 0}"; + sepNavVisRange = "{32155, 472}"; + }; + }; 5C7009230B836A3F001663C7 /* libftmlight */ = { activeExec = 0; }; @@ -79,6 +111,57 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; + 5CD5DFA90E18490A00C85139 /* debug runtime */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 1; + configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + commandLineArgs = ( + ); + displayName = "Executable Runner"; + environment = { + }; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + launchableReference = 5CD5DFAA0E18490A00C85139 /* MaxMSP Runtime.app */; + libgmallocEnabled = 0; + name = "debug runtime"; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + }; + }; + 5CD5DFAA0E18490A00C85139 /* MaxMSP Runtime.app */ = { + isa = PBXFileReference; + lastKnownFileType = wrapper.application; + name = "MaxMSP Runtime.app"; + path = "/Applications/Max5/MaxMSP Runtime.app"; + sourceTree = "<absolute>"; + }; 8D07F2BC0486CC7A007CD1D0 /* ftmlib */ = { activeExec = 0; }; Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-14 13:56:46 UTC (rev 1864) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-21 15:42:09 UTC (rev 1865) @@ -1038,7 +1038,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#rm -Rf $FRAMEWORK_PATH/FTMlib.framework\n#cp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $FRAMEWORK_PATH\nrm -Rf $EXTERNALS_DIR/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $EXTERNALS_DIR\n\nmkdir $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nif [ -e \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" ] ; then\n\tcp -f \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\ncd $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nFTMLIB_FRAMEWORK=`otool -L libftmJNILib.jnilib | grep FTM | awk '{print $1}'`\n\necho \"[patching dynamic library\"\necho \" from '$FTMLIB_FRAMEWORK'\"\necho \" to '@loader_path/../../FTMLib'\"\necho \" in 'libftmJNILib.jnilib']\"\n\ninstall_name_tool -change $FTMLIB_FRAMEWORK '@loader_path/../../FTMLib' libftmJNILib.jnilib\n\nfi\n"; + shellScript = "rm -Rf $FRAMEWORK_PATH/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $FRAMEWORK_PATH\nrm -Rf $EXTERNALS_DIR/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $EXTERNALS_DIR\n\nmkdir $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nif [ -e \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" ] ; then\n\tcp -f \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\ncd $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nFTMLIB_FRAMEWORK=`otool -L libftmJNILib.jnilib | grep FTM | awk '{print $1}'`\n\necho \"[patching dynamic library\"\necho \" from '$FTMLIB_FRAMEWORK'\"\necho \" to '@loader_path/../../FTMLib'\"\necho \" in 'libftmJNILib.jnilib']\"\n\ninstall_name_tool -change $FTMLIB_FRAMEWORK '@loader_path/../../FTMLib' libftmJNILib.jnilib\n\nfi\n"; }; 5C132586078C2B510008A86A /* ShellScript */ = { isa = PBXShellScriptBuildPhase; Added: trunk/ftm/externals/max5/ftm.mess.c =================================================================== --- trunk/ftm/externals/max5/ftm.mess.c (rev 0) +++ trunk/ftm/externals/max5/ftm.mess.c 2008-08-21 15:42:09 UTC (rev 1865) @@ -0,0 +1,1635 @@ +/* + * FTM externals + * Copyright (C) 2004 by IRCAM-Centre Georges Pompidou, Paris, France. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * See file COPYING.LIB + for further informations on licensing terms. + * + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#include <string.h> + +#ifndef WIN32 +#include <alloca.h> +#else +#include <malloc.h> +#endif + +#include <string.h> + +#include "ftmlib.h" + +#include "ext.h" // standard Max include, always required +#include "ext_obex.h" // required for new style Max object +#include "jpatcher_api.h" +#include "jgraphics.h" + +#define MAX_NUMLINES 128 +#define MAX_NUMCHARS_LINE 1024 + +#define FTMMESS_INVALID -1 +#define FTMMESS_RESET 0 +#define FTMESS_FLASHING 1 +#define FTMMESS_FSIZE(f) ((int)(f&0xFF)) +#define FTMMESS_FINDEX(f) ((int)((f)>>16)) + +static fts_symbol_t sym_ftm_mess = NULL; +static fts_symbol_t sym_restore_line = NULL; +static fts_symbol_t sym_restore_init = NULL; + +static fts_status_description_t not_initialized_description = {"not initialized"}; +static fts_status_t not_initialized_status = ¬_initialized_description; + +typedef struct +{ + fts_symbol_t *ptr; + int alloc; + int size; +} lines_t; + +typedef struct +{ + char *ptr; + int alloc; + int size; +} text_t; + +typedef struct ftmmess +{ + ftmext_t head; + + int loadbang; + enum {trigger_left, trigger_all} trigger; + int untuple; + + int n_inlets; + int n_inlets_next; + int n_dollars; + + fts_array_t args; + fts_array_t args_tail; /* fake array referring to input array for $| */ + fts_array_t *lists; /* array of list inputs */ + fts_hashtable_t privates; + + fts_expression_t *init_expression; + fts_status_t init_parser_status; + fts_status_t init_status; + fts_symbol_t init_sym; + fts_array_t init_args; + fts_array_t *init_lists; + + fts_expression_t *expression; + fts_status_t parser_status; + fts_status_t evaluation_status; /* evaluation status (shows runtime evaluation error) */ + + int changed; /* 1 if text changed after activation */ + int loadlines; + + text_t text; + lines_t lines; + + fts_mutex_t mutex; + + int pressed; + + long inlet; + void **inlets; + void *outlet; + //void *x_qelem; +} ftmmess_t; + +#define ftmmess_get_box(e) ((e)->head.head.head.z_box) + +/*************************************************************** + * + * list input caches + * + */ + +#define DEF_SYM_LIST_INPUT 64 +static int n_sym_lists = 0; +static fts_symbol_t sym_lists[DEF_SYM_LIST_INPUT]; + +static fts_symbol_t +get_lists_symbol_by_index(int i) +{ + if(i >= n_sym_lists) + { + char str[4]; + snprintf(str, 4, "*%d", i + 1); + return fts_new_symbol(str); + } + + return sym_lists[i]; +} + +/************************************************************ + * + * lines + * + */ +#define LINES_BLOCK_SIZE 2 +#define lines_get_ptr(l) ((l)->ptr) +#define lines_get_size(l) ((l)->size) + +static void +lines_init(lines_t *lines) +{ + lines->ptr = NULL; + lines->alloc = 0; + lines->size = 0; +} + +static void +lines_reset(lines_t *lines) +{ + lines->size = 0; +} + +static void +lines_set_size(lines_t *lines, int size) +{ + int alloc = size; + + if(alloc > lines->alloc) + { + while(alloc > lines->alloc) + lines->alloc += LINES_BLOCK_SIZE; + + lines->ptr = (fts_symbol_t *)fts_realloc(lines->ptr, sizeof(fts_symbol_t) * lines->alloc); + } + + lines->size = size; +} + +static void +lines_add_line(lines_t *lines, fts_symbol_t line) +{ + int size = lines->size + 1; + + if(size > lines->alloc) + { + lines->alloc = (size > 2 * lines->alloc)? (2 * size): (2 * lines->alloc); + lines->ptr = (fts_symbol_t *)fts_realloc(lines->ptr, lines->alloc * sizeof(fts_symbol_t)); + } + + lines->ptr[size - 1] = line; + lines->size = size; +} + +static void +lines_set_from_string(lines_t *lines, char *str) +{ + char buf[1024 + 1 + 16]; + int n_par = 0; + int n_token = 0; + int n_sep = 0; + int n_blanks = 0; + int len = 0; + char *line = buf + 8; + char c = 'x'; + enum {c_line, c_sep, c_blank, c_char, c_end} last = c_line; + int i; + + lines->size = 0; + + while(c != '\0') + { + c = *str++; + + if(c == '\r' || c == '\0') + { + /* char is end of line */ + + /* no blanks before new line or end */ + len -= n_blanks; + n_blanks = 0; + + if(last == c_line) + continue; + + if(c == '\r') + last = c_line; + else if(c == '\0') + last = c_end; + } + else if(c == ',' || c == ';') + { + /* char is separator */ + + /* no blanks before separator */ + len -= n_blanks; + n_blanks = 0; + + if(n_token == 0) + continue; + + last = c_sep; + } + else if(c == ' ' || c == '\t') + { + /* char is blank */ + line[len++] = ' '; + + if(last == c_char) + last = c_blank; + + n_blanks++; + + continue; + } + else + { + /* char is token */ + if(last != c_char) + n_token++; + + if (c == ')' && n_par > -8) + n_par--; + else if(c == '(' && n_par < 8) + n_par++; + + line[len++] = c; + last = c_char; + + n_blanks = 0; + + continue; + } + + /* avoid accidental emtpy lines at the end */ + if(last == c_line && str[0] == '\0') + { + c = '\0'; + last = c_end; + } + + /* fix last character */ + if(last == c_end && len > 0) + { + while(line[len-1] == ' '|| line[len-1] == '\r'|| line[len-1] == '\t' || line[len-1] == ',') + len--; + + last = c_end; + } + + /* fix parentheses */ + if(n_par < 0 && (last == c_sep || last == c_line || last == c_end)) + { + if(line[0] != ' ' && n_sep == 0) + { + for(i=0; i<-n_par; i++) + { + /* prepend parentheses */ + line--; + line[0] = '('; + len++; + } + } + + n_par = 0; + } + else if(n_par > 0 && (last == c_sep || last == c_end)) + { + for(i=0; i<n_par; i++) + line[len++] = ')'; + + n_par = 0; + } + + if(last == c_sep) + { + /* expression separator */ + n_sep++; /* count separators */ + n_token = 0; /* restart counting tokens */ + line[len++] = c; + } + else if(last == c_line || last == c_end) + { + if(len > 0) + { + if(len > 1024) + len = 1024; + + line[len] = '\0'; + + lines_add_line(lines, fts_new_symbol(line)); + } + + /* reset line */ + line = buf + 8; + len = 0; + } + } +} + +static void +lines_destroy(lines_t *lines) +{ + fts_free(lines->ptr); +} + +/******************************************************************** + * + * text + * + */ +#define TEXT_BLOCK_SIZE 256 +#define text_get_ptr(t) ((t)->ptr) +#define text_get_size(t) ((t)->size) + +static void +text_init(text_t *text) +{ + text->ptr = NULL; + text->alloc = 0; + text->size = 0; +} + +static void +text_reset(text_t *text) +{ + text->size = 0; +} + +static void +text_set_size(text_t *text, int size) +{ + int alloc = size + 1; + + if(alloc > text->alloc) + { + while(alloc > text->alloc) + text->alloc += TEXT_BLOCK_SIZE; + + text->ptr = (char *)fts_realloc(text->ptr, sizeof(char) * text->alloc); + } + + text->ptr[size] = '\0'; + text->size = size; +} + +static void +text_append_char(text_t *text, char c) +{ + int size = text->size; + + text_set_size(text, size + 1); + + text->ptr[size] = c; +} + +static void +text_append_string(text_t *text, const char *str) +{ + if(str != NULL) + { + int n = strlen(str); + int size = text->size; + + text_set_size(text, size + n); + strcpy(text->ptr + size, str); + } +} + +static void +text_append_lines(text_t *text, lines_t *lines) +{ + fts_symbol_t *syms = lines_get_ptr(lines); + int n = lines_get_size(lines); + + if(n > 0) + { + int i; + + text_append_string(text, fts_symbol_name(syms[0])); + + for(i=1; i<n; i++) + { + text_append_char(text, '\r'); + text_append_string(text, fts_symbol_name(syms[i])); + } + text_append_char(text, '\r'); + } +} + +static void +text_destroy(text_t *text) +{ + fts_free(text->ptr); +} + +/******************************************************** + * + * FTM Max/MSP message sending + * + */ +static void +outlet_atom(void *outlet, fts_atom_t *a) +{ + if(fts_is_int(a)) + outlet_int(outlet, fts_get_int(a)); + else if(fts_is_float(a)) + outlet_float(outlet, fts_get_float(a)); + else if(fts_is_symbol(a)) + outlet_anything(outlet, fts_get_symbol(a), 0, NULL); + else if(fts_is_object(a)) + outlet_anything(outlet, ftm_sym_obj, 1, a); +} + +static int +send_to_named(fts_symbol_t dest, int ac, const fts_atom_t *at) +{ + void *thing = dest->s_thing; + + if(thing != NULL) + { + if(ac > 0 && fts_is_symbol(at)) + { + fts_symbol_t s = fts_get_symbol(at); + return (typedmess(thing, s, ac - 1, (fts_atom_t *)at + 1) != NULL); + } + else + return (typedmess(thing, fts_s_list, ac, (fts_atom_t *)at) != NULL); + } + + return 0; +} + +static fts_status_t +expression_callback(int ac, const fts_atom_t *at, const fts_atom_t *dest, void *o) +{ + ftmmess_t *self = (ftmmess_t *)o; + int out = 0; + + if(fts_is_void(dest)) + out = 1; + if(fts_is_int(dest)) + out = fts_get_int(dest); + else if(fts_is_object(dest)) + { + fts_object_t *target = fts_get_object(dest); + + if(ac > 0 && fts_is_symbol(at)) + { + fts_symbol_t selector = fts_get_symbol(at); + + /* leave critical section for sending message */ + fts_mutex_unlock(&self->mutex); + fts_send_message(target, selector, ac - 1, at + 1, fts_nix); + fts_mutex_lock(&self->mutex); + + return fts_ok; + } + } + + if(out == 1) + { + if(self->untuple != 0 && ac == 1 && fts_is_tuple(at)) + { + fts_tuple_t *tuple = (fts_tuple_t *)fts_get_object(at); + ac = fts_tuple_get_size(tuple); + at = fts_tuple_get_atoms(tuple); + } + + if(ac > 0) + { + /* leave critical section for callback */ + fts_mutex_unlock(&self->mutex); + + if (fts_is_symbol(at)) + outlet_anything(self->outlet, fts_get_symbol(at), ac - 1, (fts_atom_t *)at + 1); + else if(ac == 1) + outlet_atom(self->outlet, (fts_atom_t *)at); + else + outlet_list(self->outlet, NULL, ac, (fts_atom_t *)at); + + /* re-enter critical section for evaluation of next term */ + fts_mutex_lock(&self->mutex); + } + } + else if(fts_is_symbol(dest)) + { + fts_symbol_t name = fts_get_symbol(dest); + + /* leave critical section for sending message */ + fts_mutex_unlock(&self->mutex); + send_to_named(name, ac, at); + fts_mutex_lock(&self->mutex); + } + else + ftmext_error((ftmext_t *)self, "multiple outlets not yet implemented"); + + return fts_ok; +} + + +static void +expression_eval(ftmmess_t *self) +{ + if(self->parser_status == fts_ok) + { + int n = fts_array_get_size(&self->args); + fts_atom_t *values = fts_array_get_atoms(&self->args); + fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_status_t status; + + fts_expression_set_privates(self->expression, &self->privates); + status = fts_expression_reduce(self->expression, scope, n, values, expression_callback, (void *)self); + + if(status != fts_ok && status != fts_ignore) + { + ftmext_error((ftmext_t *)self, "%s in \"%s\"", fts_status_get_description(status), self->text.ptr); + self->evaluation_status = status; + } + else + self->evaluation_status = fts_ok; + } + else if(self->parser_status != fts_ok) + ftmext_error((ftmext_t *)self, "invalid expression: %s", fts_status_get_description(self->parser_status)); +} + +static void +ftmmess_bang(ftmmess_t *self) +{ + fts_mutex_lock(&self->mutex); + expression_eval(self); + fts_mutex_unlock(&self->mutex); +} + +static void +ftmmess_loadbang(ftmmess_t *self) +{ + if(self->loadbang) + { + fts_mutex_lock(&self->mutex); + expression_eval(self); + fts_mutex_unlock(&self->mutex); + } +} + +static void +ftmmess_reset(ftmmess_t *self) +{ + lines_reset(&self->lines); + text_reset(&self->text); + + fts_expression_set(self->expression, 0, NULL); + self->parser_status = fts_ok; +} + +/******************************************************************** + * + * persistence + * + */ +static fts_symbol_t +symbol_add_leading_underscore(fts_symbol_t sym) +{ + char *str = (char *)fts_symbol_name(sym); + + if(str[0] != '_') + { + int len = strlen(str); + char *buf = (char *)alloca(sizeof(char) * (len + 2)); + + buf[0] = '_'; + strcpy(buf + 1, str); + + return fts_new_symbol(buf); + } + + return sym; +} + +static fts_symbol_t +symbol_remove_leading_underscore(fts_symbol_t sym) +{ + char *str = (char *)fts_symbol_name(sym); + + if(str[0] == '_') + return fts_new_symbol(str + 1); + + return sym; +} + +static void +ftmmess_save(ftmmess_t *self, void *binbuf) +{ + int n_lines = lines_get_size(&self->lines); + fts_symbol_t *lines = lines_get_ptr(&self->lines); + fts_atom_t a[21]; + short i; + + /* + fts_set_int(a + 2, r.left); + fts_set_int(a + 3, r.top); + fts_set_int(a + 4, r.right - r.left); + fts_set_int(a + 5, r.bottom - r.top); + fts_set_int(a + 6, self->font); + fts_set_int(a + 7, self->fsize); + fts_set_int(a + 8, self->backColor.red / 257); + fts_set_int(a + 9, self->backColor.green / 257); + fts_set_int(a + 10, self->backColor.blue / 257); + fts_set_int(a + 11, self->foreColor.red / 257); + fts_set_int(a + 12, self->foreColor.green / 257); + fts_set_int(a + 13, self->foreColor.blue / 257); + fts_set_int(a + 14, n_lines); + fts_set_int(a + 15, self->n_inlets_next); + fts_set_int(a + 16, self->trigger); + fts_set_int(a + 17, self->loadbang); + fts_set_int(a + 18, self->untuple); + */ + + /* add here if anything */ + //fts_set_symbol(a + 19, maxext_sym_arrow_right); + //fts_set_int(a + 20, scope_depth); + //binbuf_insert(binbuf, 0, 21, a); + + maxext_save_begin((ftmext_t *)self, binbuf); + + if(self->init_sym != NULL) + { + fts_set_symbol(a, maxext_sym_hash_T); + fts_set_symbol(a + 1, sym_restore_init); + fts_set_symbol(a + 2, symbol_add_leading_underscore(self->init_sym)); + binbuf_insert(binbuf, 0, 3, a); + } + + for(i=0; i<n_lines; i++) + { + fts_set_symbol(a, maxext_sym_hash_T); + fts_set_symbol(a + 1, sym_restore_line); + fts_set_symbol(a + 2, symbol_add_leading_underscore(lines[i])); + binbuf_insert(binbuf, 0, 3, a); + } + + maxext_save_end((ftmext_t *)self); +} + +static void +ftmmess_pstate(ftmmess_t *self, void *binbuf) +{ + fts_atom_t a[12]; + + fts_set_symbol(a, sym_ftm_mess); + //fts_set_int(a + 1, self->backColor.red / 257); /* rgb colors in 0 - 65535 */ + //fts_set_int(a + 2, self->backColor.green / 257); + //fts_set_int(a + 3, self->backColor.blue / 257); + //fts_set_int(a + 4, self->foreColor.red / 257); + //fts_set_int(a + 5, self->foreColor.green / 257); + //fts_set_int(a + 6, self->foreColor.blue / 257); + fts_set_int(a + 7, self->n_inlets_next); + fts_set_int(a + 8, self->trigger); + fts_set_int(a + 9, self->loadbang); + fts_set_int(a + 10, self->untuple); + + if(self->init_sym == NULL) + binbuf_insert(binbuf, 0, 11, a); + else + { + fts_set_symbol(a + 11, self->init_sym); + fts_set_int(a + 12, self->init_status == fts_ok); + binbuf_insert(binbuf, 0, 13, a); + } +} + +/******************************************************************** + * + * user methods + * + */ + +static void +ftmmess_anything(ftmmess_t *self, fts_symbol_t s, int ac, fts_atom_t *at) +{ + int inlet = proxy_getinlet((t_object *)self); + int i; + + fts_mutex_lock(&self->mutex); + + if(s == NULL) + { + fts_array_set(self->lists + inlet, ac, at); + + for(i=0; i<ac; i++) + fts_array_set_element(&self->args, inlet + i, at + i); + } + else + { + fts_atom_t a; + + fts_set_symbol(&a, s); + fts_array_set(self->lists + inlet, 1, &a); + fts_array_append(self->lists + inlet, ac, at); + + fts_array_set_element(&self->args, inlet, &a); + + for(i=0; i<ac; i++) + fts_array_set_element(&self->args, inlet + 1 + i, at + i); + } + + /* update fake array for $| */ + if(self->args.size > 1) + { + self->args_tail.atoms = self->args.atoms + 1; + self->args_tail.size = self->args.size - 1; + } + else + { + self->args_tail.atoms = NULL; + self->args_tail.size = 0; + } + + if(inlet == 0 || self->trigger == trigger_all) + expression_eval(self); + + fts_array_set_size(&self->args, self->n_inlets); + + fts_mutex_unlock(&self->mutex); +} + +static void +ftmmess_object(ftmmess_t *self, fts_symbol_t s, int ac, fts_atom_t *at) +{ + ftmmess_anything(self, NULL, 1, at); +} + +static void +ftmmess_list(ftmmess_t *self, fts_symbol_t s, int ac, fts_atom_t *at) +{ + ftmmess_anything(self, NULL, ac, at); +} + +static void +ftmmess_float(ftmmess_t *self, double f) +{ + fts_atom_t a; + + fts_set_float(&a, f); + ftmmess_anything(self, NULL, 1, &a); +} + +static void +ftmmess_int(ftmmess_t *self, int i) +{ + fts_atom_t a; + + fts_set_int(&a, i); + ftmmess_anything(self, NULL, 1, &a); +} + +static void +ftmmess_assist(ftmmess_t *self, void *box, long msg, long arg, char *dstString) +{ + if(self->parser_status == fts_ok && self->init_status == fts_ok) + { + if(msg == ASSIST_INLET) + { + if(arg == 0) + sprintf(dstString, "ftm.mess: set $1, evaluate and output"); + else if(self->trigger == trigger_left) + sprintf(dstString, "ftm.mess: set $%d", arg + 1); + else + sprintf(dstString, "ftm.mess: set $%d, evaluate and output", arg + 1); + } + else if(msg == ASSIST_OUTLET) + { + if(self->trigger == trigger_left) + sprintf(dstString, "ftm.mess: message evaluation result (left inlet triggers)"); + else + sprintf(dstString, "ftm.mess: message evaluation result (all inlets trigger)"); + } + } + else if(self->parser_status != fts_ok) + sprintf(dstString, "ftm.mess: %s", fts_status_get_description(self->parser_status)); + else if(self->init_status != fts_ok) + sprintf(dstString, "ftm.mess: init: %s", fts_status_get_description(self->init_status)); +} + +/************************************************************ + * + * expression + * + */ +static int +count_dollars(char *str) +{ + int max_index = 0; + int len = strlen(str); + int dollar = 0; + int index = 0; + int j; + + for(j=0; j<len; j++) + { + char c = str[j]; + + if(c == '$') + { + index = 0; + dollar = 1; + + /* get "$" or "$*" */ + if(j < len - 1 && str[j + 1] == '*') + j++; + } + else if(c >= '0' && c <= '9' && dollar != 0) + { + index *= 10; + index += (c - '0'); + } + else + dollar = 0; + + if(index > max_index) + max_index = index; + } + + return max_index; +} + +static fts_symbol_t +get_list_symbol_by_index(int i) +{ + if(i >= n_sym_lists) + { + char str[4]; + snprintf(str, 4, "*%d", i + 1); + return fts_new_symbol(str); + } + + return sym_lists[i]; +} + +static int +get_list_index(fts_symbol_t sym) +{ + char *str = fts_symbol_name(sym); + int idx = -1; + + if(str[0] == '*') + { + int i = 1; + + idx = 0; + + while(str[i] != '\0' && str[i] >= '0' && str[i] <= '9') + { + idx *= 10; + idx += str[i] - '0'; + i++; + } + } + + return idx - 1; +} + +static void +init_input(ftmmess_t *self) +{ + fts_atom_t *init_args = fts_array_get_atoms(&self->init_args); + int n_init_args = fts_array_get_size(&self->init_args); + int n_inlets = self->n_inlets; + fts_atom_t k, v; + fts_atom_t *a; + int i; + + if(n_init_args > n_inlets) + n_init_args = n_inlets; + + /* init inputs */ + fts_array_set(&self->args, n_init_args, init_args); + fts_array_set_size(&self->args, n_inlets); + a = fts_array_get_atoms(&self->args); + + /* set uninitialized values to zero */ + for(i=n_init_args; i<n_inlets; i++) + fts_set_int(a + i, 0); + + /* initialize all input private $* */ + fts_set_symbol(&k, fts_s_times); + fts_set_pointer(&v, &self->args); + fts_hashtable_put(&self->privates, &k, &v); + + /* initialize list tail input private $| */ + fts_set_symbol(&k, fts_s_bit_or); + fts_set_pointer(&v, &self->args_tail); + fts_hashtable_put(&self->privates, &k, &v); + + /* initialize list input privates: $*1, $*2, $*3, etc. */ + for(i=0; i<self->n_inlets; i++) + { + fts_array_copy(self->init_lists + i, self->lists + i); + fts_set_symbol(&k, get_list_symbol_by_index(i)); + fts_set_pointer(&v, self->lists + i); + fts_hashtable_put(&self->privates, &k, &v); + } +} + +static fts_status_t +init_input_callback(int ac, const fts_atom_t *at, const fts_atom_t *dest, void *data) +{ + ftmmess_t *self = (ftmmess_t *)data; + + if(ac > 2 && fts_is_symbol(at) && fts_is_symbol(at + 1) && fts_get_symbol(at + 1) == fts_s_equal) + { + fts_symbol_t sym = fts_get_symbol(at); + char idx = get_list_index(sym); + + if(sym == fts_s_times) + fts_array_set(&self->init_args, ac - 2, at + 2); + else if(sym == fts_s_power) + { + int i; + + for(i=0; i<self->n_inlets; i++) + fts_array_set(self->init_lists + i, ac - 2, at + 2); + } + else if(idx >= 0) + { + if(idx < self->n_inlets) + fts_array_set(self->init_lists + idx, ac - 2, at + 2); + } + else if(idx == -1) + return fts_status_format("invalid list identifier '%s'", fts_symbol_name(sym)); + else + fts_hashtable_put(&self->privates, at, at + 2); + } + else + fts_array_set(&self->init_args, ac, at); + + return fts_ok; +} + +static void +init_input_evaluate(ftmmess_t *self) +{ + fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + int i; + + /* clear init arguments */ + fts_array_clear(&self->init_args); + + /* clear init lists */ + for(i=0; i<self->n_inlets; i++) + fts_array_clear(self->init_lists + i); + + /* clear privates */ + fts_hashtable_clear(&self->privates); + + self->init_status = self->init_parser_status; + + if(self->init_status == fts_ok && scope != NULL) + self->init_status = fts_expression_reduce(self->init_expression, scope, 0, NULL, init_input_callback, (void *)self); + + init_input(self); +} + +static void +init_input_name_callback(void *listener, fts_symbol_t name) +{ + ftmmess_t *self = (ftmmess_t *)listener; + + init_input_evaluate(self); + + //qelem_set(self->x_qelem); +} + +static void +ftmmess_parse_expression(ftmmess_t *self) +{ + int n = lines_get_size(&self->lines); + + if(n > 0) + { + char *str; + int size; + char *buff; + fts_array_t token; + fts_tokenizer_t tokenizer; + fts_atom_t a; + + /* set text from lines */ + text_set_size(&self->text, 0); + text_append_lines(&self->text, &self->lines); + + /* copy text to buffer */ + str = text_get_ptr(&self->text); + size = text_get_size(&self->text); + buff = (char *)alloca(sizeof(char) * (size + 2)); + strcpy(buff, str); + buff[size] = '\0'; + buff[size + 1] = '\0'; /* tokenizer needs double null termination */ + + /* run tokenizer */ + fts_tokenizer_init_buffer(&tokenizer, buff, size + 2); + + fts_array_init(&token, 0, NULL); + while(fts_tokenizer_next(&tokenizer, &a) != 0) + fts_array_append(&token, 1, &a); + + fts_tokenizer_destroy(&tokenizer); + + /* run parser */ + self->parser_status = fts_expression_set(self->expression, fts_array_get_size(&token), fts_array_get_atoms(&token)); + + if(self->parser_status == fts_ok) + { + int n_dollars = count_dollars(str); + + if(n_dollars > 2) + self->n_inlets_next = n_dollars; + else + self->n_inlets_next = 2; + + self->n_dollars = n_dollars; + + init_input(self); + } + } +} + +/******************************************************************** + * + * methods + * + */ +static void +ftmmess_set_init(ftmmess_t *self, fts_symbol_t s, short ac, fts_atom_t *at) +{ + fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + + if(ac > 0 && fts_is_symbol(at) && fts_get_symbol(at) == fts_s_none) + { + ac = 0; + at = NULL; + } + + self->init_parser_status = fts_expression_parse_from_atoms(self->init_expression, ac, at, &self->init_sym); + fts_expression_add_listener(self->init_expression, scope, self, init_input_name_callback); + + init_input_evaluate(self); + + //qelem_set(self->x_qelem); +} + +static void +ftmmess_restore_line(t_object *o, fts_symbol_t s, short ac, fts_atom_t *at) +{ + ftmmess_t *self = (ftmmess_t *) o; + + if(ac > 0 && fts_is_symbol(at)) + { + fts_symbol_t sym = fts_get_symbol(at); + char str[1024]; + + /* Max/MSP hack to avoid wild #-lead absargs replacement */ + sym = symbol_remove_leading_underscore(sym); + + /* replace #-lead absargs properly */ + if(maxext_loader_string_replace_absargs((ftmext_t *)self, fts_symbol_name(sym), str, 1024) > 0) + sym = fts_new_symbol(str); + + lines_add_line(&self->lines, sym); + self->loadlines--; + + if(self->loadlines == 0) + ftmmess_parse_expression(self); + } +} + +static void +ftmmess_restore_init(t_object *o, fts_symbol_t s, short ac, fts_atom_t *at) +{ + ftmmess_t *self = (ftmmess_t *) o; + + if(ac > 0 && fts_is_symbol(at)) + { + fts_symbol_t sym = fts_get_symbol(at); + fts_atom_t a; + char str[1024]; + + /* Max/MSP hack to avoid wild #-lead absargs replacement */ + sym = symbol_remove_leading_underscore(sym); + + /* replace #-lead absargs properly */ + if(maxext_loader_string_replace_absargs((ftmext_t *)self, fts_symbol_name(sym), str, 1024) > 0) + sym = fts_new_symbol(str); + + fts_set_symbol(&a, sym); + ftmmess_set_init(self, NULL, 1, &a); + } +} + +static void +ftmmess_redefine(ftmmess_t *self) +{ + fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + + self->init_status = self->init_parser_status; + + /* re-evaluate init arg expression when scope is available */ + if(self->init_status == fts_ok && scope != NULL) + self->init_status = fts_expression_reduce(self->init_expression, scope, 0, NULL, init_input_callback, (void *)self); + + init_input(self); +} + +static char * +string_from_list(fts_memorystream_t *stream, int ac, fts_atom_t *at) +{ + char *str = NULL; + + if(ac == 1 && fts_is_symbol(at)) + str = fts_symbol_name(fts_get_symbol(at)); + else + { + fts_memorystream_reset(stream); + fts_spost_primitive_atoms((fts_bytestream_t *)stream, ac, at); + fts_bytestream_output_char((fts_bytestream_t *)stream, '\0'); + str = (char *)fts_memorystream_get_bytes(stream); + } + + return str; +} + +static void +ftmmess_set_expression(t_object *o, fts_symbol_t s, short ac, fts_atom_t *at) +{ + ftmmess_t *self = (ftmmess_t *)o; + + if(ac > 0) + { + static fts_memorystream_t *memory_stream = NULL; + char *str; + int len; + + if(memory_stream == NULL) + memory_stream = (fts_memorystream_t *)fts_object_create( fts_memorystream_class, 0, 0); + + str = string_from_list(memory_stream, ac, at); + len = strlen(str); + + if(len > 0) + { + lines_set_from_string(&self->lines, str); + ftmmess_parse_expression(self); + } + else + { + lines_reset(&self->lines); + ftmmess_reset(self); + } + + //patcher_dirty(self->patcher); + //fitToText(self); + //qelem_set(self->x_qelem); + } +} + +static void +ftmmess_set_inlets(t_object *o, long i) +{ + ftmmess_t *self = (ftmmess_t *)o; + + if(i < 2) + self->n_inlets_next = 2; + else + self->n_inlets_next = i; +} + +static void +ftmmess_set_trigger(t_object *o, long i) +{ + ftmmess_t *self = (ftmmess_t *)o; + + self->trigger = i; +} + +static void +ftmmess_set_loadbang(t_object *o, long i) +{ + ftmmess_t *self = (ftmmess_t *)o; + + self->loadbang = (i != 0); +} + +static void +ftmmess_set_untuple(t_object *o, long i) +{ + ftmmess_t *self = (ftmmess_t *)o; + + self->untuple = (i != 0); +} + +static void +ftmmess_paint(ftmmess_t *self, t_object *view) +{ + if(self->text.ptr != NULL) + { + t_jgraphics *g = (t_jgraphics*) patcherview_get_jgraphics(view); + t_jfont *jf = jfont_create(jbox_get_fontname((t_object *)self)->s_name, jbox_get_font_slant((t_object *)self), jbox_get_font_weight((t_object *)self), jbox_get_fontsize((t_object *)self)); + t_jtextlayout *jtl = jtextlayout_create(); + t_jrgba textcolor; + t_rect rect; + int onset = 2; + + jbox_get_rect_for_view((t_object *)self, view, &rect); + + if(self->pressed == 1) + onset = 3; + + jtextlayout_set(jtl, self->text.ptr, jf, onset, onset, rect.width - 4, rect.height - 4, JGRAPHICS_TEXT_JUSTIFICATION_LEFT, 0); + + textcolor.red = textcolor.green = textcolor.blue = 0; + object_attr_getcolor((t_object *)self, gensym("textcolor"), &textcolor); + + textcolor.alpha = 1; + jtextlayout_settextcolor(jtl, &textcolor); + jtextlayout_draw(jtl, g); + + jtextlayout_destroy(jtl); + jfont_destroy(jf); + } +} + +void +ftmmess_getdrawparams(ftmmess_t *self, t_object *patcherview, t_jboxdrawparams *params) +{ + if(self->pressed == 0) + { + params->d_boxfillcolor.red = 0.5; + params->d_boxfillcolor.green = 0.5; + params->d_boxfillcolor.blue = 0.5; + params->d_boxfillcolor.alpha = 0.2; + + params->d_bordercolor.red = 0.5; + params->d_bordercolor.green = 0.5; + params->d_bordercolor.blue = 0.5; + params->d_bordercolor.alpha = 0.0; + + params->d_borderthickness = 0.5; + } + else + { + params->d_boxfillcolor.red = 0.3; + params->d_boxfillcolor.green = 0.3; + params->d_boxfillcolor.blue = 0.3; + params->d_boxfillcolor.alpha = 0.3; + + params->d_bordercolor.red = 0.5; + params->d_bordercolor.green = 0.5; + params->d_bordercolor.blue = 0.5; + params->d_bordercolor.alpha = 0.0; + + params->d_borderthickness = 0.5; + } + + params->d_cornersize = 10.0; +} + +/******************************************************************* + * + * interaction + * + */ +static void +ftmmess_mousedown(ftmmess_t *self, t_object *patcherview, t_pt pt, long modifiers) +{ + ftmmess_bang(self); + self->pressed = 1; + jbox_redraw((t_jbox *)self); +} + +static void +ftmmess_mouseup(ftmmess_t *self, t_object *patcherview, t_pt pt, long modifiers) +{ + self->pressed = 0; + jbox_redraw((t_jbox *)self); +} + +static void +ftmmess_invis(ftmmess_t *self) +{ +} + +static void +ftmmess_vis(ftmmess_t *self) +{ +} + +/******************************************************************** + * + * class + * + */ +static t_max_err +ftmmess_stdargs(t_dictionary *d, t_symbol *s, long ac, t_atom *at) +{ + if(d != NULL) + { + if(ac > 3 && fts_is_int(at) && fts_is_int(at + 1) && fts_is_int(at + 2) && fts_is_int(at + 3)) + dictionary_appendatoms(d, gensym("patching_rect"), 4, at); + + if(ac > 5 && fts_is_int(at + 4) && fts_is_int(at + 5)) + { + int old_fontidx = fts_get_int(at + 4); + int old_fontsize = fts_get_int(at + 5); + t_symbol *fontname = fontinfo_getname((short)old_fontidx); + double fontsize = fontinfo_getsize(old_fontsize); + + dictionary_appendsym(d, gensym("fontname"), fontname); + dictionary_appendfloat(d, gensym("fontsize"), fontsize); + } + + if(ac > 8 && fts_is_number(at + 6) && fts_is_number(at + 7) && fts_is_number(at + 8)) + { + t_jrgba color; + + color.red = fts_get_number_int(at + 8) / 255.0; + color.green = fts_get_number_int(at + 9) / 255.0; + color.blue = fts_get_number_int(at + 10) / 255.0; + color.alpha = 1.0; + + dictionary_appendjrgba(d, gensym("color"), &color); + } + + if(ac > 11 && fts_is_number(at + 9) && fts_is_number(at + 10) && fts_is_number(at + 11)) + { + t_jrgba color; + + color.red = fts_get_number_int(at + 8) / 255.0; + color.green = fts_get_number_int(at + 9) / 255.0; + color.blue = fts_get_number_int(at + 10) / 255.0; + color.alpha = 1.0; + + dictionary_appendjrgba(d, gensym("textcolor"), &color); + } + + if(ac > 12 && fts_is_int(at + 12)) + dictionary_appendatom(d, gensym("numlines"), at + 12); + + if(ac > 13 && fts_is_int(at + 13)) + dictionary_appendatom(d, gensym("numinlets"), at + 13); + + if(ac > 14 && fts_is_int(at + 14)) + dictionary_appendatom(d, gensym("trigger"), at + 14); + + if(ac > 15 && fts_is_int(at + 15)) + dictionary_appendatom(d, gensym("loadbang"), at + 15); + + if(ac > 16 && fts_is_int(at + 16)) + dictionary_appendatom(d, gensym("untuple"), at + 16); + } + + return MAX_ERR_NONE; +} + +static void * +ftmmess_new(t_symbol *name, short ac, t_atom *at) +{ + t_dictionary *d = object_dictionaryarg(ac, at); + ftmmess_t *self = NULL; + + if (d != NULL) + { + t_object *patcher = maxext_sym_hash_P->s_thing; + ftmext_class_t *cl = ftmext_class_get_by_name(name); + long flags; + int i; + + self = (ftmmess_t *)object_alloc(cl->handle); + + maxext_init_raw((ftmext_t *)self, cl, patcher); + + fts_mutex_init(&self->mutex); + + self->loadbang = 0; + self->loadlines = 0; + self->n_inlets = 2; + self->n_inlets_next = 2; + self->trigger = trigger_left; + self->untuple = 0; + self->parser_status = fts_ok; + + self->lists = NULL; + self->init_lists = NULL; + + self->loadlines = 0; + + /* init expression stuff */ + text_init(&self->text); + text_set_size(&self->text, 0); + lines_init(&self->lines); + fts_expression_new( 0, 0, &self->expression); + lines_set_size(&self->lines, 0); + + self->init_sym = NULL; + fts_expression_new(0, NULL, &self->init_expression); + fts_array_init(&self->init_args, 0, NULL); + fts_expression_new(0, NULL, &self->init_expression); + self->init_status = fts_ok; + self->init_parser_status = fts_ok; + self->evaluation_status = not_initialized_status; + + fts_hashtable_init(&self->privates, FTS_HASHTABLE_MEDIUM); + + self->n_dollars = 0; + fts_array_init(&self->args, 0, NULL); + + dictionary_getlong(d, gensym("numlines"), (long *)&self->loadlines); + dictionary_getlong(d, gensym("numinlets"), (long *)&self->n_inlets); + + if(self->n_inlets < 2) + self->n_inlets = 2; + + self->n_inlets_next = self->n_inlets; + + self->lists = (fts_array_t *)fts_malloc(self->n_inlets * sizeof(fts_array_t)); + for(i=0; i<self->n_inlets; i++) + fts_array_init(self->lists + i, 0, NULL); + + self->init_lists = (fts_array_t *)fts_malloc(self->n_inlets * sizeof(fts_array_t)); + for(i=0; i<self->n_inlets; i++) + fts_array_init(self->init_lists + i, 0, NULL); + + dictionary_getlong(d, gensym("trigger"), (long *)&self->trigger); + dictionary_getlong(d, gensym("loadbang"), (long *)&self->loadbang); + dictionary_getlong(d, gensym("untuple"), (long *)&self->untuple); + + /* init fake array for $| */ + self->args_tail = self->args; + + /* graphics */ + self->pressed = 0; + + flags = 0 + | JBOX_DRAWFIRSTIN + // | JBOX_NODRAWBOX + | JBOX_DRAWINLAST + | JBOX_TRANSPARENT + // | JBOX_NOGROW + // | JBOX_GROWY + | JBOX_GROWBOTH + // | JBOX_HILITE + // | JBOX_BACKGROUND + | JBOX_DRAWBACKGROUND + // | JBOX_NOFLOATINSPECTOR + // | JBOX_TEXTFIELD + // | JBOX_MOUSEDRAGDELTA + // | JBOX_TEXTFIELD + ; + + jbox_new((t_jbox *)self, flags, ac, at); + ((t_jbox *)self)->b_firstin = (t_object *)self; + + self->inlets = (void **)fts_malloc(sizeof(void *) * (self->n_inlets - 1)); + + for(i=self->n_inlets-2; i>=0; i--) + self->inlets[i] = proxy_new(self, i + 1, &self->inlet); + + self->outlet = outlet_new((t_object *)self, NULL); + + attr_dictionary_process(self, d); + jbox_ready((t_jbox *)self); + + maxext_sym_hash_T->s_thing = (t_object *)self; + } + + return self; +} + +static void +ftmmess_free(ftmmess_t *self) +{ + int i; + + //qelem_free(self->x_qelem); + + fts_name_listener_remove_bindings(self); + + fts_array_destroy(&self->init_args); + fts_hashtable_destroy(&self->privates); + + fts_array_destroy(&self->args); + + if(self->lists != NULL) + { + for(i=0; i<self->n_inlets; i++) + fts_array_destroy(self->lists + i); + + fts_free(self->lists); + } + + if(self->init_lists != NULL) + { + for(i=0; i<self->n_inlets; i++) + fts_array_destroy(self->init_lists + i); + + fts_free(self->init_lists); + } + + text_destroy(&self->text); + lines_destroy(&self->lines); + + fts_expression_delete(self->expression); + fts_expression_delete(self->init_expression); + + for(i=0; i<self->n_inlets-1; i++) + freeobject(self->inlets[i]); + + fts_free(self->inlets); + + maxext_delete((ftmext_t *)self); + fts_mutex_destroy(&self->mutex); + + jbox_free((t_jbox *)self); +} + +int +main(void) +{ + if(ftmlib_init(FTM_VERSION_MAJOR, FTM_VERSION_MINOR)) + { + t_class *c = class_new("ftm.mess", (method)ftmmess_new, (method)ftmmess_free, sizeof(ftmmess_t), NULL, A_GIMME, 0); + ftmext_class_t *ftmmess_class = NULL; + int i; + + c->c_flags |= CLASS_FLAG_NEWDICTIONARY; + jbox_initclass(c, JBOX_COLOR | JBOX_FIXWIDTH | JBOX_FONTATTR); + + sym_ftm_mess = fts_new_symbol("ftm.mess"); + + sym_restore_line = fts_new_symbol("_#line"); + sym_restore_init = fts_new_symbol("_#init"); + + for(i=0; i<DEF_SYM_LIST_INPUT; i++) + sym_lists[i] = get_lists_symbol_by_index(i); + + n_sym_lists = DEF_SYM_LIST_INPUT; + + class_addmethod(c, (method)ftmmess_bang, "bang", 0); + class_addmethod(c, (method)ftmmess_loadbang, "loadbang", A_CANT, 0); + + class_addmethod(c, (method)ftmmess_stdargs, "stdargs", A_CANT, 0); + class_addmethod(c, (method)ftmmess_save, "save", A_CANT, 0); + + class_addmethod(c, (method)ftmmess_paint, "paint", A_CANT, 0); + class_addmethod(c, (method)ftmmess_getdrawparams, "getdrawparams", A_CANT, 0); + class_addmethod(c, (method)ftmmess_mousedown, "mousedown", A_CANT, 0); + class_addmethod(c, (method)ftmmess_mouseup, "mouseup", A_CANT, 0); + + /* persistence & loadbang */ + class_addmethod(c, (method)ftmmess_restore_line, "_#line", A_GIMME, 0); + class_addmethod(c, (method)ftmmess_restore_init, "_#init", A_GIMME, 0); + class_addmethod(c, (method)ftmmess_redefine, ftm_str_redefine, 0); + class_addmethod(c, (method)maxext_restore_ftm, maxext_str_restore_ftm, A_GIMME, 0); + class... [truncated message content] |
From: <nsc...@us...> - 2008-08-28 10:38:00
|
Revision: 1904 http://ftm.svn.sourceforge.net/ftm/?rev=1904&view=rev Author: nschnell Date: 2008-08-28 10:38:06 +0000 (Thu, 28 Aug 2008) Log Message: ----------- trunk in now FTM 2.4 Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/externals/ftm.o.c trunk/ftm/externals/ftm.sdif.info.c trunk/ftm/externals/ftm.value.c trunk/ftm/externals/max/ftm.object.c trunk/ftm/ftmlib/ftmext.h trunk/ftm/ftmlib/max/ftmexternals.h trunk/ftm/ftmlib/parser.h Removed Paths: ------------- trunk/ftm/build/max/osx-cfm/ trunk/ftm/build/max/osx-java/ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/schwarz.pbxuser trunk/ftm/externals/max/ftm.client.c trunk/ftm/gui/ftmJNI/ trunk/ftm/gui/ircam/ Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-28 10:03:23 UTC (rev 1903) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-28 10:38:06 UTC (rev 1904) @@ -69,7 +69,6 @@ 1DC51B670E1A8AA400246BDF /* PBXTargetDependency */, 5CD5DD2D0E17F76600C85139 /* PBXTargetDependency */, 5CD5DD2F0E17F76600C85139 /* PBXTargetDependency */, - 5CD5DD310E17F76600C85139 /* PBXTargetDependency */, ); name = max; productName = max; @@ -117,10 +116,6 @@ 3B01D3090A790E2A00950F15 /* ftm.sqlite.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B01D3080A790E2A00950F15 /* ftm.sqlite.c */; }; 3B145DBA0CBA86FF0013392A /* EditorContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3B145DB80CBA86FE0013392A /* EditorContainer.cpp */; }; 3B145DBB0CBA86FF0013392A /* EditorContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B145DB90CBA86FF0013392A /* EditorContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B1982C40A55805600B2841E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B822E06D4A70F009827F3 /* Carbon.framework */; }; - 3B1982C50A55805600B2841E /* MaxAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B82C306D4A725009827F3 /* MaxAPI.framework */; }; - 3B1982C60A55805600B2841E /* MaxAudioAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B82C806D4A733009827F3 /* MaxAudioAPI.framework */; }; - 3B1982CF0A55805600B2841E /* ftm.client.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1982CE0A55805600B2841E /* ftm.client.c */; }; 3B1B822006D4A663009827F3 /* ftm.print.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1B820B06D4A663009827F3 /* ftm.print.c */; }; 3B1B822F06D4A70F009827F3 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B822E06D4A70F009827F3 /* Carbon.framework */; }; 3B1B82C406D4A725009827F3 /* MaxAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1B82C306D4A725009827F3 /* MaxAPI.framework */; }; @@ -250,7 +245,6 @@ 5C4038D10BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; 5C4038D20BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; 5C4038D30BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; - 5C4038D40BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; 5C4038D50BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; 5C4038D60BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; 5C4038D70BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C4038CE0BDF94FA00CCBF8F /* FTMlib.framework */; }; @@ -497,13 +491,6 @@ remoteGlobalIDString = 5C23142007A28B3D00CC6F2E; remoteInfo = ftm.buffer; }; - 5CD5DD300E17F76600C85139 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3B1B81BB06D4A550009827F3 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3B1982BD0A55805600B2841E; - remoteInfo = ftm.client; - }; 5CD5DD340E17F79100C85139 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 3B1B81BB06D4A550009827F3 /* Project object */; @@ -574,8 +561,6 @@ 3B0897A10B8B64520058107D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; 3B145DB80CBA86FE0013392A /* EditorContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EditorContainer.cpp; sourceTree = "<group>"; }; 3B145DB90CBA86FF0013392A /* EditorContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EditorContainer.h; sourceTree = "<group>"; }; - 3B1982CD0A55805600B2841E /* ftm.client.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftm.client.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B1982CE0A55805600B2841E /* ftm.client.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.client.c; sourceTree = "<group>"; }; 3B1B81D206D4A618009827F3 /* ftm.print.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ftm.print.mxo; sourceTree = BUILT_PRODUCTS_DIR; }; 3B1B820B06D4A663009827F3 /* ftm.print.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftm.print.c; sourceTree = "<group>"; }; 3B1B822E06D4A70F009827F3 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = ../../System/Library/Frameworks/Carbon.framework; sourceTree = "<group>"; }; @@ -696,17 +681,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B1982C30A55805600B2841E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B1982C40A55805600B2841E /* Carbon.framework in Frameworks */, - 3B1982C50A55805600B2841E /* MaxAPI.framework in Frameworks */, - 3B1982C60A55805600B2841E /* MaxAudioAPI.framework in Frameworks */, - 5C4038D40BDF94FA00CCBF8F /* FTMlib.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3B1B81D006D4A618009827F3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1055,7 +1029,6 @@ F4781FFA0838E92400D47E77 /* ftm.sdif.info.mxo */, 5C8BFCDA083DD9670077C8A2 /* ftm.o.mxo */, 2195DE0A09A24A63007DEFAF /* ftm.sdif.write.mxo */, - 3B1982CD0A55805600B2841E /* ftm.client.mxo */, 211ADFE20A7902A2007B20AA /* ftm.sqlite.mxo */, 5CFCB88C0AA5A86800DAB9A5 /* ftm.absargs.mxo */, 5CCF9CF50AAB84E900DD7255 /* ftm.javascript.mxo */, @@ -1179,7 +1152,6 @@ 3B1B82EC06D4B38F009827F3 /* ftm.vecdisplay.c */, 5C23143107A28BF300CC6F2E /* ftm.buffer.c */, 5CFCB8930AA5BCE400DAB9A5 /* ftm.absargs.c */, - 3B1982CE0A55805600B2841E /* ftm.client.c */, 5CEF81400AB15D5300AE1943 /* ftm.javascript.c */, 5C3DB7BF0AB07A3A00BE8005 /* ftmjs.c */, 5CCF9CFF0AAB853400DD7255 /* ftm.jitter.c */, @@ -1205,13 +1177,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B1982BE0A55805600B2841E /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3B1B81CC06D4A618009827F3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1429,26 +1394,6 @@ productReference = 2195DE0A09A24A63007DEFAF /* ftm.sdif.write.mxo */; productType = "com.apple.product-type.bundle"; }; - 3B1982BD0A55805600B2841E /* ftm.client */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3B1982C90A55805600B2841E /* Build configuration list for PBXNativeTarget "ftm.client" */; - buildPhases = ( - 3B1982BE0A55805600B2841E /* Headers */, - 3B1982BF0A55805600B2841E /* Resources */, - 3B1982C00A55805600B2841E /* Sources */, - 3B1982C20A55805600B2841E /* Rez */, - 3B1982C30A55805600B2841E /* Frameworks */, - 3B1982C80A55805600B2841E /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ftm.client; - productName = ftm.print; - productReference = 3B1982CD0A55805600B2841E /* ftm.client.mxo */; - productType = "com.apple.product-type.bundle"; - }; 3B1B81D106D4A618009827F3 /* ftm.print */ = { isa = PBXNativeTarget; buildConfigurationList = 3B5DEDFE0861C3ED00B9AEEA /* Build configuration list for PBXNativeTarget "ftm.print" */; @@ -2008,7 +1953,6 @@ 3B1CA7CA0C467B12005F0280 /* ftm.editor */, 5CFCB87C0AA5A86800DAB9A5 /* ftm.absargs */, 5C23142007A28B3D00CC6F2E /* ftm.buffer */, - 3B1982BD0A55805600B2841E /* ftm.client */, 5CCF9CE50AAB84E900DD7255 /* ftm.javascript */, 5C3DB7A00AB078B000BE8005 /* ftmjs */, 5CEF80CD0AB1590700AE1943 /* ftm.jitter */, @@ -2052,13 +1996,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B1982BF0A55805600B2841E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3B1B81CD06D4A618009827F3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2265,13 +2202,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B1982C20A55805600B2841E /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3B1B81CF06D4A618009827F3 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -2499,21 +2429,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh $PROJECT_DIR/../../../util/install-mxo.sh\n# call with the shell chosen above explicitly, since then the script doesn't need to have the executable permission set\n\n"; }; - 3B1982C80A55805600B2841E /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "build/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)", - ); - outputPaths = ( - "$(EXTERNALS_DIR)/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh $PROJECT_DIR/../../../util/install-mxo.sh\n# call with the shell chosen above explicitly, since then the script doesn't need to have the executable permission set\n\n"; - }; 3B1CA7DE0C467B12005F0280 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -2937,14 +2852,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B1982C00A55805600B2841E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B1982CF0A55805600B2841E /* ftm.client.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3B1B81CE06D4A618009827F3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3319,11 +3226,6 @@ target = 5C23142007A28B3D00CC6F2E /* ftm.buffer */; targetProxy = 5CD5DD2E0E17F76600C85139 /* PBXContainerItemProxy */; }; - 5CD5DD310E17F76600C85139 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3B1982BD0A55805600B2841E /* ftm.client */; - targetProxy = 5CD5DD300E17F76600C85139 /* PBXContainerItemProxy */; - }; 5CD5DD350E17F79100C85139 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 5CD5DD210E17F6A800C85139 /* max */; @@ -3397,30 +3299,6 @@ }; name = Release; }; - 3B1982CA0A55805600B2841E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "-framework", - Carbon, - "-lmx", - ); - PRODUCT_NAME = ftm.client; - }; - name = Debug; - }; - 3B1982CB0A55805600B2841E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "-framework", - Carbon, - "-lmx", - ); - PRODUCT_NAME = ftm.client; - }; - name = Release; - }; 3B1CA7E00C467B12005F0280 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3820,7 +3698,7 @@ "$(FRAMEWORK_PATH)", ); FTM_FRAMEWORK_PATH = "$(EXTERNALS_DIR)"; - FTM_VERSION = 2.3; + FTM_VERSION = 2.4; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(FRAMEWORK_PATH)/MaxAPI.framework/Versions/A/Headers/macho-prefix.h"; @@ -3863,7 +3741,7 @@ "$(FRAMEWORK_PATH)", ); FTM_FRAMEWORK_PATH = "$(EXTERNALS_DIR)"; - FTM_VERSION = 2.3; + FTM_VERSION = 2.4; GCC_AUTO_VECTORIZATION = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 3; @@ -4085,15 +3963,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 3B1982C90A55805600B2841E /* Build configuration list for PBXNativeTarget "ftm.client" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3B1982CA0A55805600B2841E /* Debug */, - 3B1982CB0A55805600B2841E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; 3B1CA7DF0C467B12005F0280 /* Build configuration list for PBXNativeTarget "ftm.editor" */ = { isa = XCConfigurationList; buildConfigurations = ( Deleted: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/schwarz.pbxuser =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/schwarz.pbxuser 2008-08-28 10:03:23 UTC (rev 1903) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/schwarz.pbxuser 2008-08-28 10:38:06 UTC (rev 1904) @@ -1,388 +0,0 @@ -// !$*UTF8*$! -{ - 217C9AC908C98637006683B6 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - }; - scmType = ""; - }; - 217C9ACA08C98637006683B6 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 21AFA4430909476A0018539F /* max runtime */ = { - isa = PBXExecutable; - activeArgIndex = 0; - activeArgIndices = ( - YES, - ); - argumentStrings = ( - "/Applications/Audio/MaxMSP\\ 4.5/MaxMSP\\ Runtime\\ 4.5.app", - ); - autoAttachOnCrash = 1; - configStateDict = { - "PBXLSLaunchAction-0" = { - PBXLSLaunchAction = 0; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXLSRunLaunchConfig; - displayName = "Executable Runner"; - identifier = com.apple.Xcode.launch.runConfig; - remoteHostInfo = ""; - startActionInfo = ""; - }; - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - launchableReference = 21AFA4440909476A0018539F /* LaunchCFMApp */; - libgmallocEnabled = 0; - name = "max runtime"; - savedGlobals = { - }; - sourceDirectories = ( - ); - startupPath = "/Users/schwarz/src/build-macho"; - }; - 21AFA4440909476A0018539F /* LaunchCFMApp */ = { - isa = PBXFileReference; - explicitFileType = "compiled.mach-o.executable"; - name = LaunchCFMApp; - path = /System/Library/Frameworks/Carbon.framework/Versions/A/Support/LaunchCFMApp; - sourceTree = "<absolute>"; - }; - 21AFA45E09094B8B0018539F /* info_set */ = { - isa = PBXSymbolicBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - hitCount = 1; - modificationTime = 155083575.277154; - state = 1; - symbolName = " info_set"; - }; - 21AFA46109094B950018539F /* XCBreakpointsBucket */ = { - isa = XCBreakpointsBucket; - name = "Project Breakpoints"; - objects = ( - 21AFA45E09094B8B0018539F /* info_set */, - 21AFA46409094BC30018539F /* sdifinfo.c:258 */, - 21AFA46A09094BD40018539F /* sdifinfo.c:261 */, - 21AFA46C09094BD50018539F /* sdifinfo.c:266 */, - 21AFA46F09094BFE0018539F /* sdifinfo.c:372 */, - 21AFA4720909526B0018539F /* sdifinfo.c:456 */, - 21AFA4740909526F0018539F /* sdifinfo.c:496 */, - 21AFA476090952730018539F /* sdifinfo.c:560 */, - 21AFA478090952770018539F /* sdifinfo.c:590 */, - ); - }; - 21AFA46409094BC30018539F /* sdifinfo.c:258 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "setargs()"; - hitCount = 1; - lineNumber = 258; - modificationTime = 155083571.819358; - state = 1; - }; - 21AFA46A09094BD40018539F /* sdifinfo.c:261 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "setargs()"; - hitCount = 1; - lineNumber = 261; - modificationTime = 155083571.819464; - state = 1; - }; - 21AFA46C09094BD50018539F /* sdifinfo.c:266 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "setargs()"; - hitCount = 1; - lineNumber = 266; - modificationTime = 155083571.819376; - state = 1; - }; - 21AFA46F09094BFE0018539F /* sdifinfo.c:372 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "FTMEXT_METHOD_VARARGS()"; - hitCount = 1; - lineNumber = 372; - modificationTime = 155083571.819482; - state = 1; - }; - 21AFA4720909526B0018539F /* sdifinfo.c:456 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "printheaders()"; - hitCount = 1; - lineNumber = 456; - modificationTime = 155083571.819388; - state = 1; - }; - 21AFA4740909526F0018539F /* sdifinfo.c:496 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "FTMEXT_METHOD_VARARGS()"; - hitCount = 1; - lineNumber = 496; - modificationTime = 155083571.819401; - state = 1; - }; - 21AFA476090952730018539F /* sdifinfo.c:560 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "FTMEXT_INIT()"; - hitCount = 1; - lineNumber = 560; - modificationTime = 155083571.819312; - state = 1; - }; - 21AFA478090952770018539F /* sdifinfo.c:590 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = F47820030838E9C500D47E77 /* sdifinfo.c */; - functionName = "FTMEXT_DELETE()"; - hitCount = 1; - lineNumber = 590; - modificationTime = 155083571.819412; - state = 1; - }; - 3B1B81BB06D4A550009827F3 /* Project object */ = { - activeBuildConfigurationName = Development; - activeBuildStyle = 3B1B81B906D4A550009827F3 /* Development */; - activeExecutable = 21AFA4430909476A0018539F /* max runtime */; - activeTarget = F47D6AE708A36663001D9636 /* install */; - addToTargets = ( - 3B1B82FA06D4B5A3009827F3 /* all */, - F47D6AE708A36663001D9636 /* install */, - ); - breakpoints = ( - 21AFA45E09094B8B0018539F /* info_set */, - 21AFA46409094BC30018539F /* sdifinfo.c:258 */, - 21AFA46A09094BD40018539F /* sdifinfo.c:261 */, - 21AFA46C09094BD50018539F /* sdifinfo.c:266 */, - 21AFA46F09094BFE0018539F /* sdifinfo.c:372 */, - 21AFA4720909526B0018539F /* sdifinfo.c:456 */, - 21AFA4740909526F0018539F /* sdifinfo.c:496 */, - 21AFA476090952730018539F /* sdifinfo.c:560 */, - 21AFA478090952770018539F /* sdifinfo.c:590 */, - ); - breakpointsGroup = 21AFA46109094B950018539F /* XCBreakpointsBucket */; - codeSenseManager = 217C9ACA08C98637006683B6 /* Code sense */; - executables = ( - 21AFA4430909476A0018539F /* max runtime */, - ); - perUserDictionary = { - "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 20, - 210, - 20, - 110, - 109, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXBreakpointsDataSource_ActionID, - PBXBreakpointsDataSource_TypeID, - PBXBreakpointsDataSource_BreakpointID, - PBXBreakpointsDataSource_UseID, - PBXBreakpointsDataSource_LocationID, - PBXBreakpointsDataSource_ConditionID, - PBXBreakpointsDataSource_ContinueID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = 1; - PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; - PBXFileTableDataSourceColumnWidthsKey = ( - 22, - 300, - 147.5835, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXExecutablesDataSource_ActiveFlagID, - PBXExecutablesDataSource_NameID, - PBXExecutablesDataSource_CommentsID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 191, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 200, - 11, - 20, - 48, - 43, - 43, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXTargetDataSource_PrimaryAttribute, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 155580766; - PBXWorkspaceStateSaveDate = 155580766; - }; - sourceControlManager = 217C9AC908C98637006683B6 /* Source Control */; - userBuildSettings = { - }; - }; - 3B1B81D106D4A618009827F3 /* ftm.print */ = { - activeExec = 0; - }; - 3B1B82DE06D4B2E5009827F3 /* ftm.vecdisplay */ = { - activeExec = 0; - }; - 3B1B82FA06D4B5A3009827F3 /* all */ = { - activeExec = 0; - }; - 3B1B845506D4C5A0009827F3 /* ftm.object */ = { - activeExec = 0; - }; - 3B1B84C506D4EE19009827F3 /* ftm.mess */ = { - activeExec = 0; - }; - 3B1B84E906D4EFE1009827F3 /* ftm.copy */ = { - activeExec = 0; - }; - 3B1B84F806D4F06A009827F3 /* ftm.clone */ = { - activeExec = 0; - }; - 3B1B850706D4F0B0009827F3 /* ftm.value */ = { - activeExec = 0; - }; - 3B1B853406D4F2D0009827F3 /* ftm.iter */ = { - activeExec = 0; - }; - 3B1B855206D4F3A4009827F3 /* ftm.schedule */ = { - activeExec = 0; - }; - 3B1B856106D4F506009827F3 /* ftm.play */ = { - activeExec = 0; - }; - 3B1B857006D4F568009827F3 /* ftm.record */ = { - activeExec = 0; - }; - 3B1B857F06D4F5C8009827F3 /* ftm.list */ = { - activeExec = 0; - }; - 3B1B858E06D4F654009827F3 /* ftm.midiunparse */ = { - activeExec = 0; - }; - 3B1B859D06D4F6AF009827F3 /* ftm.midiparse */ = { - activeExec = 0; - }; - 5C23142007A28B3D00CC6F2E /* ftm.buffer */ = { - activeExec = 0; - }; - 5C5F084F0782214600A59DE2 /* ftm.inter */ = { - activeExec = 0; - }; - 5C5F086F078222B700A59DE2 /* ftm.tween */ = { - activeExec = 0; - }; - 5C5F08A1078224F900A59DE2 /* ftm.iter.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 8050}}"; - sepNavSelRange = "{13102, 0}"; - sepNavVisRect = "{{0, 1294}, {813, 779}}"; - sepNavWindowFrame = "{{19, 89}, {852, 908}}"; - }; - }; - 5C5F103407824B1900A59DE2 /* ftm.aaa */ = { - activeExec = 0; - }; - 5C8BFCCE083DD9670077C8A2 /* ftm.o */ = { - activeExec = 0; - }; - F4781FEE0838E92400D47E77 /* sdif.info */ = { - activeExec = 0; - }; - F47820030838E9C500D47E77 /* sdifinfo.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {813, 9380}}"; - sepNavSelRange = "{7125, 7}"; - sepNavVisRect = "{{0, 8201}, {813, 779}}"; - sepNavWindowFrame = "{{315, 86}, {852, 908}}"; - }; - }; - F47D6AE708A36663001D9636 /* install */ = { - activeExec = 0; - }; -} Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-28 10:03:23 UTC (rev 1903) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-28 10:38:06 UTC (rev 1904) @@ -21,15 +21,8 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 215693380E2E5DB3009AFAE9 /* kdtreebuild.c in Sources */ = {isa = PBXBuildFile; fileRef = 215693370E2E5DB3009AFAE9 /* kdtreebuild.c */; }; - 215693390E2E5DB3009AFAE9 /* kdtreebuild.c in Sources */ = {isa = PBXBuildFile; fileRef = 215693370E2E5DB3009AFAE9 /* kdtreebuild.c */; }; - 2156933A0E2E5DB3009AFAE9 /* kdtreebuild.c in Sources */ = {isa = PBXBuildFile; fileRef = 215693370E2E5DB3009AFAE9 /* kdtreebuild.c */; }; - 2156933E0E2E5DBE009AFAE9 /* kdtreesearch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2156933D0E2E5DBE009AFAE9 /* kdtreesearch.c */; }; - 2156933F0E2E5DBE009AFAE9 /* kdtreesearch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2156933D0E2E5DBE009AFAE9 /* kdtreesearch.c */; }; - 215693400E2E5DBE009AFAE9 /* kdtreesearch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2156933D0E2E5DBE009AFAE9 /* kdtreesearch.c */; }; 3B0075EE0B83237200B259E5 /* vec_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3B0075F60B8323E500B259E5 /* ftsconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B0077720B83316300B259E5 /* kdtree.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0077710B83316300B259E5 /* kdtree.c */; }; 3B0313AA0C904BA000DA4915 /* seqtxt.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0313A90C904BA000DA4915 /* seqtxt.c */; }; 3B1A928C06D3B3F8009882D6 /* ftmlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1A928906D3B3F8009882D6 /* ftmlib.c */; }; 3B1A928E06D3B3F8009882D6 /* ftmlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -47,7 +40,6 @@ 3BFA27F60B81CE310056EC15 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; 3BFA27FA0B81CE450056EC15 /* vec_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* vec_fft.c */; }; 3BFA293A0B81D5970056EC15 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA293B0B81D5970056EC15 /* client.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29370B81D5970056EC15 /* client.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA293D0B81D5970056EC15 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA29420B81D5B70056EC15 /* fts.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA29440B81D5B70056EC15 /* patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -55,7 +47,6 @@ 3BFA29490B81D5CB0056EC15 /* symbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA294A0B81D5CB0056EC15 /* timebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA294B0B81D5CB0056EC15 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA294E0B81D5F10056EC15 /* client.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA294C0B81D5F10056EC15 /* client.c */; }; 3BFA29540B81D6030056EC15 /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; @@ -106,7 +97,6 @@ 3BFA29FC0B81D8500056EC15 /* tuple.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F90B81D8500056EC15 /* tuple.c */; }; 3BFA29FD0B81D8500056EC15 /* variable.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29FA0B81D8500056EC15 /* variable.c */; }; 3BFD33020B7CE89200BC8D76 /* bpf.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E70B7CE89200BC8D76 /* bpf.c */; }; - 3BFD33030B7CE89200BC8D76 /* bpfeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E80B7CE89200BC8D76 /* bpfeditor.c */; }; 3BFD33040B7CE89200BC8D76 /* data.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E90B7CE89200BC8D76 /* data.c */; }; 3BFD33050B7CE89200BC8D76 /* datafiles.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EA0B7CE89200BC8D76 /* datafiles.c */; }; 3BFD33070B7CE89200BC8D76 /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EC0B7CE89200BC8D76 /* event.c */; }; @@ -114,15 +104,11 @@ 3BFD33090B7CE89200BC8D76 /* functions.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EE0B7CE89200BC8D76 /* functions.c */; }; 3BFD330A0B7CE89200BC8D76 /* fvec.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EF0B7CE89200BC8D76 /* fvec.c */; }; 3BFD330E0B7CE89200BC8D76 /* marker.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F30B7CE89200BC8D76 /* marker.c */; }; - 3BFD330F0B7CE89200BC8D76 /* mateditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F40B7CE89200BC8D76 /* mateditor.c */; }; 3BFD33110B7CE89200BC8D76 /* note.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F60B7CE89200BC8D76 /* note.c */; }; 3BFD33140B7CE89200BC8D76 /* seqmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F90B7CE89200BC8D76 /* seqmidi.c */; }; 3BFD33190B7CE89200BC8D76 /* sequence.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32FE0B7CE89200BC8D76 /* sequence.c */; }; - 3BFD331A0B7CE89200BC8D76 /* tabeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32FF0B7CE89200BC8D76 /* tabeditor.c */; }; 3BFD331B0B7CE89200BC8D76 /* track.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD33000B7CE89200BC8D76 /* track.c */; }; - 3BFD331C0B7CE89200BC8D76 /* trackeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD33010B7CE89200BC8D76 /* trackeditor.c */; }; 3BFD33620B7CE8E800BC8D76 /* bpf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33630B7CE8E800BC8D76 /* bpfeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334C0B7CE8E800BC8D76 /* bpfeditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33640B7CE8E800BC8D76 /* data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33650B7CE8E800BC8D76 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33660B7CE8E800BC8D76 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -130,20 +116,15 @@ 3BFD33690B7CE8E800BC8D76 /* fvec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD336C0B7CE8E800BC8D76 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD336D0B7CE8E800BC8D76 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD336E0B7CE8E800BC8D76 /* mateditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33570B7CE8E800BC8D76 /* mateditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD336F0B7CE8E800BC8D76 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33700B7CE8E800BC8D76 /* note.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* note.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33720B7CE8E800BC8D76 /* seqmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33740B7CE8E800BC8D76 /* sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33750B7CE8E800BC8D76 /* tabeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335E0B7CE8E800BC8D76 /* tabeditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFD33760B7CE8E800BC8D76 /* track.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33770B7CE8E800BC8D76 /* trackeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33600B7CE8E800BC8D76 /* trackeditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33780B7CE8E800BC8D76 /* kdtree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33610B7CE8E800BC8D76 /* kdtree.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C051D840CF4D45F00BFAA28 /* fring.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C051D860CF4D47400BFAA28 /* fring.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C051D850CF4D47400BFAA28 /* fring.c */; }; 5C0B809D082E0E9200E7F7D3 /* ftmrte.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C0B80A2082E1B2A00E7F7D3 /* ftmext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C0B80C2082E1D0500E7F7D3 /* maxclient.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80BF082E1D0500E7F7D3 /* maxclient.c */; }; 5C0B80C3082E1D0500E7F7D3 /* maxext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C0082E1D0500E7F7D3 /* maxext.c */; }; 5C0B80C4082E1D0500E7F7D3 /* maxfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C1082E1D0500E7F7D3 /* maxfile.c */; }; 5C132591078C2E9C0008A86A /* ftmversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -151,7 +132,6 @@ 5C209E3D0D0EDF8200BF135F /* MaxAudioAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C5F0BAF0782420700A59DE2 /* MaxAudioAPI.framework */; }; 5C209E450D0EDFD500BF135F /* ftmlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1A928906D3B3F8009882D6 /* ftmlib.c */; }; 5C209E480D0EDFD500BF135F /* ftmext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F07D1078218BA00A59DE2 /* ftmext.c */; }; - 5C209E490D0EDFD500BF135F /* maxclient.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80BF082E1D0500E7F7D3 /* maxclient.c */; }; 5C209E4A0D0EDFD500BF135F /* maxext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C0082E1D0500E7F7D3 /* maxext.c */; }; 5C209E4B0D0EDFD500BF135F /* maxfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C1082E1D0500E7F7D3 /* maxfile.c */; }; 5C209E4C0D0EDFD500BF135F /* maxconsole.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CAE80B70830B01D00E85D7D /* maxconsole.c */; }; @@ -160,7 +140,6 @@ 5C209E4F0D0EDFD500BF135F /* ftmrte.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC31A590830B668005A562B /* ftmrte.c */; }; 5C209E500D0EDFD500BF135F /* maxtypes.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CDB257408311C4400F543E3 /* maxtypes.c */; }; 5C209E510D0EDFD500BF135F /* bpf.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E70B7CE89200BC8D76 /* bpf.c */; }; - 5C209E520D0EDFD500BF135F /* bpfeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E80B7CE89200BC8D76 /* bpfeditor.c */; }; 5C209E530D0EDFD500BF135F /* data.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32E90B7CE89200BC8D76 /* data.c */; }; 5C209E540D0EDFD500BF135F /* datafiles.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EA0B7CE89200BC8D76 /* datafiles.c */; }; 5C209E550D0EDFD500BF135F /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EC0B7CE89200BC8D76 /* event.c */; }; @@ -168,19 +147,15 @@ 5C209E570D0EDFD500BF135F /* functions.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EE0B7CE89200BC8D76 /* functions.c */; }; 5C209E580D0EDFD500BF135F /* fvec.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32EF0B7CE89200BC8D76 /* fvec.c */; }; 5C209E590D0EDFD500BF135F /* marker.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F30B7CE89200BC8D76 /* marker.c */; }; - 5C209E5A0D0EDFD500BF135F /* mateditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F40B7CE89200BC8D76 /* mateditor.c */; }; 5C209E5B0D0EDFD500BF135F /* note.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F60B7CE89200BC8D76 /* note.c */; }; 5C209E5C0D0EDFD500BF135F /* seqmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F90B7CE89200BC8D76 /* seqmidi.c */; }; 5C209E5D0D0EDFD500BF135F /* sequence.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32FE0B7CE89200BC8D76 /* sequence.c */; }; - 5C209E5E0D0EDFD500BF135F /* tabeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32FF0B7CE89200BC8D76 /* tabeditor.c */; }; 5C209E5F0D0EDFD500BF135F /* track.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD33000B7CE89200BC8D76 /* track.c */; }; - 5C209E600D0EDFD500BF135F /* trackeditor.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD33010B7CE89200BC8D76 /* trackeditor.c */; }; 5C209E610D0EDFD500BF135F /* dict.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D50B80C1E7005FD5B7 /* dict.c */; }; 5C209E620D0EDFD500BF135F /* mat.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D60B80C1E7005FD5B7 /* mat.c */; }; 5C209E640D0EDFD500BF135F /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 5C209E660D0EDFD500BF135F /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; 5C209E680D0EDFD500BF135F /* vec_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* vec_fft.c */; }; - 5C209E690D0EDFD500BF135F /* client.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA294C0B81D5F10056EC15 /* client.c */; }; 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; @@ -208,7 +183,6 @@ 5C209E850D0EDFD500BF135F /* status.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F40B81D83A0056EC15 /* status.c */; }; 5C209E860D0EDFD500BF135F /* tuple.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F90B81D8500056EC15 /* tuple.c */; }; 5C209E870D0EDFD500BF135F /* variable.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29FA0B81D8500056EC15 /* variable.c */; }; - 5C209E880D0EDFD500BF135F /* kdtree.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0077710B83316300B259E5 /* kdtree.c */; }; 5C209E890D0EDFD500BF135F /* seqtxt.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0313A90C904BA000DA4915 /* seqtxt.c */; }; 5C209E8A0D0EDFD500BF135F /* fring.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C051D850CF4D47400BFAA28 /* fring.c */; }; 5C209FF90D0EE4AE00BF135F /* ftmsdif.c in Sources */ = {isa = PBXBuildFile; fileRef = F4738A84071597EB000FCD04 /* ftmsdif.c */; }; @@ -369,11 +343,8 @@ 1D53D83F0E1A83C300724B4E /* libvorbis.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbis.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbis.a"; sourceTree = SOURCE_ROOT; }; 1D53D8400E1A83C300724B4E /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisenc.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbisenc.a"; sourceTree = SOURCE_ROOT; }; 1D53D8410E1A83C300724B4E /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisfile.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbisfile.a"; sourceTree = SOURCE_ROOT; }; - 215693370E2E5DB3009AFAE9 /* kdtreebuild.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = kdtreebuild.c; sourceTree = "<group>"; }; - 2156933D0E2E5DBE009AFAE9 /* kdtreesearch.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = kdtreesearch.c; sourceTree = "<group>"; }; 3B0075ED0B83237200B259E5 /* vec_fft.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vec_fft.h; sourceTree = "<group>"; }; 3B0075F50B8323E500B259E5 /* ftsconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftsconfig.h; sourceTree = "<group>"; }; - 3B0077710B83316300B259E5 /* kdtree.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = kdtree.c; sourceTree = "<group>"; }; 3B0313A90C904BA000DA4915 /* seqtxt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = seqtxt.c; sourceTree = "<group>"; }; 3B1A928906D3B3F8009882D6 /* ftmlib.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmlib.c; sourceTree = "<group>"; }; 3B1A928B06D3B3F8009882D6 /* ftmlib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmlib.h; sourceTree = "<group>"; }; @@ -391,7 +362,6 @@ 3BFA27F30B81CE310056EC15 /* random.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = random.c; sourceTree = "<group>"; }; 3BFA27F90B81CE450056EC15 /* vec_fft.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = vec_fft.c; sourceTree = "<group>"; }; 3BFA29360B81D5970056EC15 /* atom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = atom.h; sourceTree = "<group>"; }; - 3BFA29370B81D5970056EC15 /* client.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = client.h; sourceTree = "<group>"; }; 3BFA29390B81D5970056EC15 /* file.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = "<group>"; }; 3BFA293E0B81D5B70056EC15 /* fts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fts.h; sourceTree = "<group>"; }; 3BFA29400B81D5B70056EC15 /* patcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = patcher.h; sourceTree = "<group>"; }; @@ -399,7 +369,6 @@ 3BFA29460B81D5CB0056EC15 /* symbol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = symbol.h; sourceTree = "<group>"; }; 3BFA29470B81D5CB0056EC15 /* timebase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timebase.h; sourceTree = "<group>"; }; 3BFA29480B81D5CB0056EC15 /* types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = "<group>"; }; - 3BFA294C0B81D5F10056EC15 /* client.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = client.c; sourceTree = "<group>"; }; 3BFA29510B81D6030056EC15 /* patcher.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = patcher.c; sourceTree = "<group>"; }; 3BFA29520B81D6030056EC15 /* ftmcontext.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmcontext.c; sourceTree = "<group>"; }; 3BFA29570B81D6240056EC15 /* symbol.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = symbol.c; sourceTree = "<group>"; }; @@ -451,7 +420,6 @@ 3BFA29F90B81D8500056EC15 /* tuple.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = tuple.c; sourceTree = "<group>"; }; 3BFA29FA0B81D8500056EC15 /* variable.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = variable.c; sourceTree = "<group>"; }; 3BFD32E70B7CE89200BC8D76 /* bpf.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = bpf.c; sourceTree = "<group>"; }; - 3BFD32E80B7CE89200BC8D76 /* bpfeditor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = bpfeditor.c; sourceTree = "<group>"; }; 3BFD32E90B7CE89200BC8D76 /* data.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = data.c; sourceTree = "<group>"; }; 3BFD32EA0B7CE89200BC8D76 /* datafiles.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = datafiles.c; sourceTree = "<group>"; }; 3BFD32EC0B7CE89200BC8D76 /* event.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = event.c; sourceTree = "<group>"; }; @@ -459,15 +427,11 @@ 3BFD32EE0B7CE89200BC8D76 /* functions.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = functions.c; sourceTree = "<group>"; }; 3BFD32EF0B7CE89200BC8D76 /* fvec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = fvec.c; sourceTree = "<group>"; }; 3BFD32F30B7CE89200BC8D76 /* marker.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = marker.c; sourceTree = "<group>"; }; - 3BFD32F40B7CE89200BC8D76 /* mateditor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = mateditor.c; sourceTree = "<group>"; }; 3BFD32F60B7CE89200BC8D76 /* note.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = note.c; sourceTree = "<group>"; }; 3BFD32F90B7CE89200BC8D76 /* seqmidi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = seqmidi.c; sourceTree = "<group>"; }; 3BFD32FE0B7CE89200BC8D76 /* sequence.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = sequence.c; sourceTree = "<group>"; }; - 3BFD32FF0B7CE89200BC8D76 /* tabeditor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = tabeditor.c; sourceTree = "<group>"; }; 3BFD33000B7CE89200BC8D76 /* track.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = track.c; sourceTree = "<group>"; }; - 3BFD33010B7CE89200BC8D76 /* trackeditor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = trackeditor.c; sourceTree = "<group>"; }; 3BFD334B0B7CE8E800BC8D76 /* bpf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = bpf.h; sourceTree = "<group>"; }; - 3BFD334C0B7CE8E800BC8D76 /* bpfeditor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = bpfeditor.h; sourceTree = "<group>"; }; 3BFD334D0B7CE8E800BC8D76 /* data.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = data.h; sourceTree = "<group>"; }; 3BFD334E0B7CE8E800BC8D76 /* dict.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dict.h; sourceTree = "<group>"; }; 3BFD334F0B7CE8E800BC8D76 /* event.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = event.h; sourceTree = "<group>"; }; @@ -475,20 +439,15 @@ 3BFD33520B7CE8E800BC8D76 /* fvec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fvec.h; sourceTree = "<group>"; }; 3BFD33550B7CE8E800BC8D76 /* marker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = marker.h; sourceTree = "<group>"; }; 3BFD33560B7CE8E800BC8D76 /* mat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mat.h; sourceTree = "<group>"; }; - 3BFD33570B7CE8E800BC8D76 /* mateditor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mateditor.h; sourceTree = "<group>"; }; 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mathfuns.h; sourceTree = "<group>"; }; 3BFD33590B7CE8E800BC8D76 /* note.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = note.h; sourceTree = "<group>"; }; 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = seqmidi.h; sourceTree = "<group>"; }; 3BFD335D0B7CE8E800BC8D76 /* sequence.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sequence.h; sourceTree = "<group>"; }; - 3BFD335E0B7CE8E800BC8D76 /* tabeditor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tabeditor.h; sourceTree = "<group>"; }; 3BFD335F0B7CE8E800BC8D76 /* track.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = track.h; sourceTree = "<group>"; }; - 3BFD33600B7CE8E800BC8D76 /* trackeditor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trackeditor.h; sourceTree = "<group>"; }; - 3BFD33610B7CE8E800BC8D76 /* kdtree.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kdtree.h; sourceTree = "<group>"; }; 5C051D830CF4D45F00BFAA28 /* fring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fring.h; sourceTree = "<group>"; }; 5C051D850CF4D47400BFAA28 /* fring.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = fring.c; sourceTree = "<group>"; }; 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmrte.h; sourceTree = "<group>"; }; 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmext.h; sourceTree = "<group>"; }; - 5C0B80BF082E1D0500E7F7D3 /* maxclient.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = maxclient.c; sourceTree = "<group>"; }; 5C0B80C0082E1D0500E7F7D3 /* maxext.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = maxext.c; sourceTree = "<group>"; }; 5C0B80C1082E1D0500E7F7D3 /* maxfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = maxfile.c; sourceTree = "<group>"; }; 5C132590078C2E9C0008A86A /* ftmversion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmversion.h; sourceTree = "<group>"; }; @@ -605,7 +564,6 @@ isa = PBXGroup; children = ( 3BFD32E70B7CE89200BC8D76 /* bpf.c */, - 3BFD32E80B7CE89200BC8D76 /* bpfeditor.c */, 3BFD32E90B7CE89200BC8D76 /* data.c */, 3BFD32EA0B7CE89200BC8D76 /* datafiles.c */, 3BF406D50B80C1E7005FD5B7 /* dict.c */, @@ -615,17 +573,11 @@ 3BFD32EF0B7CE89200BC8D76 /* fvec.c */, 3BFD32F30B7CE89200BC8D76 /* marker.c */, 3BF406D60B80C1E7005FD5B7 /* mat.c */, - 3BFD32F40B7CE89200BC8D76 /* mateditor.c */, 3BFD32F60B7CE89200BC8D76 /* note.c */, 3BFD32F90B7CE89200BC8D76 /* seqmidi.c */, 3B0313A90C904BA000DA4915 /* seqtxt.c */, 3BFD32FE0B7CE89200BC8D76 /* sequence.c */, - 3BFD32FF0B7CE89200BC8D76 /* tabeditor.c */, 3BFD33000B7CE89200BC8D76 /* track.c */, - 3BFD33010B7CE89200BC8D76 /* trackeditor.c */, - 3B0077710B83316300B259E5 /* kdtree.c */, - 215693370E2E5DB3009AFAE9 /* kdtreebuild.c */, - 2156933D0E2E5DBE009AFAE9 /* kdtreesearch.c */, ); name = classes; path = ftmlib/classes; @@ -635,7 +587,6 @@ isa = PBXGroup; children = ( 3BFD334B0B7CE8E800BC8D76 /* bpf.h */, - 3BFD334C0B7CE8E800BC8D76 /* bpfeditor.h */, 3BFD334D0B7CE8E800BC8D76 /* data.h */, 3BFD334E0B7CE8E800BC8D76 /* dict.h */, 3BFD334F0B7CE8E800BC8D76 /* event.h */, @@ -644,15 +595,11 @@ 3BFD33520B7CE8E800BC8D76 /* fvec.h */, 3BFD33550B7CE8E800BC8D76 /* marker.h */, 3BFD33560B7CE8E800BC8D76 /* mat.h */, - 3BFD33570B7CE8E800BC8D76 /* mateditor.h */, 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */, 3BFD33590B7CE8E800BC8D76 /* note.h */, 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */, 3BFD335D0B7CE8E800BC8D76 /* sequence.h */, - 3BFD335E0B7CE8E800BC8D76 /* tabeditor.h */, 3BFD335F0B7CE8E800BC8D76 /* track.h */, - 3BFD33600B7CE8E800BC8D76 /* trackeditor.h */, - 3BFD33610B7CE8E800BC8D76 /* kdtree.h */, ); name = classes; path = ftmlib/classes; @@ -668,7 +615,6 @@ 3BFA295E0B81D64F0056EC15 /* audiofile.h */, 3BFA29620B81D6610056EC15 /* bytestream.h */, 3BFA29630B81D6610056EC15 /* class.h */, - 3BFA29370B81D5970056EC15 /* client.h */, 5C2839400D128DA6008C512E /* config-macosx.h */, 3B2731980B8222C400C98C90 /* cubic.h */, 3BFA29660B81D68B0056EC15 /* dumper.h */, @@ -726,7 +672,6 @@ 3BFA29CF0B81D7CB0056EC15 /* audiofile.c */, 3BFA29D00B81D7CB0056EC15 /* bytestream.c */, 3BFA29D40B81D7E10056EC15 /* class.c */, - 3BFA294C0B81D5F10056EC15 /* client.c */, 3BFA27E90B81CDEF0056EC15 /* cubic.c */, 3BFA29D50B81D7E10056EC15 /* dumper.c */, 3BFA29D60B81D7E10056EC15 /* expression.c */, @@ -805,7 +750,6 @@ 5CD5DCF60E17F4F500C85139 /* max */ = { isa = PBXGroup; children = ( - 5C0B80BF082E1D0500E7F7D3 /* maxclient.c */, 5CAE80B70830B01D00E85D7D /* maxconsole.c */, 5CBF1B9E095ABB4D00492815 /* maxdsp.c */, 5C0B80C0082E1D0500E7F7D3 /* maxext.c */, @@ -848,7 +792,6 @@ 5C8756890830E63900D62A08 /* ftmtypes.h in Headers */, 5CDB258808311E3500F543E3 /* ftmexternals.h in Headers */, 3BFD33620B7CE8E800BC8D76 /* bpf.h in Headers */, - 3BFD33630B7CE8E800BC8D76 /* bpfeditor.h in Headers */, 3BFD33640B7CE8E800BC8D76 /* data.h in Headers */, 3BFD33650B7CE8E800BC8D76 /* dict.h in Headers */, 3BFD33660B7CE8E800BC8D76 /* event.h in Headers */, @@ -856,18 +799,13 @@ 3BFD33690B7CE8E800BC8D76 /* fvec.h in Headers */, 3BFD336C0B7CE8E800BC8D76 /* marker.h in Headers */, 3BFD336D0B7CE8E800BC8D76 /* mat.h in Headers */, - 3BFD336E0B7CE8E800BC8D76 /* mateditor.h in Headers */, 3BFD336F0B7CE8E800BC8D76 /* mathfuns.h in Headers */, 3BFD33700B7CE8E800BC8D76 /* note.h in Headers */, 3BFD33720B7CE8E800BC8D76 /* seqmidi.h in Headers */, 3BFD33740B7CE8E800BC8D76 /* sequence.h in Headers */, - 3BFD33750B7CE8E800BC8D76 /* tabeditor.h in Headers */, 3BFD33760B7CE8E800BC8D76 /* track.h in Headers */, - 3BFD33770B7CE8E800BC8D76 /* trackeditor.h in Headers */, - 3BFD33780B7CE8E800BC8D76 /* kdtree.h in Headers */, 3BFA27E60B81CDBB0056EC15 /* utils.h in Headers */, 3BFA293A0B81D5970056EC15 /* atom.h in Headers */, - 3BFA293B0B81D5970056EC15 /* client.h in Headers */, 3BFA293D0B81D5970056EC15 /* file.h in Headers */, 3BFA29420B81D5B70056EC15 /* fts.h in Headers */, 3BFA29440B81D5B70056EC15 /* patcher.h in Headers */, @@ -1104,7 +1042,6 @@ files = ( 5C209E450D0EDFD500BF135F /* ftmlib.c in Sources */, 5C209E480D0EDFD500BF135F /* ftmext.c in Sources */, - 5C209E490D0EDFD500BF135F /* maxclient.c in Sources */, 5C209E4A0D0EDFD500BF135F /* maxext.c in Sources */, 5C209E4B0D0EDFD500BF135F /* maxfile.c in Sources */, 5C209E4C0D0EDFD500BF135F /* maxconsole.c in Sources */, @@ -1113,7 +1050,6 @@ 5C209E4F0D0EDFD500BF135F /* ftmrte.c in Sources */, 5C209E500D0EDFD500BF135F /* maxtypes.c in Sources */, 5C209E510D0EDFD500BF135F /* bpf.c in Sources */, - 5C209E520D0EDFD500BF135F /* bpfeditor.c in Sources */, 5C209E530D0EDFD500BF135F /* data.c in Sources */, 5C209E540D0EDFD500BF135F /* datafiles.c in Sources */, 5C209E550D0EDFD500BF135F /* event.c in Sources */, @@ -1121,19 +1057,15 @@ 5C209E570D0EDFD500BF135F /* functions.c in Sources */, 5C209E580D0EDFD500BF135F /* fvec.c in Sources */, 5C209E590D0EDFD500BF135F /* marker.c in Sources */, - 5C209E5A0D0EDFD500BF135F /* mateditor.c in Sources */, 5C209E5B0D0EDFD500BF135F /* note.c in Sources */, 5C209E5C0D0EDFD500BF135F /* seqmidi.c in Sources */, 5C209E5D0D0EDFD500BF135F /* sequence.c in Sources */, - 5C209E5E0D0EDFD500BF135F /* tabeditor.c in Sources */, 5C209E5F0D0EDFD500BF135F /* track.c in Sources */, - 5C209E600D0EDFD500BF135F /* trackeditor.c in Sources */, 5C209E610D0EDFD500BF135F /* dict.c in Sources */, 5C209E620D0EDFD500BF135F /* mat.c in Sources */, 5C209E640D0EDFD500BF135F /* cubic.c in Sources */, 5C209E660D0EDFD500BF135F /* random.c in Sources */, 5C209E680D0EDFD500BF135F /* vec_fft.c in Sources */, - 5C209E690D0EDFD500BF135F /* client.c in Sources */, 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */, 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */, 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */, @@ -1160,7 +1092,6 @@ 5C209E850D0EDFD500BF135F /* status.c in Sources */, 5C209E860D0EDFD500BF135F /* tuple.c in Sources */, 5C209E870D0EDFD500BF135F /* variable.c in Sources */, - 5C209E880D0EDFD500BF135F /* kdtree.c in Sources */, 5C209E890D0EDFD500BF135F /* seqtxt.c in Sources */, 5C209E8A0D0EDFD500BF135F /* fring.c in Sources */, 5C209FFA0D0EE4C000BF135F /* seqsdif.c in Sources */, @@ -1169,8 +1100,6 @@ 5C283C810D130D31008C512E /* floatfuns.c in Sources */, 5C283D940D1326F5008C512E /* file.c in Sources */, 5C2843E80D1439BF008C512E /* ftmdump.c in Sources */, - 215693390E2E5DB3009AFAE9 /* kdtreebuild.c in Sources */, - 2156933F0E2E5DBE009AFAE9 /* k... [truncated message content] |
From: <nsc...@us...> - 2008-08-28 11:28:45
|
Revision: 1906 http://ftm.svn.sourceforge.net/ftm/?rev=1906&view=rev Author: nschnell Date: 2008-08-28 11:28:48 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Reintegrated Max 5 files into trunk. All files come from the branch ftm-2.5 r1905. For now (and for some time, maybe ever) we don't need a seperated branch for FTM 2.5. Modified Paths: -------------- trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/externals/max5/ftm.jitter.c trunk/ftm/externals/max5/ftm.object.c trunk/ftm/externals/max5/ftm.vecdisplay.c trunk/ftm/ftmlib/ftmversion.h trunk/ftm/ftmlib/parser.h Added Paths: ----------- trunk/ftm/build/max5/ trunk/ftm/externals/max5/ trunk/ftm/ftmlib/max5/ Modified: trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- branches/ftm-2.5/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-28 11:28:48 UTC (rev 1906) @@ -888,7 +888,7 @@ 3B1B81FC06D4A643009827F3 /* externals */ = { isa = PBXGroup; children = ( - 5CD5DD9C0E17FCAB00C85139 /* max */, + 5CD5DD9C0E17FCAB00C85139 /* max5 */, 5C8BFCDE083DD9960077C8A2 /* ftm.o.c */, 5CA8B05C0D3AC19C009FC9D9 /* ftm.m.c */, 3B1B846506D4C5F3009827F3 /* ftm.clone.c */, @@ -936,7 +936,7 @@ path = /Library/Frameworks; sourceTree = "<absolute>"; }; - 5CD5DD9C0E17FCAB00C85139 /* max */ = { + 5CD5DD9C0E17FCAB00C85139 /* max5 */ = { isa = PBXGroup; children = ( 5CD5DDA60E17FCAB00C85139 /* ftm.object.c */, @@ -949,7 +949,7 @@ 5CD5DDA80E17FCAB00C85139 /* ftmjs.c */, 5CD5DDA30E17FCAB00C85139 /* ftm.jitter.c */, ); - path = max; + path = max5; sourceTree = "<group>"; }; /* End PBXGroup section */ Modified: trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- branches/ftm-2.5/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-28 11:28:48 UTC (rev 1906) @@ -587,7 +587,7 @@ 5C0B809E082E0F7E00E7F7D3 /* ftmlib */ = { isa = PBXGroup; children = ( - 5C6B580C0BCE0E7E00111587 /* max */, + 5C6B580C0BCE0E7E00111587 /* max5 */, 3BFA295C0B81D64F0056EC15 /* array.h */, 3BFA29360B81D5970056EC15 /* atom.h */, 3BFA295D0B81D64F0056EC15 /* atomfile.h */, @@ -644,7 +644,7 @@ 5C0B809F082E0FAC00E7F7D3 /* ftmlib */ = { isa = PBXGroup; children = ( - 5CD5DCF60E17F4F500C85139 /* max */, + 5CD5DCF60E17F4F500C85139 /* max5 */, 3BFA29C60B81D7B80056EC15 /* array.c */, 3BFA29C70B81D7B80056EC15 /* atom.c */, 3BFA29CE0B81D7CB0056EC15 /* atomfile.c */, @@ -702,13 +702,13 @@ path = ../../..; sourceTree = SOURCE_ROOT; }; - 5C6B580C0BCE0E7E00111587 /* max */ = { + 5C6B580C0BCE0E7E00111587 /* max5 */ = { isa = PBXGroup; children = ( 5C8756880830E63900D62A08 /* ftmtypes.h */, 5CDB258708311E3500F543E3 /* ftmexternals.h */, ); - path = max; + path = max5; sourceTree = "<group>"; }; 5CA213FC0DA5947F00FA6B15 /* documentation */ = { @@ -719,7 +719,7 @@ name = documentation; sourceTree = "<group>"; }; - 5CD5DCF60E17F4F500C85139 /* max */ = { + 5CD5DCF60E17F4F500C85139 /* max5 */ = { isa = PBXGroup; children = ( 5CAE80B70830B01D00E85D7D /* maxconsole.c */, @@ -729,7 +729,7 @@ 5C6E6D800835099C009C0840 /* maxpat.c */, 5CDB257408311C4400F543E3 /* maxtypes.c */, ); - path = max; + path = max5; sourceTree = "<group>"; }; F4A410C3079BDB4300ADEFEF /* frameworks */ = { @@ -1282,7 +1282,7 @@ "$(FRAMEWORK_PATH)/MaxAudioAPI.framework/Headers", "${SRCROOT}/../../../ftmlib", "${SRCROOT}/../../../ftmlib/classes", - "${SRCROOT}/../../../ftmlib/max", + "${SRCROOT}/../../../ftmlib/max5", "${SRCROOT}/../../../components/libsndfile/src", "${SRCROOT}/../../../components/sdif/include", ); @@ -1334,7 +1334,7 @@ "$(FRAMEWORK_PATH)/MaxAudioAPI.framework/Headers", "${SRCROOT}/../../../ftmlib", "${SRCROOT}/../../../ftmlib/classes", - "${SRCROOT}/../../../ftmlib/max", + "${SRCROOT}/../../../ftmlib/max5", "${SRCROOT}/../../../components/libsndfile/src", "${SRCROOT}/../../../components/sdif/include", ); Modified: trunk/ftm/externals/max5/ftm.jitter.c =================================================================== --- branches/ftm-2.5/externals/max/ftm.jitter.c 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/externals/max5/ftm.jitter.c 2008-08-28 11:28:48 UTC (rev 1906) @@ -767,14 +767,13 @@ FTMEXT_INIT_HEADER(jitter) { ftmext_t *_e = (ftmext_t *)max_jit_obex_new(_c->handle, NULL); - t_patcher *patcher = (t_patcher *)(gensym("#P")->s_thing); ftmjit_t *self = (ftmjit_t *)FTMEXT_GET_EXT(); short ac = FTMEXT_GET_COUNT(); fts_atom_t *at = FTMEXT_GET_ARGS(); - + t_object *patcher = maxext_sym_hash_P->s_thing; + /* init FTM Max/MSP external */ - maxext_init_raw((ftmext_t *)self, patcher, &ac, &at); - + maxext_init_raw((ftmext_t *)self, _c, patcher); /* evaluate raw arguments */ ftmext_init_expression((ftmext_t *)self, ac, at); ac = fts_array_get_size(&((ftmext_t *)self)->arguments); Modified: trunk/ftm/externals/max5/ftm.object.c =================================================================== --- branches/ftm-2.5/externals/max/ftm.object.c 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/externals/max5/ftm.object.c 2008-08-28 11:28:48 UTC (rev 1906) @@ -52,15 +52,12 @@ static fts_symbol_t sym_restore_def = NULL; static void -ftmobj_cache_and_upload_object(ftmobj_t *self) +ftmobj_cache_object(ftmobj_t *self) { fts_atom_t *value = ftm_context_get_value(&self->context); if(fts_is_object(value)) - { self->obj = fts_get_object(value); - ftm_context_upload_object(&self->context); - } } /*************************************************************** @@ -294,7 +291,7 @@ if(strcmp(text, str)) { ftm_context_set_description(&self->context, str); - ftmobj_cache_and_upload_object(self); + ftmobj_cache_object(self); } //ftmobj_update_name_width(self); @@ -626,7 +623,7 @@ } ftm_context_restore_definition(&self->context, ac, at); - ftmobj_cache_and_upload_object(self); + ftmobj_cache_object(self); //ftmobj_update_name_width(self); //ftmobj_fit_width_to_text(self); @@ -637,7 +634,7 @@ ftmobj_redefine(ftmobj_t *self) { ftm_context_redefine(&self->context); - ftmobj_cache_and_upload_object(self); + ftmobj_cache_object(self); //ftmobj_update_name_width(self); //ftmobj_fit_width_to_text(self); @@ -886,8 +883,6 @@ ftmobj_class = ftmext_class_new(sym_ftm_object); ftmobj_class->handle = c; } - else - maxext_setup_failed(); return 0; } Modified: trunk/ftm/externals/max5/ftm.vecdisplay.c =================================================================== --- branches/ftm-2.5/externals/max/ftm.vecdisplay.c 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/externals/max5/ftm.vecdisplay.c 2008-08-28 11:28:48 UTC (rev 1906) @@ -278,8 +278,6 @@ vecdisplay_class = ftmext_class_new(gensym("ftm.vecdisplay")); vecdisplay_class->handle = c; } - else - maxext_setup_failed(); return 0; } Modified: trunk/ftm/ftmlib/ftmversion.h =================================================================== --- trunk/ftm/ftmlib/ftmversion.h 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/ftmlib/ftmversion.h 2008-08-28 11:28:48 UTC (rev 1906) @@ -1,13 +1,13 @@ /* generated automatically from xcode project ftmlib (target = ftmlib) by ./writeversion.sh */ #define FTM_VERSION_MAJOR 2 -#define FTM_VERSION_MINOR 4 +#define FTM_VERSION_MINOR 5 #define FTM_VERSION_RELEASE 0 #define FTM_VERSION_BETA "BETA" -#define FTM_VERSION 2.4 -#define FTM_VERSION_STRING "2.4" +#define FTM_VERSION 2.5 +#define FTM_VERSION_STRING "2.5" #define FTM_VERSION_DATE "08/2008" -#define FTM_VERSION_FULL 2.4.0 BETA -#define FTM_VERSION_FULL_STRING "2.4.0 BETA" -#define FTM_VERSION_FULL_DATE "2.4.0 BETA 08/2008" +#define FTM_VERSION_FULL 2.5.0 BETA +#define FTM_VERSION_FULL_STRING "2.5.0 BETA" +#define FTM_VERSION_FULL_DATE "2.5.0 BETA 08/2008" Modified: trunk/ftm/ftmlib/parser.h =================================================================== --- trunk/ftm/ftmlib/parser.h 2008-08-28 10:52:05 UTC (rev 1905) +++ trunk/ftm/ftmlib/parser.h 2008-08-28 11:28:48 UTC (rev 1906) @@ -142,7 +142,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 61 "/Users/schnell/Development/ftm/build/max/osx-macho/../../../ftmlib/parser.y" +#line 61 "/Users/schnell/Development/ftm/build/max5/osx-macho/../../../ftmlib/parser.y" { fts_atom_t a; fts_parsetree_t *n; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-08-29 15:53:10
|
Revision: 1912 http://ftm.svn.sourceforge.net/ftm/?rev=1912&view=rev Author: nschnell Date: 2008-08-29 15:53:19 +0000 (Fri, 29 Aug 2008) Log Message: ----------- noces without 's' Added Paths: ----------- trunk/ftm/lib/ Removed Paths: ------------- trunk/ftm/libs/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-08-29 16:14:20
|
Revision: 1914 http://ftm.svn.sourceforge.net/ftm/?rev=1914&view=rev Author: nschnell Date: 2008-08-29 16:14:29 +0000 (Fri, 29 Aug 2008) Log Message: ----------- minor corrections in doxygen doc Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/ftmlib/atom.h trunk/ftm/ftmlib/classes/fmat.h trunk/ftm/ftmlib/classes/mat.h trunk/ftm/ftmlib/ftmversion.h trunk/ftm/ftmlib/max/ftmexternals.h trunk/ftm/ftmlib/parser.h Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-29 16:14:29 UTC (rev 1914) @@ -3691,7 +3691,7 @@ buildSettings = { ARCHS = "$(NATIVE_ARCH)"; COPYING_PRESERVES_HFS_DATA = YES; - EXTERNALS_DIR = "../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-macho"; FRAMEWORK_PATH = /Library/Frameworks; FRAMEWORK_SEARCH_PATHS = ( "$(FTM_FRAMEWORK_PATH)", @@ -3734,7 +3734,7 @@ ); COPYING_PRESERVES_HFS_DATA = YES; COPY_PHASE_STRIP = YES; - EXTERNALS_DIR = "../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-macho"; FRAMEWORK_PATH = /Library/Frameworks; FRAMEWORK_SEARCH_PATHS = ( "$(FTM_FRAMEWORK_PATH)", Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-29 16:14:29 UTC (rev 1914) @@ -319,30 +319,7 @@ }; /* End PBXBuildRule section */ -/* Begin PBXContainerItemProxy section */ - 5C20A4600D0FF17D00BF135F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0; - remoteInfo = ftmlib; - }; - 5C2F98190D3FAE1100581C4C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0; - remoteInfo = ftmlib; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ - 1D53D83C0E1A83C300724B4E /* libFLAC.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libFLAC.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libFLAC.a"; sourceTree = SOURCE_ROOT; }; - 1D53D83D0E1A83C300724B4E /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libogg.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libogg.a"; sourceTree = SOURCE_ROOT; }; - 1D53D83E0E1A83C300724B4E /* libsndfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsndfile.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libsndfile.a"; sourceTree = SOURCE_ROOT; }; - 1D53D83F0E1A83C300724B4E /* libvorbis.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbis.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbis.a"; sourceTree = SOURCE_ROOT; }; - 1D53D8400E1A83C300724B4E /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisenc.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbisenc.a"; sourceTree = SOURCE_ROOT; }; - 1D53D8410E1A83C300724B4E /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisfile.a; path = "../../../../imtr-libs/built-libs-macosx/ub/libvorbisfile.a"; sourceTree = SOURCE_ROOT; }; 3B0075ED0B83237200B259E5 /* vec_fft.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vec_fft.h; sourceTree = "<group>"; }; 3B0075F50B8323E500B259E5 /* ftsconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftsconfig.h; sourceTree = "<group>"; }; 3B0313A90C904BA000DA4915 /* seqtxt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = seqtxt.c; sourceTree = "<group>"; }; @@ -542,12 +519,6 @@ 1D53D8340E1A83AC00724B4E /* libraries */ = { isa = PBXGroup; children = ( - 1D53D83C0E1A83C300724B4E /* libFLAC.a */, - 1D53D83D0E1A83C300724B4E /* libogg.a */, - 1D53D83E0E1A83C300724B4E /* libsndfile.a */, - 1D53D83F0E1A83C300724B4E /* libvorbis.a */, - 1D53D8400E1A83C300724B4E /* libvorbisenc.a */, - 1D53D8410E1A83C300724B4E /* libvorbisfile.a */, ); name = libraries; sourceTree = "<group>"; @@ -869,7 +840,6 @@ 5C209E400D0EDF8200BF135F /* PBXBuildRule */, ); dependencies = ( - 5C20A4610D0FF17D00BF135F /* PBXTargetDependency */, ); name = libftm; productName = ftm; @@ -890,7 +860,6 @@ 5C7009720B836A3F001663C7 /* PBXBuildRule */, ); dependencies = ( - 5C2F981A0D3FAE1100581C4C /* PBXTargetDependency */, ); name = libftmlight; productName = ftm; @@ -976,7 +945,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "rm -Rf $FRAMEWORK_PATH/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $FRAMEWORK_PATH\nrm -Rf $EXTERNALS_DIR/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $EXTERNALS_DIR\n\nmkdir $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nif [ -e \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" ] ; then\n\tcp -f \"../osx-java/build/$CONFIGURATION/libftmJNILib.jnilib\" $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\ncd $EXTERNALS_DIR/FTMLib.framework/Resources/java/\n\nFTMLIB_FRAMEWORK=`otool -L libftmJNILib.jnilib | grep FTM | awk '{print $1}'`\n\necho \"[patching dynamic library\"\necho \" from '$FTMLIB_FRAMEWORK'\"\necho \" to '@loader_path/../../FTMLib'\"\necho \" in 'libftmJNILib.jnilib']\"\n\ninstall_name_tool -change $FTMLIB_FRAMEWORK '@loader_path/../../FTMLib' libftmJNILib.jnilib\n\nfi\n"; + shellScript = "rm -Rf $FRAMEWORK_PATH/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $FRAMEWORK_PATH\nrm -Rf $EXTERNALS_DIR/FTMlib.framework\ncp -Rf $BUILT_PRODUCTS_DIR/FTMlib.framework $EXTERNALS_DIR\n"; }; 5C132586078C2B510008A86A /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1005,7 +974,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cp -Rf $BUILT_PRODUCTS_DIR/libftm.a /Library/Frameworks/FTMlib.framework/Versions/Current/Resources\nranlib /Library/Frameworks/FTMlib.framework/Versions/Current/Resources/libftm.a\n"; + shellScript = "cp -Rf $BUILT_PRODUCTS_DIR/libftm.a $STATIC_LIBRARIES_DIR\nranlib $STATIC_LIBRARIES_DIR/libftm.a\n"; }; 5C7009700B836A3F001663C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1018,7 +987,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cp -Rf $BUILT_PRODUCTS_DIR/libftmlight.a /Library/Frameworks/FTMlib.framework/Versions/Current/Resources\nranlib /Library/Frameworks/FTMlib.framework/Versions/Current/Resources/libftmlight.a\n"; + shellScript = "cp -Rf $BUILT_PRODUCTS_DIR/libftmlight.a $STATIC_LIBRARIES_DIR\nranlib $STATIC_LIBRARIES_DIR/libftmlight.a\n"; }; 5CA214520DA59AEB00FA6B15 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1210,19 +1179,6 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 5C20A4610D0FF17D00BF135F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D07F2BC0486CC7A007CD1D0 /* ftmlib */; - targetProxy = 5C20A4600D0FF17D00BF135F /* PBXContainerItemProxy */; - }; - 5C2F981A0D3FAE1100581C4C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D07F2BC0486CC7A007CD1D0 /* ftmlib */; - targetProxy = 5C2F98190D3FAE1100581C4C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin XCBuildConfiguration section */ 3B5DED9C0861BFE900B9AEEA /* Debug */ = { isa = XCBuildConfiguration; @@ -1231,9 +1187,9 @@ DYLIB_CURRENT_VERSION = "$(FRAMEWORK_VERSION)"; FRAMEWORK_VERSION = "$(VERSION_MAJOR).$(VERSION_MINOR)"; INSTALL_PATH = "$(FRAMEWORK_PATH)"; + LIBRARY_SEARCH_PATHS = "$(COMPONENTS_DIR)/built-libs-macosx/ub"; MACH_O_TYPE = mh_dylib; OTHER_LDFLAGS = ( - "-L${SRCROOT}/../../../components/built-libs-macosx/ub", "-lsdif", "-lFLAC", "${SRCROOT}/../../../components/built-libs-macosx/ub/libogg.a", @@ -1256,14 +1212,9 @@ DYLIB_CURRENT_VERSION = "$(FRAMEWORK_VERSION)"; FRAMEWORK_VERSION = "$(VERSION_MAJOR).$(VERSION_MINOR)"; INSTALL_PATH = "$(FRAMEWORK_PATH)"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - ); - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../components/built-libs-macosx/ub\""; + LIBRARY_SEARCH_PATHS = "$(COMPONENTS_DIR)/built-libs-macosx/ub"; MACH_O_TYPE = mh_dylib; OTHER_LDFLAGS = ( - "-L${SRCROOT}/../../../components/built-libs-macosx/ub", "-lsdif", "-lFLAC", "${SRCROOT}/../../../components/built-libs-macosx/ub/libogg.a", @@ -1283,8 +1234,9 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH)"; + COMPONENTS_DIR = "${SRCROOT}/../../../components"; COPY_PHASE_STRIP = NO; - EXTERNALS_DIR = "../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-macho"; FRAMEWORK_PATH = /Library/Frameworks; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -1318,10 +1270,11 @@ "${SRCROOT}/../../../ftmlib", "${SRCROOT}/../../../ftmlib/classes", "${SRCROOT}/../../../ftmlib/max", - "${SRCROOT}/../../../components/libsndfile/src", - "${SRCROOT}/../../../components/sdif/include", + "$(COMPONENTS_DIR)/libsndfile/src", + "$(COMPONENTS_DIR)/sdif/include", ); SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + STATIC_LIBRARIES_DIR = ../../../lib; VERSION_BETA = BETA; VERSION_MAJOR = 2; VERSION_MINOR = 4; @@ -1336,8 +1289,9 @@ ppc, i386, ); + COMPONENTS_DIR = ../../../components; COPY_PHASE_STRIP = YES; - EXTERNALS_DIR = "../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-macho"; FRAMEWORK_PATH = /Library/Frameworks; GCC_AUTO_VECTORIZATION = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -1371,8 +1325,8 @@ "${SRCROOT}/../../../ftmlib", "${SRCROOT}/../../../ftmlib/classes", "${SRCROOT}/../../../ftmlib/max", - "${SRCROOT}/../../../components/libsndfile/src", - "${SRCROOT}/../../../components/sdif/include", + "$(COMPONENTS_DIR)/libsndfile/src", + "$(COMPONENTS_DIR)/sdif/include", ); SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; VERSION_BETA = BETA; Modified: trunk/ftm/ftmlib/atom.h =================================================================== --- trunk/ftm/ftmlib/atom.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/atom.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -21,7 +21,7 @@ */ /** - * FTS atom support.ww + * FTS atom support. * * Atoms are arbitary values. * Modified: trunk/ftm/ftmlib/classes/fmat.h =================================================================== --- trunk/ftm/ftmlib/classes/fmat.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/classes/fmat.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -139,7 +139,7 @@ * Get pointer to values of redimensioned fmat. * (The contained data is not rearranged to fit the new dimensions). * - * @param fmat the fmat + * @param self the fmat * @param m number of rows * @param n number of columns * @return actual number of rows obtained @@ -154,7 +154,7 @@ * This function re-arranges the matrix values corresponing to the new dimensions. * Additional rows and/or colums will be zeroed. * - * @param fmat the fmat + * @param self the fmat * @param m number of rows * @param n number of columns * @return actual number of rows obtained @@ -168,7 +168,7 @@ * @brief * Change number of rows of an fmat. * - * @param fmat the fmat + * @param self the fmat * @param m new number of rows * @return actual number of rows obtained * @ingroup fts_data_fmat @@ -179,7 +179,7 @@ * @brief * Change number of columns of an fmat. * - * @param fmat the fmat + * @param self the fmat * @param n new number of columns * @return actual number of columns obtained * @ingroup fts_data_fmat @@ -190,9 +190,9 @@ * @brief * Insert (zeroed) columns at given column index to an fmat. * - * @param fmat the fmat + * @param self the fmat * @param pos index where insert new cols - * @param numcols number of columns to insert + * @param num number of columns to insert * @return actual number of rows inserted * @ingroup fts_data_fmat */ @@ -202,9 +202,9 @@ * @brief * Insert (zeroed) rows at given row index to an fmat. * - * @param fmat the fmat + * @param self the fmat * @param pos index where insert new rows - * @param numrows number of rows to insert + * @param num number of rows to insert * @return actual number of columns inserted * @ingroup fts_data_fmat */ @@ -214,25 +214,25 @@ * @brief * Delete given number of rows from given index. * - * @param fmat the fmat + * @param self the fmat * @param start_idx start index * @param numrows number of rows to delete * @return actual number of rows deleted * @ingroup fts_data_fmat */ -FTS_API int fmat_delete_rows(fmat_t *fmat, int start_idx, int numrows); +FTS_API int fmat_delete_rows(fmat_t *self, int start_idx, int numrows); /** * @brief * Delete given numner of columns from given index. * - * @param fmat the fmat + * @param self the fmat * @param start_idx start index * @param numcols number of columns to delete * @return actual number of columns deleted * @ingroup fts_data_fmat */ -FTS_API int fmat_delete_columns(fmat_t *fmat, int start_idx, int numcols); +FTS_API int fmat_delete_columns(fmat_t *self, int start_idx, int numcols); /* deprecated functions */ #define fmat_get_ptr(m) ((m)->values) Modified: trunk/ftm/ftmlib/classes/mat.h =================================================================== --- trunk/ftm/ftmlib/classes/mat.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/classes/mat.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -81,11 +81,11 @@ * * @param mat the mat * @param pos insert position - * @param numrows number of rows to insert + * @param num number of rows to insert * @return actual number of rows inserted * @ingroup fts_data_mat */ -FTS_API int mat_insert_rows_nogrow(mat_t *mat, int pos, int numrows); +FTS_API int mat_insert_rows_nogrow(mat_t *mat, int pos, int num); /** * @brief @@ -93,11 +93,11 @@ * * @param mat the mat * @param pos insert position - * @param numcols number fs columns to insert + * @param num number fs columns to insert * @return actual number of columns inserted * @ingroup fts_data_mat */ -FTS_API int mat_insert_columns_nogrow(mat_t *mat, int pos, int numcols); +FTS_API int mat_insert_columns_nogrow(mat_t *mat, int pos, int num); /** * @brief @@ -105,11 +105,11 @@ * * @param mat the mat * @param pos start position - * @param numrows number of rows to be deleted + * @param num number of rows to be deleted * @return actual number of rows deleted * @ingroup fts_data_mat */ -FTS_API int mat_delete_rows(mat_t *mat, int pos, int numrows); +FTS_API int mat_delete_rows(mat_t *mat, int pos, int num); /** * @brief @@ -117,11 +117,11 @@ * * @param mat the mat * @param pos start position - * @param numrows number of columns to be deleted + * @param num number of columns to be deleted * @return actual number of columns deletes * @ingroup fts_data_mat */ -FTS_API int mat_delete_columns(mat_t *mat, int pos, int numcols); +FTS_API int mat_delete_columns(mat_t *mat, int pos, int num); /* deprecated functions */ #define mat_get_ptr(x) ((x)->data) @@ -243,7 +243,7 @@ * @brief * Copy values (and dimensions) of one mat to another. * - * @param org original mat + * @param orig original mat * @param copy copy mat * @ingroup fts_data_mat */ Modified: trunk/ftm/ftmlib/ftmversion.h =================================================================== --- trunk/ftm/ftmlib/ftmversion.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/ftmversion.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -1,13 +1,13 @@ /* generated automatically from xcode project ftmlib (target = ftmlib) by ./writeversion.sh */ #define FTM_VERSION_MAJOR 2 -#define FTM_VERSION_MINOR 5 +#define FTM_VERSION_MINOR 4 #define FTM_VERSION_RELEASE 0 #define FTM_VERSION_BETA "BETA" -#define FTM_VERSION 2.5 -#define FTM_VERSION_STRING "2.5" +#define FTM_VERSION 2.4 +#define FTM_VERSION_STRING "2.4" #define FTM_VERSION_DATE "08/2008" -#define FTM_VERSION_FULL 2.5.0 BETA -#define FTM_VERSION_FULL_STRING "2.5.0 BETA" -#define FTM_VERSION_FULL_DATE "2.5.0 BETA 08/2008" +#define FTM_VERSION_FULL 2.4.0 BETA +#define FTM_VERSION_FULL_STRING "2.4.0 BETA" +#define FTM_VERSION_FULL_DATE "2.4.0 BETA 08/2008" Modified: trunk/ftm/ftmlib/max/ftmexternals.h =================================================================== --- trunk/ftm/ftmlib/max/ftmexternals.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/max/ftmexternals.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -132,7 +132,7 @@ #define FTMEXT_CLASS_ATTRIBUTE_NUMBER(p, m, x, d) do { ftmext_class_attribute(_c, #m, fts_number_class, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_NUMBER(p, m, d); } while(0) #define FTMEXT_CLASS_ATTRIBUTE_SYMBOL(p, m, x, d) do { ftmext_class_attribute(_c, #m, fts_symbol_class, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_SYMBOL(p, m, d); } while(0) -#define FTMEXT_CLASS_ATTRIBUTE_BOOLEAN(p, m, x, d) do { ftmext_class_attribute(_c, #m, ftmext_pseudoclass_boolean, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_ANY(p, m, d); } while(0) +#define FTMEXT_CLASS_ATTRIBUTE_BOOLEAN(p, m, x, d) do { ftmext_class_attribute(_c, #m, ftmext_pseudoclass_boolean, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_BOOLEAN(p, m, d); } while(0) #define FTMEXT_CLASS_ATTRIBUTE_OBJECT(p, t, m, x, d) do { ftmext_class_attribute(_c, #m, t, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_OBJECT(p, t, m, d); } while(0) #define FTMEXT_CLASS_ATTRIBUTE_ANY(p, m, x, d) do { ftmext_class_attribute(_c, #m, ftmext_pseudoclass_any, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_ANY(p, m, d); } while(0) #define FTMEXT_CLASS_ATTRIBUTE_VARARGS(p, m, x, d) do { ftmext_class_attribute(_c, #m, ftmext_pseudoclass_varargs, (ftmext_method_t)_FTMEXT_GEN_METHOD_NAME(p, m), 0, (d)); if((x) != FTMEXT_ATTRIBUTE_STATIC) FTMEXT_CLASS_MESSAGE_VARARGS(p, m, d); } while(0) @@ -314,7 +314,7 @@ /* dsp performance */ #define FTMEXT_DSP_PERFORM(p) static t_int * _FTMEXT_GEN_METHOD_NAME(p, _perform) (t_int *_dsp_words) { \ ftmext_t *_e = (ftmext_t *)(_dsp_words[1]); int _dsp_size = (int)(_dsp_words[2]); \ - if(maxext_dsp_idle(_e, _dsp_words + 3 + ftmext_get_inlets_dsp(_e), _dsp_size)) goto _ftmext_exit_label; + if(maxext_dsp_idle(_e, (float **)(_dsp_words + 3 + ftmext_get_inlets_dsp(_e)), _dsp_size)) goto _ftmext_exit_label; #define FTMEXT_DSP_PERFORM_RETURN _ftmext_exit_label: return (_dsp_words + 3 + ftmext_get_inlets_dsp(_e) + ftmext_get_outlets_dsp(_e)); } Modified: trunk/ftm/ftmlib/parser.h =================================================================== --- trunk/ftm/ftmlib/parser.h 2008-08-29 16:10:57 UTC (rev 1913) +++ trunk/ftm/ftmlib/parser.h 2008-08-29 16:14:29 UTC (rev 1914) @@ -142,7 +142,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 61 "/Users/schnell/Development/ftm/build/max5/osx-macho/../../../ftmlib/parser.y" +#line 61 "/Users/schnell/Development/ftm-and-co/ftm/build/max/osx-macho/../../../ftmlib/parser.y" { fts_atom_t a; fts_parsetree_t *n; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-08-30 03:24:09
|
Revision: 1916 http://ftm.svn.sourceforge.net/ftm/?rev=1916&view=rev Author: nschnell Date: 2008-08-30 03:24:15 +0000 (Sat, 30 Aug 2008) Log Message: ----------- started to clean up FTM 2.4 - introduced better separation between FTS basic elements and the rest (data, utils, and files) - left out everything but the basic elements from ftmlight (and its headers) Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/ftmlib/atomfile.c trunk/ftm/ftmlib/atomfile.h trunk/ftm/ftmlib/audiofile.c trunk/ftm/ftmlib/audiofile.h trunk/ftm/ftmlib/class.c trunk/ftm/ftmlib/class.h trunk/ftm/ftmlib/classes/bpf.c trunk/ftm/ftmlib/classes/data.c trunk/ftm/ftmlib/classes/data.h trunk/ftm/ftmlib/classes/datafiles.c trunk/ftm/ftmlib/classes/dict.c trunk/ftm/ftmlib/classes/event.c trunk/ftm/ftmlib/classes/fmat.c trunk/ftm/ftmlib/classes/fring.c trunk/ftm/ftmlib/classes/fvec.c trunk/ftm/ftmlib/classes/marker.c trunk/ftm/ftmlib/classes/mat.c trunk/ftm/ftmlib/classes/note.c trunk/ftm/ftmlib/classes/note.h trunk/ftm/ftmlib/classes/seqmidi.c trunk/ftm/ftmlib/classes/seqmidi.h trunk/ftm/ftmlib/classes/seqtxt.c trunk/ftm/ftmlib/classes/sequence.c trunk/ftm/ftmlib/classes/track.c trunk/ftm/ftmlib/cubic.c trunk/ftm/ftmlib/cubic.h trunk/ftm/ftmlib/expression.c trunk/ftm/ftmlib/file.c trunk/ftm/ftmlib/file.h trunk/ftm/ftmlib/floatfuns.c trunk/ftm/ftmlib/floatfuns.h trunk/ftm/ftmlib/ftmconfig.h trunk/ftm/ftmlib/ftmext.c trunk/ftm/ftmlib/ftmlib.c trunk/ftm/ftmlib/ftmlib.h trunk/ftm/ftmlib/ftmlight.c trunk/ftm/ftmlib/ftmsdif.h trunk/ftm/ftmlib/fts.h trunk/ftm/ftmlib/ftsconfig.h trunk/ftm/ftmlib/max/maxconsole.c trunk/ftm/ftmlib/max/maxext.c trunk/ftm/ftmlib/max/maxfile.c trunk/ftm/ftmlib/mem.h trunk/ftm/ftmlib/message.c trunk/ftm/ftmlib/midievent.c trunk/ftm/ftmlib/midievent.h trunk/ftm/ftmlib/midifile.c trunk/ftm/ftmlib/midifile.h trunk/ftm/ftmlib/parser.h trunk/ftm/ftmlib/post.c trunk/ftm/ftmlib/random.c trunk/ftm/ftmlib/random.h trunk/ftm/ftmlib/seqsdif.c trunk/ftm/ftmlib/timebase.c trunk/ftm/ftmlib/utils.h trunk/ftm/ftmlib/variable.c trunk/ftm/ftmlib/vec_fft.h Added Paths: ----------- trunk/ftm/lib/max/ Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-29 23:27:26 UTC (rev 1915) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-30 03:24:15 UTC (rev 1916) @@ -32,58 +32,18 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 3B0075EE0B83237200B259E5 /* vec_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B0075F60B8323E500B259E5 /* ftsconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3B0313AA0C904BA000DA4915 /* seqtxt.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0313A90C904BA000DA4915 /* seqtxt.c */; }; 3B1A928C06D3B3F8009882D6 /* ftmlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1A928906D3B3F8009882D6 /* ftmlib.c */; }; - 3B1A928E06D3B3F8009882D6 /* ftmlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3B20CFB6079EAF920030D427 /* ftmlib.icns in Resources */ = {isa = PBXBuildFile; fileRef = 3B20CFB5079EAF920030D427 /* ftmlib.icns */; }; - 3B27319E0B8222C400C98C90 /* cubic.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B2731980B8222C400C98C90 /* cubic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B2731A00B8222C400C98C90 /* mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B2731A10B8222C400C98C90 /* parsetree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B2731A20B8222C400C98C90 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BE0A3D00CE7136400C825AF /* ftmconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE0A3CF0CE7136400C825AF /* ftmconfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BE243DE0E093FB900DF5AE3 /* guiinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BF406D70B80C1E7005FD5B7 /* dict.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D50B80C1E7005FD5B7 /* dict.c */; }; 3BF406D80B80C1E7005FD5B7 /* mat.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D60B80C1E7005FD5B7 /* mat.c */; }; - 3BFA27E60B81CDBB0056EC15 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA27EC0B81CDEF0056EC15 /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 3BFA27F60B81CE310056EC15 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; 3BFA27FA0B81CE450056EC15 /* vec_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* vec_fft.c */; }; - 3BFA293A0B81D5970056EC15 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA293D0B81D5970056EC15 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29420B81D5B70056EC15 /* fts.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29440B81D5B70056EC15 /* patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29450B81D5B70056EC15 /* ftmcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29410B81D5B70056EC15 /* ftmcontext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29490B81D5CB0056EC15 /* symbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA294A0B81D5CB0056EC15 /* timebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA294B0B81D5CB0056EC15 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA29540B81D6030056EC15 /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; 3BFA295B0B81D6240056EC15 /* timebase.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29580B81D6240056EC15 /* timebase.c */; }; - 3BFA295F0B81D64F0056EC15 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29600B81D64F0056EC15 /* atomfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29610B81D64F0056EC15 /* audiofile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295E0B81D64F0056EC15 /* audiofile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29640B81D6610056EC15 /* bytestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29650B81D6610056EC15 /* class.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29690B81D68B0056EC15 /* dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29660B81D68B0056EC15 /* dumper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA296A0B81D68B0056EC15 /* expression.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA296F0B81D69F0056EC15 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29700B81D69F0056EC15 /* hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29710B81D69F0056EC15 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29750B81D6B20056EC15 /* list.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29770B81D6B20056EC15 /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA297B0B81D6C80056EC15 /* midievent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29780B81D6C80056EC15 /* midievent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA297C0B81D6C80056EC15 /* midifile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA297D0B81D6C80056EC15 /* object.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29870B81D6FB0056EC15 /* post.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29880B81D6FB0056EC15 /* predefsymbols.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29890B81D6FB0056EC15 /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA298E0B81D7120056EC15 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA298F0B81D7120056EC15 /* tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29900B81D7120056EC15 /* tuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA29910B81D7120056EC15 /* variable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3BFA29CA0B81D7B80056EC15 /* array.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C60B81D7B80056EC15 /* array.c */; }; 3BFA29CB0B81D7B80056EC15 /* atom.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C70B81D7B80056EC15 /* atom.c */; }; 3BFA29CC0B81D7B80056EC15 /* parser.y in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C80B81D7B80056EC15 /* parser.y */; }; @@ -119,26 +79,9 @@ 3BFD33140B7CE89200BC8D76 /* seqmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32F90B7CE89200BC8D76 /* seqmidi.c */; }; 3BFD33190B7CE89200BC8D76 /* sequence.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD32FE0B7CE89200BC8D76 /* sequence.c */; }; 3BFD331B0B7CE89200BC8D76 /* track.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFD33000B7CE89200BC8D76 /* track.c */; }; - 3BFD33620B7CE8E800BC8D76 /* bpf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33640B7CE8E800BC8D76 /* data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33650B7CE8E800BC8D76 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33660B7CE8E800BC8D76 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33680B7CE8E800BC8D76 /* fmat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33510B7CE8E800BC8D76 /* fmat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33690B7CE8E800BC8D76 /* fvec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD336C0B7CE8E800BC8D76 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD336D0B7CE8E800BC8D76 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD336F0B7CE8E800BC8D76 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33700B7CE8E800BC8D76 /* note.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* note.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33720B7CE8E800BC8D76 /* seqmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33740B7CE8E800BC8D76 /* sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFD33760B7CE8E800BC8D76 /* track.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C051D840CF4D45F00BFAA28 /* fring.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C051D860CF4D47400BFAA28 /* fring.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C051D850CF4D47400BFAA28 /* fring.c */; }; - 5C0B809D082E0E9200E7F7D3 /* ftmrte.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C0B80A2082E1B2A00E7F7D3 /* ftmext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C0B80C3082E1D0500E7F7D3 /* maxext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C0082E1D0500E7F7D3 /* maxext.c */; }; 5C0B80C4082E1D0500E7F7D3 /* maxfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C1082E1D0500E7F7D3 /* maxfile.c */; }; - 5C132591078C2E9C0008A86A /* ftmversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C209E450D0EDFD500BF135F /* ftmlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1A928906D3B3F8009882D6 /* ftmlib.c */; }; 5C209E480D0EDFD500BF135F /* ftmext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F07D1078218BA00A59DE2 /* ftmext.c */; }; 5C209E4A0D0EDFD500BF135F /* maxext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C0082E1D0500E7F7D3 /* maxext.c */; }; @@ -196,15 +139,13 @@ 5C209E8A0D0EDFD500BF135F /* fring.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C051D850CF4D47400BFAA28 /* fring.c */; }; 5C209FF90D0EE4AE00BF135F /* ftmsdif.c in Sources */ = {isa = PBXBuildFile; fileRef = F4738A84071597EB000FCD04 /* ftmsdif.c */; }; 5C209FFA0D0EE4C000BF135F /* seqsdif.c in Sources */ = {isa = PBXBuildFile; fileRef = F4738A8A071597EB000FCD04 /* seqsdif.c */; }; - 5C2839410D128DA6008C512E /* config-macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C283C7F0D130D31008C512E /* floatfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C283C7D0D130D31008C512E /* floatfuns.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C283C800D130D31008C512E /* floatfuns.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C283C7E0D130D31008C512E /* floatfuns.c */; }; 5C283C810D130D31008C512E /* floatfuns.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C283C7E0D130D31008C512E /* floatfuns.c */; }; 5C283D930D1326F5008C512E /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C283D920D1326F5008C512E /* file.c */; }; 5C283D940D1326F5008C512E /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C283D920D1326F5008C512E /* file.c */; }; 5C2843E70D1439BF008C512E /* ftmdump.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C2843E60D1439BF008C512E /* ftmdump.c */; }; 5C2843E80D1439BF008C512E /* ftmdump.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C2843E60D1439BF008C512E /* ftmdump.c */; }; - 5C2843EB0D1439D0008C512E /* ftmdump.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2843EA0D1439D0008C512E /* ftmdump.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C47A4660E68C9BE00487D57 /* sdif.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C6ED2990E68C818005E2C45 /* sdif.h */; }; 5C5F07D3078218BA00A59DE2 /* ftmext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F07D1078218BA00A59DE2 /* ftmext.c */; }; 5C6E6D810835099C009C0840 /* maxpat.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C6E6D800835099C009C0840 /* maxpat.c */; }; 5C6ECF840E68B667005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; @@ -273,15 +214,184 @@ 5C6ECFC30E68B667005E2C45 /* utils.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; 5C6ECFC40E68B667005E2C45 /* variable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; 5C6ECFC50E68B667005E2C45 /* vec_fft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ED0EF0E68C390005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; + 5C6ED0F00E68C390005E2C45 /* atom.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; + 5C6ED0F10E68C390005E2C45 /* atomfile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; }; + 5C6ED0F20E68C390005E2C45 /* audiofile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295E0B81D64F0056EC15 /* audiofile.h */; }; + 5C6ED0F30E68C390005E2C45 /* bpf.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; }; + 5C6ED0F40E68C390005E2C45 /* bytestream.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; + 5C6ED0F50E68C390005E2C45 /* class.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; }; + 5C6ED0F60E68C390005E2C45 /* config-macosx.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; }; + 5C6ED0F70E68C390005E2C45 /* cubic.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B2731980B8222C400C98C90 /* cubic.h */; }; + 5C6ED0F80E68C390005E2C45 /* data.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; }; + 5C6ED0F90E68C390005E2C45 /* dict.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; }; + 5C6ED0FA0E68C390005E2C45 /* dumper.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29660B81D68B0056EC15 /* dumper.h */; }; + 5C6ED0FB0E68C390005E2C45 /* event.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; }; + 5C6ED0FC0E68C390005E2C45 /* expression.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; }; + 5C6ED0FD0E68C390005E2C45 /* file.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; }; + 5C6ED0FE0E68C390005E2C45 /* floatfuns.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C283C7D0D130D31008C512E /* floatfuns.h */; }; + 5C6ED0FF0E68C390005E2C45 /* fmat.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33510B7CE8E800BC8D76 /* fmat.h */; }; + 5C6ED1000E68C390005E2C45 /* fring.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; }; + 5C6ED1010E68C390005E2C45 /* ftmconfig.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BE0A3CF0CE7136400C825AF /* ftmconfig.h */; }; + 5C6ED1020E68C390005E2C45 /* ftmcontext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29410B81D5B70056EC15 /* ftmcontext.h */; }; + 5C6ED1030E68C390005E2C45 /* ftmdump.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C2843EA0D1439D0008C512E /* ftmdump.h */; }; + 5C6ED1040E68C390005E2C45 /* ftmext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; }; + 5C6ED1050E68C390005E2C45 /* ftmexternals.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; }; + 5C6ED1060E68C390005E2C45 /* ftmlib.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; }; + 5C6ED1080E68C390005E2C45 /* ftmrte.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; }; + 5C6ED1090E68C390005E2C45 /* ftmsdif.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; }; + 5C6ED10A0E68C390005E2C45 /* ftmtypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; }; + 5C6ED10B0E68C390005E2C45 /* ftmversion.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; }; + 5C6ED10C0E68C390005E2C45 /* fts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; }; + 5C6ED10D0E68C390005E2C45 /* ftsconfig.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; }; + 5C6ED10E0E68C390005E2C45 /* function.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; }; + 5C6ED10F0E68C390005E2C45 /* fvec.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; }; + 5C6ED1100E68C390005E2C45 /* guiinterfaces.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; + 5C6ED1110E68C390005E2C45 /* hashtable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; + 5C6ED1120E68C390005E2C45 /* iterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; + 5C6ED1130E68C390005E2C45 /* list.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; }; + 5C6ED1140E68C390005E2C45 /* marker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; + 5C6ED1150E68C390005E2C45 /* mat.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; + 5C6ED1160E68C390005E2C45 /* mathfuns.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; + 5C6ED1170E68C390005E2C45 /* mem.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; }; + 5C6ED1180E68C390005E2C45 /* message.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; }; + 5C6ED1190E68C390005E2C45 /* midievent.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29780B81D6C80056EC15 /* midievent.h */; }; + 5C6ED11A0E68C390005E2C45 /* midifile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; }; + 5C6ED11B0E68C390005E2C45 /* note.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* note.h */; }; + 5C6ED11C0E68C390005E2C45 /* object.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; + 5C6ED11D0E68C390005E2C45 /* parser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; + 5C6ED11E0E68C390005E2C45 /* parsetree.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; + 5C6ED11F0E68C390005E2C45 /* patcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED1200E68C390005E2C45 /* post.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; + 5C6ED1210E68C390005E2C45 /* predefsymbols.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; + 5C6ED1220E68C390005E2C45 /* random.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; + 5C6ED1230E68C390005E2C45 /* seqmidi.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; }; + 5C6ED1240E68C390005E2C45 /* sequence.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; }; + 5C6ED1250E68C390005E2C45 /* sndfile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5CB4C03E0B8D0BC60069B542 /* sndfile.h */; }; + 5C6ED1260E68C390005E2C45 /* stack.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; }; + 5C6ED1270E68C390005E2C45 /* status.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; }; + 5C6ED1280E68C390005E2C45 /* symbol.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; }; + 5C6ED1290E68C390005E2C45 /* timebase.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; }; + 5C6ED12A0E68C390005E2C45 /* tokenizer.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; }; + 5C6ED12B0E68C390005E2C45 /* track.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; }; + 5C6ED12C0E68C390005E2C45 /* tuple.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; }; + 5C6ED12D0E68C390005E2C45 /* types.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; + 5C6ED12E0E68C390005E2C45 /* utils.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; + 5C6ED12F0E68C390005E2C45 /* variable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; + 5C6ED1300E68C390005E2C45 /* vec_fft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ED2000E68C4AB005E2C45 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; + 5C6ED2010E68C4AB005E2C45 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; + 5C6ED2020E68C4AB005E2C45 /* atomfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; }; + 5C6ED2030E68C4AB005E2C45 /* audiofile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295E0B81D64F0056EC15 /* audiofile.h */; }; + 5C6ED2040E68C4AB005E2C45 /* bpf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; }; + 5C6ED2050E68C4AB005E2C45 /* bytestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; + 5C6ED2060E68C4AB005E2C45 /* class.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; }; + 5C6ED2070E68C4AB005E2C45 /* config-macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; }; + 5C6ED2080E68C4AB005E2C45 /* cubic.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B2731980B8222C400C98C90 /* cubic.h */; }; + 5C6ED2090E68C4AB005E2C45 /* data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; }; + 5C6ED20A0E68C4AB005E2C45 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; }; + 5C6ED20B0E68C4AB005E2C45 /* dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29660B81D68B0056EC15 /* dumper.h */; }; + 5C6ED20C0E68C4AB005E2C45 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; }; + 5C6ED20D0E68C4AB005E2C45 /* expression.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; }; + 5C6ED20E0E68C4AB005E2C45 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; }; + 5C6ED20F0E68C4AB005E2C45 /* floatfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C283C7D0D130D31008C512E /* floatfuns.h */; }; + 5C6ED2100E68C4AB005E2C45 /* fmat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33510B7CE8E800BC8D76 /* fmat.h */; }; + 5C6ED2110E68C4AB005E2C45 /* fring.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; }; + 5C6ED2120E68C4AB005E2C45 /* ftmconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE0A3CF0CE7136400C825AF /* ftmconfig.h */; }; + 5C6ED2130E68C4AB005E2C45 /* ftmcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29410B81D5B70056EC15 /* ftmcontext.h */; }; + 5C6ED2140E68C4AB005E2C45 /* ftmdump.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2843EA0D1439D0008C512E /* ftmdump.h */; }; + 5C6ED2150E68C4AB005E2C45 /* ftmext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; }; + 5C6ED2160E68C4AB005E2C45 /* ftmexternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; }; + 5C6ED2170E68C4AB005E2C45 /* ftmlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; }; + 5C6ED2190E68C4AB005E2C45 /* ftmrte.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; }; + 5C6ED21A0E68C4AB005E2C45 /* ftmsdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; }; + 5C6ED21B0E68C4AB005E2C45 /* ftmtypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; }; + 5C6ED21C0E68C4AB005E2C45 /* ftmversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; }; + 5C6ED21D0E68C4AB005E2C45 /* fts.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; }; + 5C6ED21E0E68C4AB005E2C45 /* ftsconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; }; + 5C6ED21F0E68C4AB005E2C45 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; }; + 5C6ED2200E68C4AB005E2C45 /* fvec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; }; + 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; + 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; + 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; + 5C6ED2240E68C4AB005E2C45 /* list.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; }; + 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; + 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; + 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; + 5C6ED2280E68C4AB005E2C45 /* mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; }; + 5C6ED2290E68C4AB005E2C45 /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; }; + 5C6ED22A0E68C4AB005E2C45 /* midievent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29780B81D6C80056EC15 /* midievent.h */; }; + 5C6ED22B0E68C4AB005E2C45 /* midifile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; }; + 5C6ED22C0E68C4AB005E2C45 /* note.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* note.h */; }; + 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; + 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; + 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; + 5C6ED2300E68C4AB005E2C45 /* patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; + 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; + 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; + 5C6ED2340E68C4AB005E2C45 /* seqmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; }; + 5C6ED2350E68C4AB005E2C45 /* sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; }; + 5C6ED2360E68C4AB005E2C45 /* sndfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB4C03E0B8D0BC60069B542 /* sndfile.h */; }; + 5C6ED2370E68C4AB005E2C45 /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; }; + 5C6ED2380E68C4AB005E2C45 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; }; + 5C6ED2390E68C4AB005E2C45 /* symbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; }; + 5C6ED23A0E68C4AB005E2C45 /* timebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; }; + 5C6ED23B0E68C4AB005E2C45 /* tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; }; + 5C6ED23C0E68C4AB005E2C45 /* track.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; }; + 5C6ED23D0E68C4AB005E2C45 /* tuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; }; + 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; + 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; + 5C6ED2400E68C4AB005E2C45 /* variable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; + 5C6ED2410E68C4AB005E2C45 /* vec_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ED2480E68C68C005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; + 5C6ED2490E68C68C005E2C45 /* atom.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; + 5C6ED24D0E68C68C005E2C45 /* bytestream.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; + 5C6ED24E0E68C68C005E2C45 /* class.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; }; + 5C6ED24F0E68C68C005E2C45 /* config-macosx.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; }; + 5C6ED2550E68C68C005E2C45 /* expression.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; }; + 5C6ED25D0E68C68C005E2C45 /* ftmext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; }; + 5C6ED25E0E68C68C005E2C45 /* ftmexternals.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; }; + 5C6ED2600E68C68C005E2C45 /* ftmlight.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5CFAF6C20B8DC284000D25AE /* ftmlight.h */; }; + 5C6ED2610E68C68C005E2C45 /* ftmrte.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; }; + 5C6ED2620E68C68C005E2C45 /* ftmsdif.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; }; + 5C6ED2630E68C68C005E2C45 /* ftmtypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; }; + 5C6ED2640E68C68C005E2C45 /* ftmversion.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; }; + 5C6ED2650E68C68C005E2C45 /* fts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; }; + 5C6ED2660E68C68C005E2C45 /* ftsconfig.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; }; + 5C6ED2670E68C68C005E2C45 /* function.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; }; + 5C6ED2680E68C68C005E2C45 /* fvec.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; }; + 5C6ED26A0E68C68C005E2C45 /* hashtable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; + 5C6ED26B0E68C68C005E2C45 /* iterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; + 5C6ED26F0E68C68C005E2C45 /* mathfuns.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; + 5C6ED2700E68C68C005E2C45 /* mem.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; }; + 5C6ED2710E68C68C005E2C45 /* message.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; }; + 5C6ED2730E68C68C005E2C45 /* midifile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; }; + 5C6ED2740E68C68C005E2C45 /* note.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* note.h */; }; + 5C6ED2750E68C68C005E2C45 /* object.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; + 5C6ED2760E68C68C005E2C45 /* parser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; + 5C6ED2770E68C68C005E2C45 /* parsetree.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; + 5C6ED2780E68C68C005E2C45 /* patcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED2790E68C68C005E2C45 /* post.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; + 5C6ED27A0E68C68C005E2C45 /* predefsymbols.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; + 5C6ED27B0E68C68C005E2C45 /* random.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; + 5C6ED27C0E68C68C005E2C45 /* seqmidi.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; }; + 5C6ED27D0E68C68C005E2C45 /* sequence.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; }; + 5C6ED27F0E68C68C005E2C45 /* stack.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; }; + 5C6ED2800E68C68C005E2C45 /* status.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; }; + 5C6ED2810E68C68C005E2C45 /* symbol.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; }; + 5C6ED2830E68C68C005E2C45 /* tokenizer.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; }; + 5C6ED2850E68C68C005E2C45 /* tuple.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; }; + 5C6ED2860E68C68C005E2C45 /* types.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; + 5C6ED2880E68C68C005E2C45 /* variable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; + 5C6ED29A0E68C818005E2C45 /* sdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6ED2990E68C818005E2C45 /* sdif.h */; }; 5C7009260B836A3F001663C7 /* array.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C60B81D7B80056EC15 /* array.c */; }; 5C7009270B836A3F001663C7 /* atom.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C70B81D7B80056EC15 /* atom.c */; }; 5C70092A0B836A3F001663C7 /* bytestream.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D00B81D7CB0056EC15 /* bytestream.c */; }; 5C70092C0B836A3F001663C7 /* class.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D40B81D7E10056EC15 /* class.c */; }; - 5C7009320B836A3F001663C7 /* dumper.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D50B81D7E10056EC15 /* dumper.c */; }; 5C7009340B836A3F001663C7 /* expression.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D60B81D7E10056EC15 /* expression.c */; }; 5C7009390B836A3F001663C7 /* function.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DB0B81D7F20056EC15 /* function.c */; }; 5C70093C0B836A3F001663C7 /* hashtable.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DC0B81D7F20056EC15 /* hashtable.c */; }; - 5C70093E0B836A3F001663C7 /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E00B81D8050056EC15 /* list.c */; }; 5C7009420B836A3F001663C7 /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E10B81D8050056EC15 /* mem.c */; }; 5C7009430B836A3F001663C7 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E20B81D8050056EC15 /* message.c */; }; 5C7009480B836A3F001663C7 /* object.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E80B81D8140056EC15 /* object.c */; }; @@ -299,21 +409,13 @@ 5C7009670B836A3F001663C7 /* maxconsole.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CAE80B70830B01D00E85D7D /* maxconsole.c */; }; 5C7009680B836A3F001663C7 /* maxdsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CBF1B9E095ABB4D00492815 /* maxdsp.c */; }; 5C7009690B836A3F001663C7 /* maxext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C0082E1D0500E7F7D3 /* maxext.c */; }; - 5C70096A0B836A3F001663C7 /* maxfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B80C1082E1D0500E7F7D3 /* maxfile.c */; }; 5C70096B0B836A3F001663C7 /* maxpat.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C6E6D800835099C009C0840 /* maxpat.c */; }; 5C70096C0B836A3F001663C7 /* maxtypes.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CDB257408311C4400F543E3 /* maxtypes.c */; }; 5C7009DE0B836B8E001663C7 /* ftmlight.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C7009DD0B836B8E001663C7 /* ftmlight.c */; }; - 5C824BC80B8DB174009878F7 /* ftmsdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C8756890830E63900D62A08 /* ftmtypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CAE6DEB0CEBBF820008F3DD /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5CAE80B80830B01D00E85D7D /* maxconsole.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CAE80B70830B01D00E85D7D /* maxconsole.c */; }; - 5CB4C03F0B8D0BC60069B542 /* sndfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB4C03E0B8D0BC60069B542 /* sndfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5CBF1B9F095ABB4D00492815 /* maxdsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CBF1B9E095ABB4D00492815 /* maxdsp.c */; }; 5CC31A5A0830B668005A562B /* ftmrte.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC31A590830B668005A562B /* ftmrte.c */; }; 5CDB257508311C4400F543E3 /* maxtypes.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CDB257408311C4400F543E3 /* maxtypes.c */; }; - 5CDB258808311E3500F543E3 /* ftmexternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CE780B50D174CF1002C9E3B /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C283D920D1326F5008C512E /* file.c */; }; - 5CFAF6C30B8DC284000D25AE /* ftmlight.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFAF6C20B8DC284000D25AE /* ftmlight.h */; settings = {ATTRIBUTES = (Public, ); }; }; F4738AC3071597EC000FCD04 /* ftmsdif.c in Sources */ = {isa = PBXBuildFile; fileRef = F4738A84071597EB000FCD04 /* ftmsdif.c */; }; F4738AC9071597EC000FCD04 /* seqsdif.c in Sources */ = {isa = PBXBuildFile; fileRef = F4738A8A071597EB000FCD04 /* seqsdif.c */; }; /* End PBXBuildFile section */ @@ -390,28 +492,11 @@ }; /* End PBXBuildRule section */ -/* Begin PBXContainerItemProxy section */ - 5C6ED0AD0E68BBF3005E2C45 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5C6ECF7F0E68B648005E2C45 /* headers */; - remoteInfo = headers; - }; - 5C6ED0AF0E68BBFC005E2C45 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5C6ECF7F0E68B648005E2C45 /* headers */; - remoteInfo = headers; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXCopyFilesBuildPhase section */ 5C6ECF7E0E68B648005E2C45 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = ../../../../../lib/max/headers; + dstPath = "../../$(HEADERS_DIR)"; dstSubfolderSpec = 16; files = ( 5C6ECF840E68B667005E2C45 /* array.h in CopyFiles */, @@ -483,6 +568,130 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5C6ED0EC0E68C2FB005E2C45 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 5C6ED0EF0E68C390005E2C45 /* array.h in CopyFiles */, + 5C6ED0F00E68C390005E2C45 /* atom.h in CopyFiles */, + 5C6ED0F10E68C390005E2C45 /* atomfile.h in CopyFiles */, + 5C6ED0F20E68C390005E2C45 /* audiofile.h in CopyFiles */, + 5C6ED0F30E68C390005E2C45 /* bpf.h in CopyFiles */, + 5C6ED0F40E68C390005E2C45 /* bytestream.h in CopyFiles */, + 5C6ED0F50E68C390005E2C45 /* class.h in CopyFiles */, + 5C6ED0F60E68C390005E2C45 /* config-macosx.h in CopyFiles */, + 5C6ED0F70E68C390005E2C45 /* cubic.h in CopyFiles */, + 5C6ED0F80E68C390005E2C45 /* data.h in CopyFiles */, + 5C6ED0F90E68C390005E2C45 /* dict.h in CopyFiles */, + 5C6ED0FA0E68C390005E2C45 /* dumper.h in CopyFiles */, + 5C6ED0FB0E68C390005E2C45 /* event.h in CopyFiles */, + 5C6ED0FC0E68C390005E2C45 /* expression.h in CopyFiles */, + 5C6ED0FD0E68C390005E2C45 /* file.h in CopyFiles */, + 5C6ED0FE0E68C390005E2C45 /* floatfuns.h in CopyFiles */, + 5C6ED0FF0E68C390005E2C45 /* fmat.h in CopyFiles */, + 5C6ED1000E68C390005E2C45 /* fring.h in CopyFiles */, + 5C6ED1010E68C390005E2C45 /* ftmconfig.h in CopyFiles */, + 5C6ED1020E68C390005E2C45 /* ftmcontext.h in CopyFiles */, + 5C6ED1030E68C390005E2C45 /* ftmdump.h in CopyFiles */, + 5C6ED1040E68C390005E2C45 /* ftmext.h in CopyFiles */, + 5C6ED1050E68C390005E2C45 /* ftmexternals.h in CopyFiles */, + 5C6ED1060E68C390005E2C45 /* ftmlib.h in CopyFiles */, + 5C6ED1080E68C390005E2C45 /* ftmrte.h in CopyFiles */, + 5C6ED1090E68C390005E2C45 /* ftmsdif.h in CopyFiles */, + 5C6ED10A0E68C390005E2C45 /* ftmtypes.h in CopyFiles */, + 5C6ED10B0E68C390005E2C45 /* ftmversion.h in CopyFiles */, + 5C6ED10C0E68C390005E2C45 /* fts.h in CopyFiles */, + 5C6ED10D0E68C390005E2C45 /* ftsconfig.h in CopyFiles */, + 5C6ED10E0E68C390005E2C45 /* function.h in CopyFiles */, + 5C6ED10F0E68C390005E2C45 /* fvec.h in CopyFiles */, + 5C6ED1100E68C390005E2C45 /* guiinterfaces.h in CopyFiles */, + 5C6ED1110E68C390005E2C45 /* hashtable.h in CopyFiles */, + 5C6ED1120E68C390005E2C45 /* iterator.h in CopyFiles */, + 5C6ED1130E68C390005E2C45 /* list.h in CopyFiles */, + 5C6ED1140E68C390005E2C45 /* marker.h in CopyFiles */, + 5C6ED1150E68C390005E2C45 /* mat.h in CopyFiles */, + 5C6ED1160E68C390005E2C45 /* mathfuns.h in CopyFiles */, + 5C6ED1170E68C390005E2C45 /* mem.h in CopyFiles */, + 5C6ED1180E68C390005E2C45 /* message.h in CopyFiles */, + 5C6ED1190E68C390005E2C45 /* midievent.h in CopyFiles */, + 5C6ED11A0E68C390005E2C45 /* midifile.h in CopyFiles */, + 5C6ED11B0E68C390005E2C45 /* note.h in CopyFiles */, + 5C6ED11C0E68C390005E2C45 /* object.h in CopyFiles */, + 5C6ED11D0E68C390005E2C45 /* parser.h in CopyFiles */, + 5C6ED11E0E68C390005E2C45 /* parsetree.h in CopyFiles */, + 5C6ED11F0E68C390005E2C45 /* patcher.h in CopyFiles */, + 5C6ED1200E68C390005E2C45 /* post.h in CopyFiles */, + 5C6ED1210E68C390005E2C45 /* predefsymbols.h in CopyFiles */, + 5C6ED1220E68C390005E2C45 /* random.h in CopyFiles */, + 5C6ED1230E68C390005E2C45 /* seqmidi.h in CopyFiles */, + 5C6ED1240E68C390005E2C45 /* sequence.h in CopyFiles */, + 5C47A4660E68C9BE00487D57 /* sdif.h in CopyFiles */, + 5C6ED1250E68C390005E2C45 /* sndfile.h in CopyFiles */, + 5C6ED1260E68C390005E2C45 /* stack.h in CopyFiles */, + 5C6ED1270E68C390005E2C45 /* status.h in CopyFiles */, + 5C6ED1280E68C390005E2C45 /* symbol.h in CopyFiles */, + 5C6ED1290E68C390005E2C45 /* timebase.h in CopyFiles */, + 5C6ED12A0E68C390005E2C45 /* tokenizer.h in CopyFiles */, + 5C6ED12B0E68C390005E2C45 /* track.h in CopyFiles */, + 5C6ED12C0E68C390005E2C45 /* tuple.h in CopyFiles */, + 5C6ED12D0E68C390005E2C45 /* types.h in CopyFiles */, + 5C6ED12E0E68C390005E2C45 /* utils.h in CopyFiles */, + 5C6ED12F0E68C390005E2C45 /* variable.h in CopyFiles */, + 5C6ED1300E68C390005E2C45 /* vec_fft.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5C6ED2920E68C69C005E2C45 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "../../$(HEADERS_DIR)"; + dstSubfolderSpec = 16; + files = ( + 5C6ED2480E68C68C005E2C45 /* array.h in CopyFiles */, + 5C6ED2490E68C68C005E2C45 /* atom.h in CopyFiles */, + 5C6ED24D0E68C68C005E2C45 /* bytestream.h in CopyFiles */, + 5C6ED24E0E68C68C005E2C45 /* class.h in CopyFiles */, + 5C6ED24F0E68C68C005E2C45 /* config-macosx.h in CopyFiles */, + 5C6ED2550E68C68C005E2C45 /* expression.h in CopyFiles */, + 5C6ED25D0E68C68C005E2C45 /* ftmext.h in CopyFiles */, + 5C6ED25E0E68C68C005E2C45 /* ftmexternals.h in CopyFiles */, + 5C6ED2600E68C68C005E2C45 /* ftmlight.h in CopyFiles */, + 5C6ED2610E68C68C005E2C45 /* ftmrte.h in CopyFiles */, + 5C6ED2620E68C68C005E2C45 /* ftmsdif.h in CopyFiles */, + 5C6ED2630E68C68C005E2C45 /* ftmtypes.h in CopyFiles */, + 5C6ED2640E68C68C005E2C45 /* ftmversion.h in CopyFiles */, + 5C6ED2650E68C68C005E2C45 /* fts.h in CopyFiles */, + 5C6ED2660E68C68C005E2C45 /* ftsconfig.h in CopyFiles */, + 5C6ED2670E68C68C005E2C45 /* function.h in CopyFiles */, + 5C6ED2680E68C68C005E2C45 /* fvec.h in CopyFiles */, + 5C6ED26A0E68C68C005E2C45 /* hashtable.h in CopyFiles */, + 5C6ED26B0E68C68C005E2C45 /* iterator.h in CopyFiles */, + 5C6ED26F0E68C68C005E2C45 /* mathfuns.h in CopyFiles */, + 5C6ED2700E68C68C005E2C45 /* mem.h in CopyFiles */, + 5C6ED2710E68C68C005E2C45 /* message.h in CopyFiles */, + 5C6ED2730E68C68C005E2C45 /* midifile.h in CopyFiles */, + 5C6ED2740E68C68C005E2C45 /* note.h in CopyFiles */, + 5C6ED2750E68C68C005E2C45 /* object.h in CopyFiles */, + 5C6ED2760E68C68C005E2C45 /* parser.h in CopyFiles */, + 5C6ED2770E68C68C005E2C45 /* parsetree.h in CopyFiles */, + 5C6ED2780E68C68C005E2C45 /* patcher.h in CopyFiles */, + 5C6ED2790E68C68C005E2C45 /* post.h in CopyFiles */, + 5C6ED27A0E68C68C005E2C45 /* predefsymbols.h in CopyFiles */, + 5C6ED27B0E68C68C005E2C45 /* random.h in CopyFiles */, + 5C6ED27C0E68C68C005E2C45 /* seqmidi.h in CopyFiles */, + 5C6ED27D0E68C68C005E2C45 /* sequence.h in CopyFiles */, + 5C6ED27F0E68C68C005E2C45 /* stack.h in CopyFiles */, + 5C6ED2800E68C68C005E2C45 /* status.h in CopyFiles */, + 5C6ED2810E68C68C005E2C45 /* symbol.h in CopyFiles */, + 5C6ED2830E68C68C005E2C45 /* tokenizer.h in CopyFiles */, + 5C6ED2850E68C68C005E2C45 /* tuple.h in CopyFiles */, + 5C6ED2860E68C68C005E2C45 /* types.h in CopyFiles */, + 5C6ED2880E68C68C005E2C45 /* variable.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -605,6 +814,7 @@ 5C4E8D3F0D3B6C980092A6E8 /* libftm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libftm.a; sourceTree = BUILT_PRODUCTS_DIR; }; 5C5F07D1078218BA00A59DE2 /* ftmext.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmext.c; sourceTree = "<group>"; }; 5C6E6D800835099C009C0840 /* maxpat.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = maxpat.c; sourceTree = "<group>"; }; + 5C6ED2990E68C818005E2C45 /* sdif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sdif.h; path = ../../../components/sdif/include/sdif.h; sourceTree = SOURCE_ROOT; }; 5C7009DD0B836B8E001663C7 /* ftmlight.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmlight.c; sourceTree = "<group>"; }; 5C824BC70B8DB174009878F7 /* ftmsdif.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmsdif.h; sourceTree = "<group>"; }; 5C8756880830E63900D62A08 /* ftmtypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmtypes.h; sourceTree = "<group>"; }; @@ -837,6 +1047,7 @@ 5C0B809E082E0F7E00E7F7D3 /* ftmlib */, 3BFD32E60B7CE7AB00BC8D76 /* classes */, 5CB4C03E0B8D0BC60069B542 /* sndfile.h */, + 5C6ED2990E68C818005E2C45 /* sdif.h */, 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */, ); name = include; @@ -883,86 +1094,79 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 5C7009240B836A3F001663C7 /* Headers */ = { + 5C6ED2420E68C4E5005E2C45 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 5C6ED2000E68C4AB005E2C45 /* array.h in Headers */, + 5C6ED2010E68C4AB005E2C45 /* atom.h in Headers */, + 5C6ED2020E68C4AB005E2C45 /* atomfile.h in Headers */, + 5C6ED2030E68C4AB005E2C45 /* audiofile.h in Headers */, + 5C6ED2040E68C4AB005E2C45 /* bpf.h in Headers */, + 5C6ED2050E68C4AB005E2C45 /* bytestream.h in Headers */, + 5C6ED2060E68C4AB005E2C45 /* class.h in Headers */, + 5C6ED2070E68C4AB005E2C45 /* config-macosx.h in Headers */, + 5C6ED2080E68C4AB005E2C45 /* cubic.h in Headers */, + 5C6ED2090E68C4AB005E2C45 /* data.h in Headers */, + 5C6ED20A0E68C4AB005E2C45 /* dict.h in Headers */, + 5C6ED20B0E68C4AB005E2C45 /* dumper.h in Headers */, + 5C6ED20C0E68C4AB005E2C45 /* event.h in Headers */, + 5C6ED20D0E68C4AB005E2C45 /* expression.h in Headers */, + 5C6ED20E0E68C4AB005E2C45 /* file.h in Headers */, + 5C6ED20F0E68C4AB005E2C45 /* floatfuns.h in Headers */, + 5C6ED2100E68C4AB005E2C45 /* fmat.h in Headers */, + 5C6ED2110E68C4AB005E2C45 /* fring.h in Headers */, + 5C6ED2120E68C4AB005E2C45 /* ftmconfig.h in Headers */, + 5C6ED2130E68C4AB005E2C45 /* ftmcontext.h in Headers */, + 5C6ED2140E68C4AB005E2C45 /* ftmdump.h in Headers */, + 5C6ED2150E68C4AB005E2C45 /* ftmext.h in Headers */, + 5C6ED2160E68C4AB005E2C45 /* ftmexternals.h in Headers */, + 5C6ED2170E68C4AB005E2C45 /* ftmlib.h in Headers */, + 5C6ED2190E68C4AB005E2C45 /* ftmrte.h in Headers */, + 5C6ED21A0E68C4AB005E2C45 /* ftmsdif.h in Headers */, + 5C6ED21B0E68C4AB005E2C45 /* ftmtypes.h in Headers */, + 5C6ED21C0E68C4AB005E2C45 /* ftmversion.h in Headers */, + 5C6ED21D0E68C4AB005E2C45 /* fts.h in Headers */, + 5C6ED21E0E68C4AB005E2C45 /* ftsconfig.h in Headers */, + 5C6ED21F0E68C4AB005E2C45 /* function.h in Headers */, + 5C6ED2200E68C4AB005E2C45 /* fvec.h in Headers */, + 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */, + 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */, + 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */, + 5C6ED2240E68C4AB005E2C45 /* list.h in Headers */, + 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */, + 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */, + 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */, + 5C6ED2280E68C4AB005E2C45 /* mem.h in Headers */, + 5C6ED2290E68C4AB005E2C45 /* message.h in Headers */, + 5C6ED22A0E68C4AB005E2C45 /* midievent.h in Headers */, + 5C6ED22B0E68C4AB005E2C45 /* midifile.h in Headers */, + 5C6ED22C0E68C4AB005E2C45 /* note.h in Headers */, + 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */, + 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */, + 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */, + 5C6ED2300E68C4AB005E2C45 /* patcher.h in Headers */, + 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */, + 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */, + 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */, + 5C6ED2340E68C4AB005E2C45 /* seqmidi.h in Headers */, + 5C6ED2350E68C4AB005E2C45 /* sequence.h in Headers */, + 5C6ED29A0E68C818005E2C45 /* sdif.h in Headers */, + 5C6ED2360E68C4AB005E2C45 /* sndfile.h in Headers */, + 5C6ED2370E68C4AB005E2C45 /* stack.h in Headers */, + 5C6ED2380E68C4AB005E2C45 /* status.h in Headers */, + 5C6ED2390E68C4AB005E2C45 /* symbol.h in Headers */, + 5C6ED23A0E68C4AB005E2C45 /* timebase.h in Headers */, + 5C6ED23B0E68C4AB005E2C45 /* tokenizer.h in Headers */, + 5C6ED23C0E68C4AB005E2C45 /* track.h in Headers */, + 5C6ED23D0E68C4AB005E2C45 /* tuple.h in Headers */, + 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */, + 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */, + 5C6ED2400E68C4AB005E2C45 /* variable.h in Headers */, + 5C6ED2410E68C4AB005E2C45 /* vec_fft.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8D07F2BD0486CC7A007CD1D0 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B1A928E06D3B3F8009882D6 /* ftmlib.h in Headers */, - 3BE0A3D00CE7136400C825AF /* ftmconfig.h in Headers */, - 5C132591078C2E9C0008A86A /* ftmversion.h in Headers */, - 5C0B809D082E0E9200E7F7D3 /* ftmrte.h in Headers */, - 5C0B80A2082E1B2A00E7F7D3 /* ftmext.h in Headers */, - 5C8756890830E63900D62A08 /* ftmtypes.h in Headers */, - 5CDB258808311E3500F543E3 /* ftmexternals.h in Headers */, - 3BFD33620B7CE8E800BC8D76 /* bpf.h in Headers */, - 3BFD33640B7CE8E800BC8D76 /* data.h in Headers */, - 3BFD33650B7CE8E800BC8D76 /* dict.h in Headers */, - 3BFD33660B7CE8E800BC8D76 /* event.h in Headers */, - 3BFD33680B7CE8E800BC8D76 /* fmat.h in Headers */, - 3BFD33690B7CE8E800BC8D76 /* fvec.h in Headers */, - 3BFD336C0B7CE8E800BC8D76 /* marker.h in Headers */, - 3BFD336D0B7CE8E800BC8D76 /* mat.h in Headers */, - 3BFD336F0B7CE8E800BC8D76... [truncated message content] |
From: <nsc...@us...> - 2008-08-30 03:45:32
|
Revision: 1921 http://ftm.svn.sourceforge.net/ftm/?rev=1921&view=rev Author: nschnell Date: 2008-08-30 03:45:42 +0000 (Sat, 30 Aug 2008) Log Message: ----------- renamed files and adapted xcode project Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/ftmlib/classes/fmat.c trunk/ftm/ftmlib/ftmlib.h Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-30 03:32:31 UTC (rev 1920) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-30 03:45:42 UTC (rev 1921) @@ -39,7 +39,7 @@ 3BF406D80B80C1E7005FD5B7 /* mat.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D60B80C1E7005FD5B7 /* mat.c */; }; 3BFA27EC0B81CDEF0056EC15 /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 3BFA27F60B81CE310056EC15 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; - 3BFA27FA0B81CE450056EC15 /* vec_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* vec_fft.c */; }; + 3BFA27FA0B81CE450056EC15 /* ffft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* ffft.c */; }; 3BFA29540B81D6030056EC15 /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; @@ -56,7 +56,7 @@ 3BFA29D90B81D7E10056EC15 /* expression.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D60B81D7E10056EC15 /* expression.c */; }; 3BFA29DE0B81D7F20056EC15 /* function.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DB0B81D7F20056EC15 /* function.c */; }; 3BFA29DF0B81D7F20056EC15 /* hashtable.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DC0B81D7F20056EC15 /* hashtable.c */; }; - 3BFA29E30B81D8050056EC15 /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E00B81D8050056EC15 /* list.c */; }; + 3BFA29E30B81D8050056EC15 /* llist.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E00B81D8050056EC15 /* llist.c */; }; 3BFA29E40B81D8050056EC15 /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E10B81D8050056EC15 /* mem.c */; }; 3BFA29E50B81D8050056EC15 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E20B81D8050056EC15 /* message.c */; }; 3BFA29E90B81D8140056EC15 /* midievent.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E60B81D8140056EC15 /* midievent.c */; }; @@ -107,7 +107,7 @@ 5C209E620D0EDFD500BF135F /* mat.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF406D60B80C1E7005FD5B7 /* mat.c */; }; 5C209E640D0EDFD500BF135F /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 5C209E660D0EDFD500BF135F /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; - 5C209E680D0EDFD500BF135F /* vec_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* vec_fft.c */; }; + 5C209E680D0EDFD500BF135F /* ffft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* ffft.c */; }; 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; @@ -124,7 +124,7 @@ 5C209E780D0EDFD500BF135F /* expression.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D60B81D7E10056EC15 /* expression.c */; }; 5C209E7A0D0EDFD500BF135F /* function.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DB0B81D7F20056EC15 /* function.c */; }; 5C209E7B0D0EDFD500BF135F /* hashtable.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29DC0B81D7F20056EC15 /* hashtable.c */; }; - 5C209E7C0D0EDFD500BF135F /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E00B81D8050056EC15 /* list.c */; }; + 5C209E7C0D0EDFD500BF135F /* llist.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E00B81D8050056EC15 /* llist.c */; }; 5C209E7D0D0EDFD500BF135F /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E10B81D8050056EC15 /* mem.c */; }; 5C209E7E0D0EDFD500BF135F /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E20B81D8050056EC15 /* message.c */; }; 5C209E7F0D0EDFD500BF135F /* midievent.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E60B81D8140056EC15 /* midievent.c */; }; @@ -184,7 +184,7 @@ 5C6ECFA50E68B667005E2C45 /* guiinterfaces.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; 5C6ECFA60E68B667005E2C45 /* hashtable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; 5C6ECFA70E68B667005E2C45 /* iterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; - 5C6ECFA80E68B667005E2C45 /* list.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; }; + 5C6ECFA80E68B667005E2C45 /* llist.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* llist.h */; }; 5C6ECFA90E68B667005E2C45 /* marker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; 5C6ECFAA0E68B667005E2C45 /* mat.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; 5C6ECFAB0E68B667005E2C45 /* mathfuns.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; @@ -213,7 +213,7 @@ 5C6ECFC20E68B667005E2C45 /* types.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; 5C6ECFC30E68B667005E2C45 /* utils.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; 5C6ECFC40E68B667005E2C45 /* variable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; - 5C6ECFC50E68B667005E2C45 /* vec_fft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ECFC50E68B667005E2C45 /* ffft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; }; 5C6ED0EF0E68C390005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; 5C6ED0F00E68C390005E2C45 /* atom.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; 5C6ED0F10E68C390005E2C45 /* atomfile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; }; @@ -249,7 +249,7 @@ 5C6ED1100E68C390005E2C45 /* guiinterfaces.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; 5C6ED1110E68C390005E2C45 /* hashtable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; 5C6ED1120E68C390005E2C45 /* iterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; - 5C6ED1130E68C390005E2C45 /* list.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; }; + 5C6ED1130E68C390005E2C45 /* llist.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* llist.h */; }; 5C6ED1140E68C390005E2C45 /* marker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; 5C6ED1150E68C390005E2C45 /* mat.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; 5C6ED1160E68C390005E2C45 /* mathfuns.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; @@ -278,7 +278,7 @@ 5C6ED12D0E68C390005E2C45 /* types.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; 5C6ED12E0E68C390005E2C45 /* utils.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; 5C6ED12F0E68C390005E2C45 /* variable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; - 5C6ED1300E68C390005E2C45 /* vec_fft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ED1300E68C390005E2C45 /* ffft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; }; 5C6ED2000E68C4AB005E2C45 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; 5C6ED2010E68C4AB005E2C45 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; 5C6ED2020E68C4AB005E2C45 /* atomfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; }; @@ -314,7 +314,7 @@ 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; - 5C6ED2240E68C4AB005E2C45 /* list.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* list.h */; }; + 5C6ED2240E68C4AB005E2C45 /* llist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* llist.h */; }; 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; @@ -343,7 +343,7 @@ 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; 5C6ED2400E68C4AB005E2C45 /* variable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* variable.h */; }; - 5C6ED2410E68C4AB005E2C45 /* vec_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* vec_fft.h */; }; + 5C6ED2410E68C4AB005E2C45 /* ffft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; }; 5C6ED2480E68C68C005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; 5C6ED2490E68C68C005E2C45 /* atom.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; 5C6ED24D0E68C68C005E2C45 /* bytestream.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; @@ -535,7 +535,7 @@ 5C6ECFA50E68B667005E2C45 /* guiinterfaces.h in CopyFiles */, 5C6ECFA60E68B667005E2C45 /* hashtable.h in CopyFiles */, 5C6ECFA70E68B667005E2C45 /* iterator.h in CopyFiles */, - 5C6ECFA80E68B667005E2C45 /* list.h in CopyFiles */, + 5C6ECFA80E68B667005E2C45 /* llist.h in CopyFiles */, 5C6ECFA90E68B667005E2C45 /* marker.h in CopyFiles */, 5C6ECFAA0E68B667005E2C45 /* mat.h in CopyFiles */, 5C6ECFAB0E68B667005E2C45 /* mathfuns.h in CopyFiles */, @@ -564,7 +564,7 @@ 5C6ECFC20E68B667005E2C45 /* types.h in CopyFiles */, 5C6ECFC30E68B667005E2C45 /* utils.h in CopyFiles */, 5C6ECFC40E68B667005E2C45 /* variable.h in CopyFiles */, - 5C6ECFC50E68B667005E2C45 /* vec_fft.h in CopyFiles */, + 5C6ECFC50E68B667005E2C45 /* ffft.h in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -609,7 +609,7 @@ 5C6ED1100E68C390005E2C45 /* guiinterfaces.h in CopyFiles */, 5C6ED1110E68C390005E2C45 /* hashtable.h in CopyFiles */, 5C6ED1120E68C390005E2C45 /* iterator.h in CopyFiles */, - 5C6ED1130E68C390005E2C45 /* list.h in CopyFiles */, + 5C6ED1130E68C390005E2C45 /* llist.h in CopyFiles */, 5C6ED1140E68C390005E2C45 /* marker.h in CopyFiles */, 5C6ED1150E68C390005E2C45 /* mat.h in CopyFiles */, 5C6ED1160E68C390005E2C45 /* mathfuns.h in CopyFiles */, @@ -639,7 +639,7 @@ 5C6ED12D0E68C390005E2C45 /* types.h in CopyFiles */, 5C6ED12E0E68C390005E2C45 /* utils.h in CopyFiles */, 5C6ED12F0E68C390005E2C45 /* variable.h in CopyFiles */, - 5C6ED1300E68C390005E2C45 /* vec_fft.h in CopyFiles */, + 5C6ED1300E68C390005E2C45 /* ffft.h in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -695,7 +695,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 3B0075ED0B83237200B259E5 /* vec_fft.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vec_fft.h; sourceTree = "<group>"; }; + 3B0075ED0B83237200B259E5 /* ffft.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ffft.h; sourceTree = "<group>"; }; 3B0075F50B8323E500B259E5 /* ftsconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftsconfig.h; sourceTree = "<group>"; }; 3B0313A90C904BA000DA4915 /* seqtxt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = seqtxt.c; sourceTree = "<group>"; }; 3B1A928906D3B3F8009882D6 /* ftmlib.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmlib.c; sourceTree = "<group>"; }; @@ -712,7 +712,7 @@ 3BFA27E50B81CDBB0056EC15 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; }; 3BFA27E90B81CDEF0056EC15 /* cubic.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = cubic.c; sourceTree = "<group>"; }; 3BFA27F30B81CE310056EC15 /* random.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = random.c; sourceTree = "<group>"; }; - 3BFA27F90B81CE450056EC15 /* vec_fft.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = vec_fft.c; sourceTree = "<group>"; }; + 3BFA27F90B81CE450056EC15 /* ffft.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ffft.c; sourceTree = "<group>"; }; 3BFA29360B81D5970056EC15 /* atom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = atom.h; sourceTree = "<group>"; }; 3BFA29390B81D5970056EC15 /* file.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = "<group>"; }; 3BFA293E0B81D5B70056EC15 /* fts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fts.h; sourceTree = "<group>"; }; @@ -735,7 +735,7 @@ 3BFA296C0B81D69F0056EC15 /* function.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = "<group>"; }; 3BFA296D0B81D69F0056EC15 /* hashtable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = hashtable.h; sourceTree = "<group>"; }; 3BFA296E0B81D69F0056EC15 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = "<group>"; }; - 3BFA29720B81D6B20056EC15 /* list.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = list.h; sourceTree = "<group>"; }; + 3BFA29720B81D6B20056EC15 /* llist.h */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = llist.h; path = classes/llist.h; sourceTree = "<group>"; }; 3BFA29740B81D6B20056EC15 /* message.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = message.h; sourceTree = "<group>"; }; 3BFA29780B81D6C80056EC15 /* midievent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = midievent.h; sourceTree = "<group>"; }; 3BFA29790B81D6C80056EC15 /* midifile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = midifile.h; sourceTree = "<group>"; }; @@ -760,7 +760,7 @@ 3BFA29D60B81D7E10056EC15 /* expression.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = expression.c; sourceTree = "<group>"; }; 3BFA29DB0B81D7F20056EC15 /* function.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = function.c; sourceTree = "<group>"; }; 3BFA29DC0B81D7F20056EC15 /* hashtable.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = hashtable.c; sourceTree = "<group>"; }; - 3BFA29E00B81D8050056EC15 /* list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = list.c; sourceTree = "<group>"; }; + 3BFA29E00B81D8050056EC15 /* llist.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = llist.c; path = classes/llist.c; sourceTree = "<group>"; }; 3BFA29E10B81D8050056EC15 /* mem.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = mem.c; sourceTree = "<group>"; }; 3BFA29E20B81D8050056EC15 /* message.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = message.c; sourceTree = "<group>"; }; 3BFA29E60B81D8140056EC15 /* midievent.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = midievent.c; sourceTree = "<group>"; }; @@ -964,7 +964,7 @@ 3BFA296C0B81D69F0056EC15 /* function.h */, 3BFA296D0B81D69F0056EC15 /* hashtable.h */, 3BFA296E0B81D69F0056EC15 /* iterator.h */, - 3BFA29720B81D6B20056EC15 /* list.h */, + 3BFA29720B81D6B20056EC15 /* llist.h */, 3B27319A0B8222C400C98C90 /* mem.h */, 3BFA29740B81D6B20056EC15 /* message.h */, 3BFA29780B81D6C80056EC15 /* midievent.h */, @@ -986,7 +986,7 @@ 3BFA29480B81D5CB0056EC15 /* types.h */, 3BFA27E50B81CDBB0056EC15 /* utils.h */, 3BFA298D0B81D7120056EC15 /* variable.h */, - 3B0075ED0B83237200B259E5 /* vec_fft.h */, + 3B0075ED0B83237200B259E5 /* ffft.h */, 5C824BC70B8DB174009878F7 /* ftmsdif.h */, ); path = ftmlib; @@ -1015,7 +1015,7 @@ 5CC31A590830B668005A562B /* ftmrte.c */, 3BFA29DB0B81D7F20056EC15 /* function.c */, 3BFA29DC0B81D7F20056EC15 /* hashtable.c */, - 3BFA29E00B81D8050056EC15 /* list.c */, + 3BFA29E00B81D8050056EC15 /* llist.c */, 3BFA29E10B81D8050056EC15 /* mem.c */, 3BFA29E20B81D8050056EC15 /* message.c */, 3BFA29E60B81D8140056EC15 /* midievent.c */, @@ -1034,7 +1034,7 @@ 3BFA29C90B81D7B80056EC15 /* tokenizer.l */, 3BFA29F90B81D8500056EC15 /* tuple.c */, 3BFA29FA0B81D8500056EC15 /* variable.c */, - 3BFA27F90B81CE450056EC15 /* vec_fft.c */, + 3BFA27F90B81CE450056EC15 /* ffft.c */, F4738A84071597EB000FCD04 /* ftmsdif.c */, F4738A8A071597EB000FCD04 /* seqsdif.c */, ); @@ -1133,7 +1133,7 @@ 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */, 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */, 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */, - 5C6ED2240E68C4AB005E2C45 /* list.h in Headers */, + 5C6ED2240E68C4AB005E2C45 /* llist.h in Headers */, 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */, 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */, 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */, @@ -1163,7 +1163,7 @@ 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */, 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */, 5C6ED2400E68C4AB005E2C45 /* variable.h in Headers */, - 5C6ED2410E68C4AB005E2C45 /* vec_fft.h in Headers */, + 5C6ED2410E68C4AB005E2C45 /* ffft.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1381,7 +1381,7 @@ 5C209E620D0EDFD500BF135F /* mat.c in Sources */, 5C209E640D0EDFD500BF135F /* cubic.c in Sources */, 5C209E660D0EDFD500BF135F /* random.c in Sources */, - 5C209E680D0EDFD500BF135F /* vec_fft.c in Sources */, + 5C209E680D0EDFD500BF135F /* ffft.c in Sources */, 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */, 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */, 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */, @@ -1397,7 +1397,7 @@ 5C209E780D0EDFD500BF135F /* expression.c in Sources */, 5C209E7A0D0EDFD500BF135F /* function.c in Sources */, 5C209E7B0D0EDFD500BF135F /* hashtable.c in Sources */, - 5C209E7C0D0EDFD500BF135F /* list.c in Sources */, + 5C209E7C0D0EDFD500BF135F /* llist.c in Sources */, 5C209E7D0D0EDFD500BF135F /* mem.c in Sources */, 5C209E7E0D0EDFD500BF135F /* message.c in Sources */, 5C209E7F0D0EDFD500BF135F /* midievent.c in Sources */, @@ -1484,7 +1484,7 @@ 3BF406D80B80C1E7005FD5B7 /* mat.c in Sources */, 3BFA27EC0B81CDEF0056EC15 /* cubic.c in Sources */, 3BFA27F60B81CE310056EC15 /* random.c in Sources */, - 3BFA27FA0B81CE450056EC15 /* vec_fft.c in Sources */, + 3BFA27FA0B81CE450056EC15 /* ffft.c in Sources */, 3BFA29540B81D6030056EC15 /* patcher.c in Sources */, 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */, 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */, @@ -1501,7 +1501,7 @@ 3BFA29D90B81D7E10056EC15 /* expression.c in Sources */, 3BFA29DE0B81D7F20056EC15 /* function.c in Sources */, 3BFA29DF0B81D7F20056EC15 /* hashtable.c in Sources */, - 3BFA29E30B81D8050056EC15 /* list.c in Sources */, + 3BFA29E30B81D8050056EC15 /* llist.c in Sources */, 3BFA29E40B81D8050056EC15 /* mem.c in Sources */, 3BFA29E50B81D8050056EC15 /* message.c in Sources */, 3BFA29E90B81D8140056EC15 /* midievent.c in Sources */, Modified: trunk/ftm/ftmlib/classes/fmat.c =================================================================== --- trunk/ftm/ftmlib/classes/fmat.c 2008-08-30 03:32:31 UTC (rev 1920) +++ trunk/ftm/ftmlib/classes/fmat.c 2008-08-30 03:45:42 UTC (rev 1921) @@ -28,7 +28,7 @@ #include "cubic.h" #include "random.h" #include "utils.h" -#include "vec_fft.h" +#include "ffft.h" #include <stdlib.h> #include <ctype.h> Modified: trunk/ftm/ftmlib/ftmlib.h =================================================================== --- trunk/ftm/ftmlib/ftmlib.h 2008-08-30 03:32:31 UTC (rev 1920) +++ trunk/ftm/ftmlib/ftmlib.h 2008-08-30 03:45:42 UTC (rev 1921) @@ -70,7 +70,7 @@ /* FTS utilities */ #include "cubic.h" -#include "vec_fft.h" +#include "ffft.h" #include "floatfuns.h" #include "random.h" #include "utils.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-08-31 00:14:13
|
Revision: 1937 http://ftm.svn.sourceforge.net/ftm/?rev=1937&view=rev Author: nschnell Date: 2008-08-31 00:14:20 +0000 (Sun, 31 Aug 2008) Log Message: ----------- renamed fts_patcher into fts_scope Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/externals/ftm.m.c trunk/ftm/externals/max/ftm.absargs.c trunk/ftm/externals/max/ftm.buffer.c trunk/ftm/externals/max/ftm.javascript.c trunk/ftm/externals/max/ftm.mess.c trunk/ftm/ftmlib/expression.c trunk/ftm/ftmlib/expression.h trunk/ftm/ftmlib/ftmcontext.c trunk/ftm/ftmlib/ftmcontext.h trunk/ftm/ftmlib/ftmdump.c trunk/ftm/ftmlib/ftmdump.h trunk/ftm/ftmlib/ftmext.c trunk/ftm/ftmlib/ftmext.h trunk/ftm/ftmlib/max/ftmexternals.h trunk/ftm/ftmlib/max/maxdsp.c trunk/ftm/ftmlib/max/maxext.c trunk/ftm/ftmlib/max/maxpat.c trunk/ftm/ftmlib/namedef.c trunk/ftm/ftmlib/namedef.h Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-31 00:14:20 UTC (rev 1937) @@ -29,7 +29,7 @@ 3BFA27EC0B81CDEF0056EC15 /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 3BFA27F60B81CE310056EC15 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; 3BFA27FA0B81CE450056EC15 /* ffft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* ffft.c */; }; - 3BFA29540B81D6030056EC15 /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; + 3BFA29540B81D6030056EC15 /* scope.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* scope.c */; }; 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; 3BFA295B0B81D6240056EC15 /* timebase.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29580B81D6240056EC15 /* timebase.c */; }; @@ -97,7 +97,7 @@ 5C209E640D0EDFD500BF135F /* cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27E90B81CDEF0056EC15 /* cubic.c */; }; 5C209E660D0EDFD500BF135F /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F30B81CE310056EC15 /* random.c */; }; 5C209E680D0EDFD500BF135F /* ffft.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA27F90B81CE450056EC15 /* ffft.c */; }; - 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; + 5C209E6B0D0EDFD500BF135F /* scope.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* scope.c */; }; 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29520B81D6030056EC15 /* ftmcontext.c */; }; 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29570B81D6240056EC15 /* symbol.c */; }; 5C209E6E0D0EDFD500BF135F /* timebase.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29580B81D6240056EC15 /* timebase.c */; }; @@ -185,7 +185,7 @@ 5C6ED11C0E68C390005E2C45 /* object.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; 5C6ED11D0E68C390005E2C45 /* parser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; 5C6ED11E0E68C390005E2C45 /* parsetree.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; - 5C6ED11F0E68C390005E2C45 /* patcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED11F0E68C390005E2C45 /* scope.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* scope.h */; }; 5C6ED1200E68C390005E2C45 /* post.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; 5C6ED1210E68C390005E2C45 /* predefsymbols.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; 5C6ED1220E68C390005E2C45 /* random.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; @@ -250,7 +250,7 @@ 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; - 5C6ED2300E68C4AB005E2C45 /* patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED2300E68C4AB005E2C45 /* scope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* scope.h */; }; 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; @@ -291,7 +291,7 @@ 5C6ED2750E68C68C005E2C45 /* object.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; 5C6ED2760E68C68C005E2C45 /* parser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; 5C6ED2770E68C68C005E2C45 /* parsetree.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; - 5C6ED2780E68C68C005E2C45 /* patcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* patcher.h */; }; + 5C6ED2780E68C68C005E2C45 /* scope.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* scope.h */; }; 5C6ED2790E68C68C005E2C45 /* post.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; 5C6ED27A0E68C68C005E2C45 /* predefsymbols.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; 5C6ED27F0E68C68C005E2C45 /* stack.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; }; @@ -313,7 +313,7 @@ 5C7009430B836A3F001663C7 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E20B81D8050056EC15 /* message.c */; }; 5C7009480B836A3F001663C7 /* object.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29E80B81D8140056EC15 /* object.c */; }; 5C70094C0B836A3F001663C7 /* parser.y in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C80B81D7B80056EC15 /* parser.y */; }; - 5C70094D0B836A3F001663C7 /* patcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* patcher.c */; }; + 5C70094D0B836A3F001663C7 /* scope.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29510B81D6030056EC15 /* scope.c */; }; 5C7009500B836A3F001663C7 /* post.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F20B81D83A0056EC15 /* post.c */; }; 5C7009570B836A3F001663C7 /* stack.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F30B81D83A0056EC15 /* stack.c */; }; 5C7009580B836A3F001663C7 /* status.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29F40B81D83A0056EC15 /* status.c */; }; @@ -463,7 +463,7 @@ 5C6ED11C0E68C390005E2C45 /* object.h in CopyFiles */, 5C6ED11D0E68C390005E2C45 /* parser.h in CopyFiles */, 5C6ED11E0E68C390005E2C45 /* parsetree.h in CopyFiles */, - 5C6ED11F0E68C390005E2C45 /* patcher.h in CopyFiles */, + 5C6ED11F0E68C390005E2C45 /* scope.h in CopyFiles */, 5C6ED1200E68C390005E2C45 /* post.h in CopyFiles */, 5C6ED1210E68C390005E2C45 /* predefsymbols.h in CopyFiles */, 5C6ED1220E68C390005E2C45 /* random.h in CopyFiles */, @@ -514,7 +514,7 @@ 5C6ED2750E68C68C005E2C45 /* object.h in CopyFiles */, 5C6ED2760E68C68C005E2C45 /* parser.h in CopyFiles */, 5C6ED2770E68C68C005E2C45 /* parsetree.h in CopyFiles */, - 5C6ED2780E68C68C005E2C45 /* patcher.h in CopyFiles */, + 5C6ED2780E68C68C005E2C45 /* scope.h in CopyFiles */, 5C6ED2790E68C68C005E2C45 /* post.h in CopyFiles */, 5C6ED27A0E68C68C005E2C45 /* predefsymbols.h in CopyFiles */, 5C6ED27F0E68C68C005E2C45 /* stack.h in CopyFiles */, @@ -551,12 +551,12 @@ 3BFA29360B81D5970056EC15 /* atom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = atom.h; sourceTree = "<group>"; }; 3BFA29390B81D5970056EC15 /* file.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = "<group>"; }; 3BFA293E0B81D5B70056EC15 /* fts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fts.h; sourceTree = "<group>"; }; - 3BFA29400B81D5B70056EC15 /* patcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = patcher.h; sourceTree = "<group>"; }; + 3BFA29400B81D5B70056EC15 /* scope.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scope.h; sourceTree = "<group>"; }; 3BFA29410B81D5B70056EC15 /* ftmcontext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ftmcontext.h; sourceTree = "<group>"; }; 3BFA29460B81D5CB0056EC15 /* symbol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = symbol.h; sourceTree = "<group>"; }; 3BFA29470B81D5CB0056EC15 /* timebase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timebase.h; sourceTree = "<group>"; }; 3BFA29480B81D5CB0056EC15 /* types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = "<group>"; }; - 3BFA29510B81D6030056EC15 /* patcher.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = patcher.c; sourceTree = "<group>"; }; + 3BFA29510B81D6030056EC15 /* scope.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = scope.c; sourceTree = "<group>"; }; 3BFA29520B81D6030056EC15 /* ftmcontext.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ftmcontext.c; sourceTree = "<group>"; }; 3BFA29570B81D6240056EC15 /* symbol.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = symbol.c; sourceTree = "<group>"; }; 3BFA29580B81D6240056EC15 /* timebase.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = timebase.c; sourceTree = "<group>"; }; @@ -809,7 +809,7 @@ 3BFA297A0B81D6C80056EC15 /* object.h */, 3BFA29800B81D6E20056EC15 /* parser.h */, 3B27319B0B8222C400C98C90 /* parsetree.h */, - 3BFA29400B81D5B70056EC15 /* patcher.h */, + 3BFA29400B81D5B70056EC15 /* scope.h */, 3BFA29410B81D5B70056EC15 /* ftmcontext.h */, 3BFA29840B81D6FB0056EC15 /* post.h */, 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */, @@ -860,7 +860,7 @@ 3BFA29E80B81D8140056EC15 /* object.c */, 3BFA29C80B81D7B80056EC15 /* parser.y */, 5C9CCDAB0BB734BD0045875B /* parser.c */, - 3BFA29510B81D6030056EC15 /* patcher.c */, + 3BFA29510B81D6030056EC15 /* scope.c */, 3BFA29520B81D6030056EC15 /* ftmcontext.c */, 3BFA29F20B81D83A0056EC15 /* post.c */, 3BFA27F30B81CE310056EC15 /* random.c */, @@ -982,7 +982,7 @@ 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */, 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */, 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */, - 5C6ED2300E68C4AB005E2C45 /* patcher.h in Headers */, + 5C6ED2300E68C4AB005E2C45 /* scope.h in Headers */, 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */, 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */, 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */, @@ -1219,7 +1219,7 @@ 5C209E640D0EDFD500BF135F /* cubic.c in Sources */, 5C209E660D0EDFD500BF135F /* random.c in Sources */, 5C209E680D0EDFD500BF135F /* ffft.c in Sources */, - 5C209E6B0D0EDFD500BF135F /* patcher.c in Sources */, + 5C209E6B0D0EDFD500BF135F /* scope.c in Sources */, 5C209E6C0D0EDFD500BF135F /* ftmcontext.c in Sources */, 5C209E6D0D0EDFD500BF135F /* symbol.c in Sources */, 5C209E6E0D0EDFD500BF135F /* timebase.c in Sources */, @@ -1271,7 +1271,7 @@ 5C7009430B836A3F001663C7 /* message.c in Sources */, 5C7009480B836A3F001663C7 /* object.c in Sources */, 5C70094C0B836A3F001663C7 /* parser.y in Sources */, - 5C70094D0B836A3F001663C7 /* patcher.c in Sources */, + 5C70094D0B836A3F001663C7 /* scope.c in Sources */, 5C7009500B836A3F001663C7 /* post.c in Sources */, 5C7009570B836A3F001663C7 /* stack.c in Sources */, 5C7009580B836A3F001663C7 /* status.c in Sources */, @@ -1322,7 +1322,7 @@ 3BFA27EC0B81CDEF0056EC15 /* cubic.c in Sources */, 3BFA27F60B81CE310056EC15 /* random.c in Sources */, 3BFA27FA0B81CE450056EC15 /* ffft.c in Sources */, - 3BFA29540B81D6030056EC15 /* patcher.c in Sources */, + 3BFA29540B81D6030056EC15 /* scope.c in Sources */, 3BFA29550B81D6030056EC15 /* ftmcontext.c in Sources */, 3BFA295A0B81D6240056EC15 /* symbol.c in Sources */, 3BFA295B0B81D6240056EC15 /* timebase.c in Sources */, Modified: trunk/ftm/externals/ftm.m.c =================================================================== --- trunk/ftm/externals/ftm.m.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/externals/ftm.m.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -230,7 +230,7 @@ static void init_input_evaluate(ftmm_t *self) { - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); int i; /* clear init arguments */ @@ -308,7 +308,7 @@ { int n = fts_array_get_size(&self->args); fts_atom_t *values = fts_array_get_atoms(&self->args); - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); fts_status_t status = fts_expression_reduce(self->expression, scope, n, values, expression_callback, (void *)self); if(status != fts_ok && status != fts_ignore) @@ -345,7 +345,7 @@ ftmm_t *self = (ftmm_t *)FTMEXT_GET_EXT(); int ac = FTMEXT_GET_COUNT(); fts_atom_t *at = FTMEXT_GET_ARGS(); - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); self->init_parser_status = fts_expression_parse_from_atoms(self->init_expression, ac, at, NULL); fts_expression_add_listener(self->init_expression, scope, self, init_intput_name_callback); Modified: trunk/ftm/externals/max/ftm.absargs.c =================================================================== --- trunk/ftm/externals/max/ftm.absargs.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/externals/max/ftm.absargs.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -32,7 +32,7 @@ ftmext_t o; t_patcher *parent; - fts_patcher_t *parent_scope; + fts_scope_t *parent_scope; fts_array_t default_args; fts_array_t default_attrs; @@ -165,7 +165,7 @@ if(parent != NULL && binbuf != NULL) { - fts_patcher_t *parent_scope = maxpat_get_scope(parent); + fts_scope_t *parent_scope = maxpat_get_scope(parent); Handle th = newhandle(256); long len = 0; char *str; Modified: trunk/ftm/externals/max/ftm.buffer.c =================================================================== --- trunk/ftm/externals/max/ftm.buffer.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/externals/max/ftm.buffer.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -138,7 +138,7 @@ } else { - fts_atom_t *value = fts_name_get_value(fts_get_root_patcher(), name); + fts_atom_t *value = fts_name_get_value(fts_global_scope, name); int m = 0; int n = 1; @@ -159,7 +159,7 @@ fts_atom_t a; fts_set_object(&a, (fts_object_t *)self->fmat); - fts_name_set_value(fts_get_root_patcher(), name, &a); + fts_name_set_value(fts_global_scope, name, &a); self->name = name; } else @@ -254,7 +254,7 @@ } if(self->name != NULL) - fts_name_set_value(fts_get_root_patcher(), self->name, fts_null); + fts_name_set_value(fts_global_scope, self->name, fts_null); FTMEXT_DELETE_RETURN; } Modified: trunk/ftm/externals/max/ftm.javascript.c =================================================================== --- trunk/ftm/externals/max/ftm.javascript.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/externals/max/ftm.javascript.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -313,7 +313,7 @@ * FTM js objects * */ -static fts_patcher_t * +static fts_scope_t * get_scope(JSContext *cx) { JSStackFrame *fp = cx->fp; @@ -349,11 +349,11 @@ } } - return fts_get_root_patcher(); + return fts_global_scope; } static JSBool -get_value_or_object(JSContext *cx, fts_patcher_t **scope, jsval *argv, jsval *rval) +get_value_or_object(JSContext *cx, fts_scope_t **scope, jsval *argv, jsval *rval) { if(JSVAL_IS_STRING(argv[0])) { @@ -390,7 +390,7 @@ } static JSBool -get_value_or_object_or_array(JSContext *cx, fts_patcher_t **scope, uintN argc, jsval *argv, jsval *rval) +get_value_or_object_or_array(JSContext *cx, fts_scope_t **scope, uintN argc, jsval *argv, jsval *rval) { if(argc == 1) return get_value_or_object(cx, scope, argv, rval); @@ -438,7 +438,7 @@ // in jitter: var a = JitterMatrix(symbol); if(argc > 0 && JS_IsConstructing(cx) == JS_FALSE) { - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; return get_value_or_object_or_array(cx, &scope, argc, argv, rval); } @@ -782,7 +782,7 @@ static JSBool _ftmGetObj(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; return get_value_or_object_or_array(cx, &scope, argc, argv, rval); } Modified: trunk/ftm/externals/max/ftm.mess.c =================================================================== --- trunk/ftm/externals/max/ftm.mess.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/externals/max/ftm.mess.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -830,7 +830,7 @@ { int n = fts_array_get_size(&self->args); fts_atom_t *values = fts_array_get_atoms(&self->args); - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); fts_status_t status; fts_expression_set_privates(self->expression, &self->privates); @@ -2833,7 +2833,7 @@ static void init_input_evaluate(ftmmess_t *self) { - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); int i; /* clear init arguments */ @@ -2926,7 +2926,7 @@ static void ftmmess_set_init(ftmmess_t *self, fts_symbol_t s, short ac, fts_atom_t *at) { - fts_patcher_t *scope = ftmext_get_scope((ftmext_t *)self); + fts_scope_t *scope = ftmext_get_scope((ftmext_t *)self); if(ac > 0 && fts_is_symbol(at) && fts_get_symbol(at) == fts_s_none) { @@ -3003,7 +3003,7 @@ static void ftmmess_redefine(ftmmess_t *self) { - fts_patcher_t *scope; + fts_scope_t *scope; maxext_update_scope((ftmext_t *)self); /* comptibility with old file format */ scope = ftmext_get_scope((ftmext_t *)self); Modified: trunk/ftm/ftmlib/expression.c =================================================================== --- trunk/ftm/ftmlib/expression.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/expression.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -45,7 +45,7 @@ fts_parsetree_t *tree; /* parser abstract tree */ int fp; /* frame pointer */ fts_hashtable_t *privates; /* very local variables */ - fts_patcher_t *scope; + fts_scope_t *scope; fts_hashtable_t *locals; fts_hashtable_t *globals; int env_ac; @@ -1555,13 +1555,13 @@ } fts_status_t -fts_expression_reduce( fts_expression_t *exp, fts_patcher_t *scope, int env_ac, const fts_atom_t *env_at, fts_expression_callback_t callback, void *data) +fts_expression_reduce( fts_expression_t *exp, fts_scope_t *scope, int env_ac, const fts_atom_t *env_at, fts_expression_callback_t callback, void *data) { + fts_hashtable_t *globals = fts_scope_get_values(fts_global_scope); fts_hashtable_t *locals = NULL; - fts_hashtable_t *globals = fts_get_globals(); if(scope != NULL) - locals = fts_patcher_get_values(scope); + locals = fts_scope_get_values(scope); if (exp->tree != NULL) { @@ -1586,7 +1586,7 @@ * */ static void -add_variables_user_aux( fts_parsetree_t *tree, fts_patcher_t *scope, void *listener, fts_name_listener_callback_t callback) +add_variables_user_aux( fts_parsetree_t *tree, fts_scope_t *scope, void *listener, fts_name_listener_callback_t callback) { if (!tree) return; @@ -1604,10 +1604,10 @@ } void -fts_expression_add_listener( fts_expression_t *exp, fts_patcher_t *scope, void *listener, fts_name_listener_callback_t callback) +fts_expression_add_listener( fts_expression_t *exp, fts_scope_t *scope, void *listener, fts_name_listener_callback_t callback) { if(scope == NULL) - scope = fts_get_root_patcher(); + scope = fts_global_scope; add_variables_user_aux( exp->tree, scope, listener, callback); } @@ -1851,11 +1851,12 @@ if(self->expression != NULL) { + fts_hashtable_t *globals = fts_scope_get_values(fts_global_scope); fts_status_t status; int ret_ac; fts_atom_t *ret_at; - fts_expression_set_globals(self->expression, fts_get_globals()); + fts_expression_set_globals(self->expression, globals); fts_expression_set_locals(self->expression, locals); fts_expression_set_env(self->expression, ac, at); @@ -1898,10 +1899,10 @@ } fts_method_status_t -expr_evaluate_in_scope(expr_t *self, fts_patcher_t *scope, int ac, const fts_atom_t *at, fts_atom_t *ret) +expr_evaluate_in_scope(expr_t *self, fts_scope_t *scope, int ac, const fts_atom_t *at, fts_atom_t *ret) { if(scope == NULL) - scope = fts_get_root_patcher(); + scope = fts_global_scope; if(self->expression != NULL) { @@ -1921,9 +1922,10 @@ { if(self->expression != NULL) { + fts_hashtable_t *globals = fts_scope_get_values(fts_global_scope); fts_status_t status; - fts_expression_set_globals(self->expression, fts_get_globals()); + fts_expression_set_globals(self->expression, globals); fts_expression_set_locals(self->expression, locals); fts_expression_set_env(self->expression, ac, at); Modified: trunk/ftm/ftmlib/expression.h =================================================================== --- trunk/ftm/ftmlib/expression.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/expression.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -28,11 +28,11 @@ FTS_API void fts_expression_clear( fts_expression_t *exp); FTS_API fts_status_t fts_expression_set( fts_expression_t *exp, int ac, const fts_atom_t *at); -FTS_API void fts_expression_add_listener( fts_expression_t *exp, fts_patcher_t *scope, void *listener, fts_name_listener_callback_t callback); +FTS_API void fts_expression_add_listener( fts_expression_t *exp, fts_scope_t *scope, void *listener, fts_name_listener_callback_t callback); typedef fts_status_t (*fts_expression_callback_t)( int ac, const fts_atom_t *at, const fts_atom_t *dest, void *data); -FTS_API fts_status_t fts_expression_reduce( fts_expression_t *exp, fts_patcher_t *scope, int env_ac, const fts_atom_t *env_at, fts_expression_callback_t callback, void *data); +FTS_API fts_status_t fts_expression_reduce( fts_expression_t *exp, fts_scope_t *scope, int env_ac, const fts_atom_t *env_at, fts_expression_callback_t callback, void *data); FTS_API fts_status_t fts_expression_evaluate( fts_expression_t *exp, fts_expression_callback_t callback, void *data); FTS_API fts_status_t fts_expression_parse_from_atoms(fts_expression_t *expression, int ac, fts_atom_t *at, fts_symbol_t *sym); @@ -66,7 +66,7 @@ FTS_API fts_class_t *expr_class; FTS_API fts_method_status_t expr_evaluate(expr_t *self, fts_hashtable_t *locals, int ac, const fts_atom_t *at, fts_atom_t *ret); -FTS_API fts_method_status_t expr_evaluate_in_scope(expr_t *self, fts_patcher_t *scope, int ac, const fts_atom_t *at, fts_atom_t *ret); +FTS_API fts_method_status_t expr_evaluate_in_scope(expr_t *self, fts_scope_t *scope, int ac, const fts_atom_t *at, fts_atom_t *ret); /* variable class */ FTS_API fts_class_t *fts_variable_class; Modified: trunk/ftm/ftmlib/ftmcontext.c =================================================================== --- trunk/ftm/ftmlib/ftmcontext.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmcontext.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -331,7 +331,7 @@ { if(fts_expression_is_valid(context->expression)) { - fts_patcher_t *scope = ftmext_get_scope(context->ext); + fts_scope_t *scope = ftmext_get_scope(context->ext); /* init status */ context->status = fts_ok; @@ -515,7 +515,7 @@ void ftm_context_set_name(ftm_context_t *context, fts_symbol_t wanted_name, int wanted_global) { - fts_patcher_t *scope = ftmext_get_scope(context->ext); + fts_scope_t *scope = ftmext_get_scope(context->ext); if(scope != NULL) { @@ -777,7 +777,7 @@ return 0; } -fts_patcher_t * +fts_scope_t * ftm_context_object_get_scope(fts_object_t *obj) { ftm_context_t *context = (ftm_context_t *)fts_object_get_context(obj); Modified: trunk/ftm/ftmlib/ftmcontext.h =================================================================== --- trunk/ftm/ftmlib/ftmcontext.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmcontext.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -93,6 +93,6 @@ /* FTS object short cuts */ FTS_API int ftm_context_object_has_container(fts_object_t *obj); FTS_API int ftm_context_object_is_persistent(fts_object_t *obj); -FTS_API fts_patcher_t *ftm_context_object_get_scope(fts_object_t *obj); +FTS_API fts_scope_t *ftm_context_object_get_scope(fts_object_t *obj); #endif Modified: trunk/ftm/ftmlib/ftmdump.c =================================================================== --- trunk/ftm/ftmlib/ftmdump.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmdump.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -123,7 +123,7 @@ fts_stack_t stack; /* stack of currently saved objects (by id) */ int current_id; /* cache stack top */ int index; /* id counter */ - fts_patcher_t *scope; /* curent scope */ + fts_scope_t *scope; /* curent scope */ fts_array_t array; /* array to save */ int n_objects; int n_saved; @@ -160,7 +160,7 @@ } void -ftmext_dumper_reset(ftmext_dumper_t *dumper, fts_patcher_t *scope, void *data) +ftmext_dumper_reset(ftmext_dumper_t *dumper, fts_scope_t *scope, void *data) { fts_hashtable_clear(&dumper->hash); dumper->index = 0; @@ -172,7 +172,7 @@ dumper->n_saved = 0; if(scope != NULL) - dumper->n_objects = fts_patcher_get_size(scope); + dumper->n_objects = fts_scope_get_size(scope); if(1 && dumper->refclip != NULL) /* COPY */ reference_clipboard_reset(dumper->refclip); @@ -262,7 +262,7 @@ dumper_save_reference(ftmext_dumper_t *dumper, fts_object_t *obj) { int id = dumper_get_id(dumper, obj); - fts_patcher_t *scope = ftm_context_object_get_scope(obj); + fts_scope_t *scope = ftm_context_object_get_scope(obj); /* dump object if not saved yet */ if(id == 0) @@ -403,7 +403,7 @@ typedef struct loader_scope { fts_hashtable_t hash; /* hash table of objects already saved (by pointer) and loaded (by id) */ - fts_patcher_t *scope; + fts_scope_t *scope; void *data; } loader_scope_t; @@ -418,7 +418,7 @@ } static void -loader_scope_reset(loader_scope_t *loader_scope, fts_patcher_t *scope) +loader_scope_reset(loader_scope_t *loader_scope, fts_scope_t *scope) { fts_hashtable_clear(&loader_scope->hash); loader_scope->scope = scope; @@ -511,7 +511,7 @@ } void -ftmext_loader_push_scope(ftmext_loader_t *loader, fts_patcher_t *scope) +ftmext_loader_push_scope(ftmext_loader_t *loader, fts_scope_t *scope) { loader->top++; @@ -521,11 +521,11 @@ loader_scope_reset(loader->stack + loader->top, scope); } -fts_patcher_t * +fts_scope_t * ftmext_loader_pop_scope(ftmext_loader_t *loader) { loader_scope_t *loader_scope = loader_get_scope(loader); - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; if(loader_scope != NULL) { Modified: trunk/ftm/ftmlib/ftmdump.h =================================================================== --- trunk/ftm/ftmlib/ftmdump.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmdump.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -32,7 +32,7 @@ */ typedef struct ftmext_dumper ftmext_dumper_t; -FTS_API void ftmext_dumper_reset(ftmext_dumper_t *dumper, fts_patcher_t *scope, void *data); +FTS_API void ftmext_dumper_reset(ftmext_dumper_t *dumper, fts_scope_t *scope, void *data); FTS_API int ftmext_dumper_increment(ftmext_dumper_t *dumper); FTS_API void ftmext_dumper_save_message(ftmext_dumper_t *dumper, fts_symbol_t selector, int ac, const fts_atom_t *at); @@ -51,8 +51,8 @@ FTS_API ftmext_loader_t *ftmext_loader_new(void); FTS_API void ftmext_loader_reset(ftmext_loader_t *loader); -FTS_API void ftmext_loader_push_scope(ftmext_loader_t *loader, fts_patcher_t *scope); -FTS_API fts_patcher_t *ftmext_loader_pop_scope(ftmext_loader_t *loader); +FTS_API void ftmext_loader_push_scope(ftmext_loader_t *loader, fts_scope_t *scope); +FTS_API fts_scope_t *ftmext_loader_pop_scope(ftmext_loader_t *loader); FTS_API void *ftmext_loader_get_scope_data(ftmext_loader_t *loader); FTS_API void ftmext_loader_set_scope_data(ftmext_loader_t *loader, void *data); Modified: trunk/ftm/ftmlib/ftmext.c =================================================================== --- trunk/ftm/ftmlib/ftmext.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmext.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -652,12 +652,12 @@ * */ void -ftmext_init(ftmext_t *ext, ftmext_class_t *cl, fts_patcher_t *scope) +ftmext_init(ftmext_t *ext, ftmext_class_t *cl, fts_scope_t *scope) { ext->scope = scope; if(scope != NULL) - fts_patcher_add_object(scope, ext); + fts_scope_add_object(scope, ext); ext->cl = cl; ext->expression = NULL; @@ -686,7 +686,7 @@ ftmext_delete(ftmext_t *ext) { if(ext->scope != NULL) - fts_patcher_remove_object(ext->scope, ext); + fts_scope_remove_object(ext->scope, ext); fts_array_destroy(&ext->arguments); @@ -921,7 +921,7 @@ } fts_status_t -ftmext_expression_evaluate(ftmext_t *ext, fts_patcher_t *scope, fts_array_t *array, fts_hashtable_t *hash) +ftmext_expression_evaluate(ftmext_t *ext, fts_scope_t *scope, fts_array_t *array, fts_hashtable_t *hash) { if(ext->expression != NULL) { @@ -960,7 +960,7 @@ if(status == fts_ok) { - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); status = ftmext_expression_evaluate(ext, scope, &ext->arguments, NULL); return; @@ -973,7 +973,7 @@ void ftmext_redefine_expression(ftmext_t *ext) { - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); ext->expression_status = ftmext_expression_evaluate(ext, scope, &ext->arguments, NULL); } Modified: trunk/ftm/ftmlib/ftmext.h =================================================================== --- trunk/ftm/ftmlib/ftmext.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/ftmext.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -154,7 +154,7 @@ { ftmrte_external_head_t head; /**< head ... */ ftmext_class_t *cl; /**< class ... */ - fts_patcher_t *scope; /**< scope ... */ + fts_scope_t *scope; /**< scope ... */ fts_expression_t *expression; /**< expression ... */ fts_status_t expression_status; /**< expression_status ... */ fts_array_t arguments; /**< arguments ... */ @@ -183,7 +183,7 @@ #define ftmext_get_connected(e, i) ((e)->dsp_connected[((i) < (e)->n_inlets_dsp)? (i): 0]) #define ftmext_set_connected(e, i, x) ((e)->dsp_connected[i] = (x)) -FTS_API void ftmext_init(ftmext_t *ext, ftmext_class_t *cl, fts_patcher_t *scope); +FTS_API void ftmext_init(ftmext_t *ext, ftmext_class_t *cl, fts_scope_t *scope); FTS_API void ftmext_delete(ftmext_t *ext); FTS_API int ftmext_init_get_argument_count(int ac, fts_atom_t *at); @@ -195,7 +195,7 @@ FTS_API char *ftm_expression_string_from_args(int ac, const fts_atom_t *at); FTS_API fts_status_t ftmext_expression_parse(ftmext_t *ext, int ac, fts_atom_t *at); FTS_API fts_status_t ftmext_expression_parse_from_string(ftmext_t *ext, char *str); -FTS_API fts_status_t ftmext_expression_evaluate(ftmext_t *ext, fts_patcher_t *scope, fts_array_t *array, fts_hashtable_t *hash); +FTS_API fts_status_t ftmext_expression_evaluate(ftmext_t *ext, fts_scope_t *scope, fts_array_t *array, fts_hashtable_t *hash); FTS_API void ftmext_init_expression(ftmext_t *ext, int ac, fts_atom_t *at); FTS_API void ftmext_redefine_expression(ftmext_t *ext); Modified: trunk/ftm/ftmlib/max/ftmexternals.h =================================================================== --- trunk/ftm/ftmlib/max/ftmexternals.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/max/ftmexternals.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -373,8 +373,8 @@ /* Max/MSP specific functions (defined in maxpat.c) */ FTS_API t_patcher *maxpat_get_toplevel(t_patcher *pat); FTS_API int maxpat_get_depth(t_patcher *pat); -FTS_API fts_patcher_t *maxpat_get_scope(t_patcher *pat); -FTS_API fts_patcher_t *maxpat_get_scope_by_depth(t_patcher *pat, int depth); +FTS_API fts_scope_t *maxpat_get_scope(t_patcher *pat); +FTS_API fts_scope_t *maxpat_get_scope_by_depth(t_patcher *pat, int depth); FTS_API char *maxpat_get_description(t_patcher *pat); FTS_API void maxpat_unresolved_scope_add(t_object *ext, t_patcher *pat); FTS_API int maxpat_has_unresolved(void); Modified: trunk/ftm/ftmlib/max/maxdsp.c =================================================================== --- trunk/ftm/ftmlib/max/maxdsp.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/max/maxdsp.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -43,7 +43,7 @@ max_audio_sr = sr; fts_set_float(&a, max_audio_sr); - fts_name_set_value(fts_get_root_patcher(), sym_audio_sr, &a); + fts_name_set_value(fts_global_scope, sym_audio_sr, &a); } if(vs != max_audio_vs) @@ -51,7 +51,7 @@ max_audio_vs = vs; fts_set_int(&a, max_audio_vs); - fts_name_set_value(fts_get_root_patcher(), sym_audio_vs, &a); + fts_name_set_value(fts_global_scope, sym_audio_vs, &a); } clock_fdelay(dsp_parameters_lookup_clock, 500); @@ -84,8 +84,8 @@ max_audio_vs = sys_getblksize(); fts_set_float(&a, max_audio_sr); - fts_name_set_value(fts_get_root_patcher(), sym_audio_sr, &a); + fts_name_set_value(fts_global_scope, sym_audio_sr, &a); fts_set_int(&a, max_audio_vs); - fts_name_set_value(fts_get_root_patcher(), sym_audio_vs, &a); + fts_name_set_value(fts_global_scope, sym_audio_vs, &a); } Modified: trunk/ftm/ftmlib/max/maxext.c =================================================================== --- trunk/ftm/ftmlib/max/maxext.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/max/maxext.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -88,10 +88,10 @@ fts_free(ext->head.args); } -static fts_patcher_t * +static fts_scope_t * maxext_init_scope(ftmext_t *ext, t_patcher *patcher, short *rac, fts_atom_t **rat) { - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; int ac = *rac; fts_atom_t *at = *rat; int depth = -1; @@ -133,7 +133,7 @@ int maxext_init_raw(ftmext_t *ext, ftmext_class_t *cl, t_patcher *patcher, short *rac, fts_atom_t **rat) { - fts_patcher_t *scope = maxext_init_scope(ext, patcher, rac, rat); + fts_scope_t *scope = maxext_init_scope(ext, patcher, rac, rat); /* initialize Max/MSP dependent stuff */ maxext_init_head(ext, patcher); @@ -492,7 +492,7 @@ maxext_save_begin(ftmext_t *ext, void *binbuf) { ftmext_dumper_t *dumper = ftmext_get_dumper(ext); - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); if(dumper_qelem == NULL) dumper_qelem = qelem_new(NULL, (method)dumper_dirty); @@ -848,7 +848,7 @@ void maxext_update_scope(ftmext_t *ext) { - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); if(scope == NULL) { @@ -857,7 +857,7 @@ if(scope != NULL) { ftmext_set_scope(ext, scope); - fts_patcher_add_object(scope, ext); + fts_scope_add_object(scope, ext); } } } Modified: trunk/ftm/ftmlib/max/maxpat.c =================================================================== --- trunk/ftm/ftmlib/max/maxpat.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/max/maxpat.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -398,10 +398,10 @@ return depth; } -static fts_patcher_t * +static fts_scope_t * scope_register(t_patcher *toplevel) { - fts_patcher_t *scope = (fts_patcher_t *)fts_object_create(patcher_class, 0, 0); + fts_scope_t *scope = (fts_scope_t *)fts_object_create(fts_scope_class, 0, 0); fts_atom_t k, v; fts_set_pointer(&k, toplevel); @@ -411,7 +411,7 @@ return scope; } -static fts_patcher_t * +static fts_scope_t * scope_get(t_patcher *toplevel) { fts_atom_t k, v; @@ -419,7 +419,7 @@ fts_set_pointer(&k, toplevel); if(fts_hashtable_get(maxpat_scope_hash, &k, &v)) - return (fts_patcher_t *)fts_get_object(&v); + return (fts_scope_t *)fts_get_object(&v); else return scope_register(toplevel); } @@ -443,11 +443,11 @@ return depth; } -fts_patcher_t * +fts_scope_t * maxpat_get_scope(t_patcher *pat) { t_patcher *toplevel = pat; - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; toplevel_get(&toplevel); @@ -457,7 +457,7 @@ return scope; } -fts_patcher_t * +fts_scope_t * maxpat_get_scope_by_depth(t_patcher *pat, int depth) { t_patcher *p = pat; Modified: trunk/ftm/ftmlib/namedef.c =================================================================== --- trunk/ftm/ftmlib/namedef.c 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/namedef.c 2008-08-31 00:14:20 UTC (rev 1937) @@ -47,7 +47,7 @@ }; static fts_definition_t * -fts_definition_new(fts_patcher_t *scope, fts_symbol_t name) +fts_definition_new(fts_scope_t *scope, fts_symbol_t name) { fts_definition_t *def = (fts_definition_t *)fts_heap_zalloc(definition_heap); @@ -61,9 +61,9 @@ } fts_definition_t * -fts_definition_get(fts_patcher_t *scope, fts_symbol_t name) +fts_definition_get(fts_scope_t *scope, fts_symbol_t name) { - fts_hashtable_t *hash = fts_patcher_get_definitions(scope); + fts_hashtable_t *hash = fts_scope_get_definitions(scope); fts_definition_t *def = NULL; fts_atom_t k, a; @@ -124,7 +124,7 @@ static void definition_set_value(fts_definition_t *def, const fts_atom_t *value) { - fts_hashtable_t *scope_values = fts_patcher_get_values(def->scope); + fts_hashtable_t *scope_values = fts_scope_get_values(def->scope); fts_atom_t k; def->value = *value; @@ -184,7 +184,7 @@ { if(!fts_is_void(&def->value) && def->global == NULL) { - fts_definition_t *global = fts_definition_get(fts_get_root_patcher(), def->name); + fts_definition_t *global = fts_definition_get(fts_global_scope, def->name); fts_atom_t *global_value = fts_definition_get_value(global); if(fts_is_void(global_value)) @@ -219,7 +219,7 @@ * */ void -fts_name_set_value(fts_patcher_t *scope, fts_symbol_t name, const fts_atom_t *value) +fts_name_set_value(fts_scope_t *scope, fts_symbol_t name, const fts_atom_t *value) { fts_definition_t *def = fts_definition_get(scope, name); @@ -228,25 +228,25 @@ } void -fts_name_set_global(fts_patcher_t *scope, fts_symbol_t name) +fts_name_set_global(fts_scope_t *scope, fts_symbol_t name) { fts_definition_t *def = fts_definition_get(scope, name); - if(scope != fts_get_root_patcher()) + if(scope != fts_global_scope) fts_definition_set_global(def); } void -fts_name_set_local(fts_patcher_t *scope, fts_symbol_t name) +fts_name_set_local(fts_scope_t *scope, fts_symbol_t name) { fts_definition_t *def = fts_definition_get(scope, name); - if(scope != fts_get_root_patcher()) + if(scope != fts_global_scope) fts_definition_set_local(def); } int -fts_name_is_global(fts_patcher_t *scope, fts_symbol_t name) +fts_name_is_global(fts_scope_t *scope, fts_symbol_t name) { fts_definition_t *def = fts_definition_get(scope, name); @@ -254,7 +254,7 @@ } void -fts_name_add_listener(fts_patcher_t *scope, fts_symbol_t name, void *listener, fts_name_listener_callback_t callback) +fts_name_add_listener(fts_scope_t *scope, fts_symbol_t name, void *listener, fts_name_listener_callback_t callback) { fts_definition_t *def = fts_definition_get(scope, name); @@ -262,14 +262,14 @@ if(fts_is_void(&def->value)) { - def = fts_definition_get(fts_get_root_patcher(), name); + def = fts_definition_get(fts_global_scope, name); fts_definition_add_listener(def, listener, callback); } } void -fts_name_remove_listener(fts_patcher_t *scope, fts_symbol_t name, void *listener) +fts_name_remove_listener(fts_scope_t *scope, fts_symbol_t name, void *listener) { fts_definition_t *def = fts_definition_get(scope, name); @@ -277,28 +277,28 @@ if(fts_is_void(&def->value)) { - def = fts_definition_get(fts_get_root_patcher(), name); + def = fts_definition_get(fts_global_scope, name); fts_definition_remove_listener(def, listener); } } fts_atom_t * -fts_name_get_value(fts_patcher_t *scope, fts_symbol_t name) +fts_name_get_value(fts_scope_t *scope, fts_symbol_t name) { fts_definition_t *def = fts_definition_get(scope, name); /* if there is no local value get the global */ if(fts_is_void(&def->value)) - def = fts_definition_get(fts_get_root_patcher(), name); + def = fts_definition_get(fts_global_scope, name); return &def->value; } fts_symbol_t -fts_name_get_unused(fts_patcher_t *scope, fts_symbol_t name) +fts_name_get_unused(fts_scope_t *scope, fts_symbol_t name) { - fts_hashtable_t *hash = fts_patcher_get_definitions(scope); + fts_hashtable_t *hash = fts_scope_get_definitions(scope); fts_atom_t a, k; fts_set_symbol(&k, name); @@ -359,7 +359,7 @@ */ typedef struct binding { - fts_patcher_t *scope; + fts_scope_t *scope; fts_symbol_t name; struct binding *next; } binding_t; @@ -368,7 +368,7 @@ static fts_hashtable_t *object_bindings_hash = NULL; void -fts_name_listener_add_binding(void *listener, fts_patcher_t *scope, fts_symbol_t name) +fts_name_listener_add_binding(void *listener, fts_scope_t *scope, fts_symbol_t name) { binding_t *list_of_bindings = NULL; binding_t *binding = NULL; Modified: trunk/ftm/ftmlib/namedef.h =================================================================== --- trunk/ftm/ftmlib/namedef.h 2008-08-31 00:10:24 UTC (rev 1936) +++ trunk/ftm/ftmlib/namedef.h 2008-08-31 00:14:20 UTC (rev 1937) @@ -30,7 +30,7 @@ */ typedef void (*fts_name_listener_callback_t)(void *listener, fts_symbol_t name); -FTS_API void fts_name_listener_add_binding(void *listener, fts_patcher_t *scope, fts_symbol_t name); +FTS_API void fts_name_listener_add_binding(void *listener, fts_scope_t *scope, fts_symbol_t name); FTS_API void fts_name_listener_remove_bindings(void *listener); /**************************************************************************** @@ -43,7 +43,7 @@ struct fts_definition { - fts_patcher_t *scope; + fts_scope_t *scope; fts_symbol_t name; fts_atom_t value; fts_definition_t *global; @@ -62,7 +62,7 @@ FTS_API void fts_definition_remove_listener(fts_definition_t *def, void *listener); /* get definition by name from given patcher */ -FTS_API fts_definition_t *fts_definition_get(fts_patcher_t *patcher, fts_symbol_t name); +FTS_API fts_definition_t *fts_definition_get(fts_scope_t *patcher, fts_symbol_t name); /* set value and call listeners */ FTS_API void fts_definition_update(fts_definition_t *def, const fts_atom_t *a); @@ -72,16 +72,16 @@ * names (high level API) * */ -FTS_API void fts_name_set_value(fts_patcher_t *patcher, fts_symbol_t name, const fts_atom_t *value); -FTS_API void fts_name_set_global(fts_patcher_t *patcher, fts_symbol_t name); -FTS_API void fts_name_set_local(fts_patcher_t *patcher, fts_symbol_t name); -FTS_API int fts_name_is_global(fts_patcher_t *patcher, fts_symbol_t name); +FTS_API void fts_name_set_value(fts_scope_t *patcher, fts_symbol_t name, const fts_atom_t *value); +FTS_API void fts_name_set_global(fts_scope_t *patcher, fts_symbol_t name); +FTS_API void fts_name_set_local(fts_scope_t *patcher, fts_symbol_t name); +FTS_API int fts_name_is_global(fts_scope_t *patcher, fts_symbol_t name); -FTS_API void fts_name_add_listener(fts_patcher_t *patcher, fts_symbol_t name, void *listener, fts_name_listener_callback_t callback); -FTS_API void fts_name_remove_listener(fts_patcher_t *patcher, fts_symbol_t name, void *listener); +FTS_API void fts_name_add_listener(fts_scope_t *patcher, fts_symbol_t name, void *listener, fts_name_listener_callback_t callback); +FTS_API void fts_name_remove_listener(fts_scope_t *patcher, fts_symbol_t name, void *listener); -FTS_API fts_atom_t *fts_name_get_value(fts_patcher_t *patcher, fts_symbol_t name); -FTS_API fts_symbol_t fts_name_get_unused(fts_patcher_t *patcher, fts_symbol_t name); +FTS_API fts_atom_t *fts_name_get_value(fts_scope_t *patcher, fts_symbol_t name); +FTS_API fts_symbol_t fts_name_get_unused(fts_scope_t *patcher, fts_symbol_t name); /************************************************************* * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-08-31 00:56:55
|
Revision: 1939 http://ftm.svn.sourceforge.net/ftm/?rev=1939&view=rev Author: nschnell Date: 2008-08-31 00:57:03 +0000 (Sun, 31 Aug 2008) Log Message: ----------- renamed fts_patcher in fts_scope and adapted code and xcode project Modified Paths: -------------- trunk/ftm/build/doxygen/ftmapi.doxygen trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/externals/ftm.o.c trunk/ftm/externals/max/ftm.object.c trunk/ftm/ftmlib/ftmlib.h trunk/ftm/ftmlib/scope.h Modified: trunk/ftm/build/doxygen/ftmapi.doxygen =================================================================== --- trunk/ftm/build/doxygen/ftmapi.doxygen 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/build/doxygen/ftmapi.doxygen 2008-08-31 00:57:03 UTC (rev 1939) @@ -107,7 +107,7 @@ ../../../ftmlib/classes/dict.h \ ../../../ftmlib/classes/fmat.h \ ../../../ftmlib/classes/fvec.h \ - ../../../ftmlib/classes/note.h \ + ../../../ftmlib/classes/scoob.h \ ../../../ftmlib/classes/mat.h \ ../../../ftmlib/classes/sequence.h \ ../../../ftmlib/classes/track.h Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-31 00:57:03 UTC (rev 1939) @@ -135,7 +135,7 @@ 5C2843E70D1439BF008C512E /* ftmdump.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C2843E60D1439BF008C512E /* ftmdump.c */; }; 5C2843E80D1439BF008C512E /* ftmdump.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C2843E60D1439BF008C512E /* ftmdump.c */; }; 5C47A4660E68C9BE00487D57 /* sdif.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5C6ED2990E68C818005E2C45 /* sdif.h */; }; - 5C47A7620E6A08B800487D57 /* propobj.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C47A7610E6A08B800487D57 /* propobj.h */; }; + 5C47A7620E6A08B800487D57 /* propobj.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C47A7610E6A08B800487D57 /* propobj.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C5F07D3078218BA00A59DE2 /* ftmext.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F07D1078218BA00A59DE2 /* ftmext.c */; }; 5C6E6D810835099C009C0840 /* maxpat.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C6E6D800835099C009C0840 /* maxpat.c */; }; 5C6ED0EF0E68C390005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; @@ -203,71 +203,71 @@ 5C6ED12E0E68C390005E2C45 /* utils.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; 5C6ED12F0E68C390005E2C45 /* namedef.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* namedef.h */; }; 5C6ED1300E68C390005E2C45 /* ffft.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; }; - 5C6ED2000E68C4AB005E2C45 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; - 5C6ED2010E68C4AB005E2C45 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; - 5C6ED2020E68C4AB005E2C45 /* atomfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; }; - 5C6ED2030E68C4AB005E2C45 /* audiofile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295E0B81D64F0056EC15 /* audiofile.h */; }; - 5C6ED2040E68C4AB005E2C45 /* bpf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; }; - 5C6ED2050E68C4AB005E2C45 /* bytestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; - 5C6ED2060E68C4AB005E2C45 /* class.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; }; - 5C6ED2070E68C4AB005E2C45 /* config-macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; }; - 5C6ED2080E68C4AB005E2C45 /* cubic.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B2731980B8222C400C98C90 /* cubic.h */; }; - 5C6ED2090E68C4AB005E2C45 /* data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; }; - 5C6ED20A0E68C4AB005E2C45 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; }; - 5C6ED20B0E68C4AB005E2C45 /* dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29660B81D68B0056EC15 /* dumper.h */; }; - 5C6ED20C0E68C4AB005E2C45 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; }; - 5C6ED20D0E68C4AB005E2C45 /* expression.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; }; - 5C6ED20E0E68C4AB005E2C45 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; }; - 5C6ED20F0E68C4AB005E2C45 /* floatfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C283C7D0D130D31008C512E /* floatfuns.h */; }; - 5C6ED2100E68C4AB005E2C45 /* fmat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33510B7CE8E800BC8D76 /* fmat.h */; }; - 5C6ED2110E68C4AB005E2C45 /* fring.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; }; - 5C6ED2120E68C4AB005E2C45 /* ftmconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE0A3CF0CE7136400C825AF /* ftmconfig.h */; }; - 5C6ED2130E68C4AB005E2C45 /* ftmcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29410B81D5B70056EC15 /* ftmcontext.h */; }; - 5C6ED2140E68C4AB005E2C45 /* ftmdump.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2843EA0D1439D0008C512E /* ftmdump.h */; }; - 5C6ED2150E68C4AB005E2C45 /* ftmext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; }; - 5C6ED2160E68C4AB005E2C45 /* ftmexternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; }; - 5C6ED2170E68C4AB005E2C45 /* ftmlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; }; - 5C6ED2190E68C4AB005E2C45 /* ftmrte.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; }; - 5C6ED21A0E68C4AB005E2C45 /* ftmsdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; }; - 5C6ED21B0E68C4AB005E2C45 /* ftmtypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; }; - 5C6ED21C0E68C4AB005E2C45 /* ftmversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; }; - 5C6ED21D0E68C4AB005E2C45 /* fts.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; }; - 5C6ED21E0E68C4AB005E2C45 /* ftsconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; }; - 5C6ED21F0E68C4AB005E2C45 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; }; - 5C6ED2200E68C4AB005E2C45 /* fvec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; }; - 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; }; - 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; }; - 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; }; - 5C6ED2240E68C4AB005E2C45 /* llist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* llist.h */; }; - 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; }; - 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; }; - 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; }; - 5C6ED2280E68C4AB005E2C45 /* mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; }; - 5C6ED2290E68C4AB005E2C45 /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; }; - 5C6ED22A0E68C4AB005E2C45 /* midievent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29780B81D6C80056EC15 /* midievent.h */; }; - 5C6ED22B0E68C4AB005E2C45 /* midifile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; }; - 5C6ED22C0E68C4AB005E2C45 /* scoob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* scoob.h */; }; - 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; }; - 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; }; - 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; }; - 5C6ED2300E68C4AB005E2C45 /* scope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* scope.h */; }; - 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; }; - 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; }; - 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; }; - 5C6ED2340E68C4AB005E2C45 /* seqmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; }; - 5C6ED2350E68C4AB005E2C45 /* sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; }; - 5C6ED2360E68C4AB005E2C45 /* sndfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB4C03E0B8D0BC60069B542 /* sndfile.h */; }; - 5C6ED2370E68C4AB005E2C45 /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; }; - 5C6ED2380E68C4AB005E2C45 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; }; - 5C6ED2390E68C4AB005E2C45 /* symbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; }; - 5C6ED23A0E68C4AB005E2C45 /* timebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; }; - 5C6ED23B0E68C4AB005E2C45 /* tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; }; - 5C6ED23C0E68C4AB005E2C45 /* track.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; }; - 5C6ED23D0E68C4AB005E2C45 /* tuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; }; - 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; - 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; }; - 5C6ED2400E68C4AB005E2C45 /* namedef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* namedef.h */; }; - 5C6ED2410E68C4AB005E2C45 /* ffft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; }; + 5C6ED2000E68C4AB005E2C45 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2010E68C4AB005E2C45 /* atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2020E68C4AB005E2C45 /* atomfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295D0B81D64F0056EC15 /* atomfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2030E68C4AB005E2C45 /* audiofile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA295E0B81D64F0056EC15 /* audiofile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2040E68C4AB005E2C45 /* bpf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334B0B7CE8E800BC8D76 /* bpf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2050E68C4AB005E2C45 /* bytestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2060E68C4AB005E2C45 /* class.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29630B81D6610056EC15 /* class.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2070E68C4AB005E2C45 /* config-macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2839400D128DA6008C512E /* config-macosx.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2080E68C4AB005E2C45 /* cubic.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B2731980B8222C400C98C90 /* cubic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2090E68C4AB005E2C45 /* data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334D0B7CE8E800BC8D76 /* data.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20A0E68C4AB005E2C45 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334E0B7CE8E800BC8D76 /* dict.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20B0E68C4AB005E2C45 /* dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29660B81D68B0056EC15 /* dumper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20C0E68C4AB005E2C45 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD334F0B7CE8E800BC8D76 /* event.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20D0E68C4AB005E2C45 /* expression.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29670B81D68B0056EC15 /* expression.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20E0E68C4AB005E2C45 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29390B81D5970056EC15 /* file.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED20F0E68C4AB005E2C45 /* floatfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C283C7D0D130D31008C512E /* floatfuns.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2100E68C4AB005E2C45 /* fmat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33510B7CE8E800BC8D76 /* fmat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2110E68C4AB005E2C45 /* fring.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C051D830CF4D45F00BFAA28 /* fring.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2120E68C4AB005E2C45 /* ftmconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE0A3CF0CE7136400C825AF /* ftmconfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2130E68C4AB005E2C45 /* ftmcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29410B81D5B70056EC15 /* ftmcontext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2140E68C4AB005E2C45 /* ftmdump.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2843EA0D1439D0008C512E /* ftmdump.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2150E68C4AB005E2C45 /* ftmext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B80A1082E1B2A00E7F7D3 /* ftmext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2160E68C4AB005E2C45 /* ftmexternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDB258708311E3500F543E3 /* ftmexternals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2170E68C4AB005E2C45 /* ftmlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1A928B06D3B3F8009882D6 /* ftmlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2190E68C4AB005E2C45 /* ftmrte.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0B809C082E0E9200E7F7D3 /* ftmrte.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21A0E68C4AB005E2C45 /* ftmsdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C824BC70B8DB174009878F7 /* ftmsdif.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21B0E68C4AB005E2C45 /* ftmtypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8756880830E63900D62A08 /* ftmtypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21C0E68C4AB005E2C45 /* ftmversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C132590078C2E9C0008A86A /* ftmversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21D0E68C4AB005E2C45 /* fts.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA293E0B81D5B70056EC15 /* fts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21E0E68C4AB005E2C45 /* ftsconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075F50B8323E500B259E5 /* ftsconfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED21F0E68C4AB005E2C45 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296C0B81D69F0056EC15 /* function.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2200E68C4AB005E2C45 /* fvec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33520B7CE8E800BC8D76 /* fvec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2210E68C4AB005E2C45 /* guiinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE243DD0E093FB900DF5AE3 /* guiinterfaces.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2220E68C4AB005E2C45 /* hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296D0B81D69F0056EC15 /* hashtable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2230E68C4AB005E2C45 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA296E0B81D69F0056EC15 /* iterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2240E68C4AB005E2C45 /* llist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29720B81D6B20056EC15 /* llist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2250E68C4AB005E2C45 /* marker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33550B7CE8E800BC8D76 /* marker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2260E68C4AB005E2C45 /* mat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33560B7CE8E800BC8D76 /* mat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2270E68C4AB005E2C45 /* mathfuns.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33580B7CE8E800BC8D76 /* mathfuns.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2280E68C4AB005E2C45 /* mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319A0B8222C400C98C90 /* mem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2290E68C4AB005E2C45 /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29740B81D6B20056EC15 /* message.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22A0E68C4AB005E2C45 /* midievent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29780B81D6C80056EC15 /* midievent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22B0E68C4AB005E2C45 /* midifile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29790B81D6C80056EC15 /* midifile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22C0E68C4AB005E2C45 /* scoob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD33590B7CE8E800BC8D76 /* scoob.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22D0E68C4AB005E2C45 /* object.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA297A0B81D6C80056EC15 /* object.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22E0E68C4AB005E2C45 /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29800B81D6E20056EC15 /* parser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED22F0E68C4AB005E2C45 /* parsetree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319B0B8222C400C98C90 /* parsetree.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2300E68C4AB005E2C45 /* scope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29400B81D5B70056EC15 /* scope.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2310E68C4AB005E2C45 /* post.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29840B81D6FB0056EC15 /* post.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2320E68C4AB005E2C45 /* predefsymbols.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29850B81D6FB0056EC15 /* predefsymbols.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2330E68C4AB005E2C45 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B27319C0B8222C400C98C90 /* random.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2340E68C4AB005E2C45 /* seqmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335B0B7CE8E800BC8D76 /* seqmidi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2350E68C4AB005E2C45 /* sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335D0B7CE8E800BC8D76 /* sequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2360E68C4AB005E2C45 /* sndfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB4C03E0B8D0BC60069B542 /* sndfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2370E68C4AB005E2C45 /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29860B81D6FB0056EC15 /* stack.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2380E68C4AB005E2C45 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298A0B81D7120056EC15 /* status.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2390E68C4AB005E2C45 /* symbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29460B81D5CB0056EC15 /* symbol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23A0E68C4AB005E2C45 /* timebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29470B81D5CB0056EC15 /* timebase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23B0E68C4AB005E2C45 /* tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298B0B81D7120056EC15 /* tokenizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23C0E68C4AB005E2C45 /* track.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFD335F0B7CE8E800BC8D76 /* track.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23D0E68C4AB005E2C45 /* tuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23E0E68C4AB005E2C45 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED23F0E68C4AB005E2C45 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA27E50B81CDBB0056EC15 /* utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2400E68C4AB005E2C45 /* namedef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* namedef.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C6ED2410E68C4AB005E2C45 /* ffft.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0075ED0B83237200B259E5 /* ffft.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C6ED2480E68C68C005E2C45 /* array.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA295C0B81D64F0056EC15 /* array.h */; }; 5C6ED2490E68C68C005E2C45 /* atom.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29360B81D5970056EC15 /* atom.h */; }; 5C6ED24D0E68C68C005E2C45 /* bytestream.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29620B81D6610056EC15 /* bytestream.h */; }; @@ -301,7 +301,7 @@ 5C6ED2850E68C68C005E2C45 /* tuple.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298C0B81D7120056EC15 /* tuple.h */; }; 5C6ED2860E68C68C005E2C45 /* types.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA29480B81D5CB0056EC15 /* types.h */; }; 5C6ED2880E68C68C005E2C45 /* namedef.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3BFA298D0B81D7120056EC15 /* namedef.h */; }; - 5C6ED29A0E68C818005E2C45 /* sdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6ED2990E68C818005E2C45 /* sdif.h */; }; + 5C6ED29A0E68C818005E2C45 /* sdif.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6ED2990E68C818005E2C45 /* sdif.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C7009260B836A3F001663C7 /* array.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C60B81D7B80056EC15 /* array.c */; }; 5C7009270B836A3F001663C7 /* atom.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29C70B81D7B80056EC15 /* atom.c */; }; 5C70092A0B836A3F001663C7 /* bytestream.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BFA29D00B81D7CB0056EC15 /* bytestream.c */; }; Modified: trunk/ftm/externals/ftm.o.c =================================================================== --- trunk/ftm/externals/ftm.o.c 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/externals/ftm.o.c 2008-08-31 00:57:03 UTC (rev 1939) @@ -20,6 +20,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ +#include "ftmlib.h" + #include <math.h> #include <stdio.h> #include <stdlib.h> @@ -31,8 +33,6 @@ #include <malloc.h> #endif -#include <ftmlib.h> - typedef struct { ftmext_t ext; @@ -362,9 +362,7 @@ * */ FTMEXT_HANDLER_OPEN(ftmo) -{ - ftmo_t *self = (ftmo_t *)FTMEXT_GET_EXT(); - +{ FTMEXT_HANDLER_RETURN; } Modified: trunk/ftm/externals/max/ftm.object.c =================================================================== --- trunk/ftm/externals/max/ftm.object.c 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/externals/max/ftm.object.c 2008-08-31 00:57:03 UTC (rev 1939) @@ -20,6 +20,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ +#include "ftmlib.h" + #include <math.h> #include <stdio.h> #include <stdlib.h> @@ -31,8 +33,6 @@ #include <malloc.h> #endif -#include "ftmlib.h" - #include <Quickdraw.h> #include <ConditionalMacros.h> #include <TextEdit.h> @@ -615,7 +615,6 @@ static void ftmobj_dblclick(t_object *o, Point pt, short modifiers) { - ftmobj_t *self = (ftmobj_t *)o; } static void Modified: trunk/ftm/ftmlib/ftmlib.h =================================================================== --- trunk/ftm/ftmlib/ftmlib.h 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/ftmlib/ftmlib.h 2008-08-31 00:57:03 UTC (rev 1939) @@ -67,6 +67,7 @@ #include "atomfile.h" #include "midifile.h" #include "audiofile.h" +#include "dumper.h" /* FTS utilities */ #include "cubic.h" Modified: trunk/ftm/ftmlib/scope.h =================================================================== --- trunk/ftm/ftmlib/scope.h 2008-08-31 00:33:01 UTC (rev 1938) +++ trunk/ftm/ftmlib/scope.h 2008-08-31 00:57:03 UTC (rev 1939) @@ -19,8 +19,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ -#ifndef _FTS_PATCHER_H_ -#define _FTS_PATCHER_H_ +#ifndef _FTS_SCOPE_H +#define _FTS_SCOPE_H typedef struct fts_scope { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-01 11:09:07
|
Revision: 1942 http://ftm.svn.sourceforge.net/ftm/?rev=1942&view=rev Author: nschnell Date: 2008-09-01 11:09:14 +0000 (Mon, 01 Sep 2008) Log Message: ----------- - moved fts_get_time from timebase.h (not part of ftmlight) to fts.h - FTM Xcode projectrs now depend on "ftm/../components" (instead of "ftm/components") - externals AND FTMlib.framework are now copied into "ftm/../../build-max" (The Max 5 Xcode projects are NOT up-to-date!) Modified Paths: -------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj trunk/ftm/ftmlib/ftmlib.c trunk/ftm/ftmlib/ftmversion.h trunk/ftm/ftmlib/fts.h trunk/ftm/ftmlib/timebase.h Modified: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/project.pbxproj 2008-09-01 11:09:14 UTC (rev 1942) @@ -3433,13 +3433,13 @@ ARCHS = "$(NATIVE_ARCH)"; COMPONENTS_DIR = ../../../components; COPYING_PRESERVES_HFS_DATA = YES; - EXTERNALS_DIR = "../../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-max"; FRAMEWORK_SEARCH_PATHS = ( "$(FTM_FRAMEWORK_DIR)", /Library/Frameworks, "$(MAX_FRAMEWORK_DIR)", ); - FTM_FRAMEWORK_DIR = ../../../lib/max; + FTM_FRAMEWORK_DIR = "$(EXTERNALS_DIR)"; FTM_VERSION = 2.4; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -3484,13 +3484,13 @@ COMPONENTS_DIR = ../../../components; COPYING_PRESERVES_HFS_DATA = YES; COPY_PHASE_STRIP = YES; - EXTERNALS_DIR = "../../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-max"; FRAMEWORK_SEARCH_PATHS = ( "$(FTM_FRAMEWORK_DIR)", /Library/Frameworks, "$(MAX_FRAMEWORK_DIR)", ); - FTM_FRAMEWORK_DIR = ../../../lib/max; + FTM_FRAMEWORK_DIR = "$(EXTERNALS_DIR)"; FTM_VERSION = 2.4; GCC_AUTO_VECTORIZATION = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; Modified: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj =================================================================== --- trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/project.pbxproj 2008-09-01 11:09:14 UTC (rev 1942) @@ -1414,14 +1414,14 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH)"; - COMPONENTS_DIR = ../../../components; + COMPONENTS_DIR = ../../../../components; COPY_PHASE_STRIP = NO; - EXTERNALS_DIR = "../../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-max"; FRAMEWORK_SEARCH_PATHS = ( /Library/Frameworks, "$(MAX_FRAMEWORK_DIR)", ); - FTM_FRAMEWORK_DIR = ../../../lib/max; + FTM_FRAMEWORK_DIR = "$(EXTERNALS_DIR)"; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1448,7 +1448,7 @@ GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADERS_DIR = ../../../lib/max/headers; + HEADERS_DIR = "$(STATIC_LIBRARY_DIR)/headers"; HEADER_SEARCH_PATHS = ( "$(MAX_FRAMEWORK_DIR)/MaxAPI.framework/Headers", "$(MAX_FRAMEWORK_DIR)/MaxAudioAPI.framework/Headers", @@ -1475,14 +1475,14 @@ ppc, i386, ); - COMPONENTS_DIR = ../../../components; + COMPONENTS_DIR = ../../../../components; COPY_PHASE_STRIP = YES; - EXTERNALS_DIR = "../../../../../build-macho"; + EXTERNALS_DIR = "../../../../../build-max"; FRAMEWORK_SEARCH_PATHS = ( /Library/Frameworks, "$(MAX_FRAMEWORK_DIR)", ); - FTM_FRAMEWORK_DIR = ../../../lib/max; + FTM_FRAMEWORK_DIR = "$(EXTERNALS_DIR)"; GCC_AUTO_VECTORIZATION = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 3; @@ -1509,7 +1509,7 @@ GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADERS_DIR = ../../../lib/max/headers; + HEADERS_DIR = "$(STATIC_LIBRARY_DIR)/headers"; HEADER_SEARCH_PATHS = ( "$(MAX_FRAMEWORK_DIR)/MaxAPI.framework/Headers", "$(MAX_FRAMEWORK_DIR)/MaxAudioAPI.framework/Headers", Modified: trunk/ftm/ftmlib/ftmlib.c =================================================================== --- trunk/ftm/ftmlib/ftmlib.c 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/ftmlib/ftmlib.c 2008-09-01 11:09:14 UTC (rev 1942) @@ -424,7 +424,7 @@ FTS_MODULE_INIT_CALL(post); - FTS_MODULE_INIT_CALL(patcher); + FTS_MODULE_INIT_CALL(scope); FTS_MODULE_INIT_CALL(bytestream); FTS_MODULE_INIT_CALL(dumper); Modified: trunk/ftm/ftmlib/ftmversion.h =================================================================== --- trunk/ftm/ftmlib/ftmversion.h 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/ftmlib/ftmversion.h 2008-09-01 11:09:14 UTC (rev 1942) @@ -7,7 +7,7 @@ #define FTM_VERSION 2.4 #define FTM_VERSION_STRING "2.4" -#define FTM_VERSION_DATE "08/2008" +#define FTM_VERSION_DATE "09/2008" #define FTM_VERSION_FULL 2.4.0 BETA #define FTM_VERSION_FULL_STRING "2.4.0 BETA" -#define FTM_VERSION_FULL_DATE "2.4.0 BETA 08/2008" +#define FTM_VERSION_FULL_DATE "2.4.0 BETA 09/2008" Modified: trunk/ftm/ftmlib/fts.h =================================================================== --- trunk/ftm/ftmlib/fts.h 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/ftmlib/fts.h 2008-09-01 11:09:14 UTC (rev 1942) @@ -54,6 +54,7 @@ #include "expression.h" /* misc */ +#define fts_get_time ftmrte_get_time #define fts_audio_get_sr() (ftmrte_audio_get_sr()) #define fts_audio_get_vs() (ftmrte_audio_get_vs()) Modified: trunk/ftm/ftmlib/timebase.h =================================================================== --- trunk/ftm/ftmlib/timebase.h 2008-08-31 16:57:03 UTC (rev 1941) +++ trunk/ftm/ftmlib/timebase.h 2008-09-01 11:09:14 UTC (rev 1942) @@ -23,16 +23,6 @@ #ifndef _FTS_TIMEBASE_H_ #define _FTS_TIMEBASE_H_ -/** -* Get logical time in milliseconds - * - * @return logical time in msecs - * - * @ingroup fts_time - */ - -#define fts_get_time ftmrte_get_time - /************************************************************************************ * * FTS clocks This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-01 11:14:53
|
Revision: 1943 http://ftm.svn.sourceforge.net/ftm/?rev=1943&view=rev Author: nschnell Date: 2008-09-01 11:15:01 +0000 (Mon, 01 Sep 2008) Log Message: ----------- - abandoned FTM components directory (Xcode projects now require "ftm/../components") - deleted .cvsingore files (to be replaced by svn:ignore properties) Removed Paths: ------------- trunk/ftm/build/max/osx-macho/.cvsignore trunk/ftm/build/max5/osx-macho/.cvsignore trunk/ftm/components/ Deleted: trunk/ftm/build/max/osx-macho/.cvsignore =================================================================== --- trunk/ftm/build/max/osx-macho/.cvsignore 2008-09-01 11:09:14 UTC (rev 1942) +++ trunk/ftm/build/max/osx-macho/.cvsignore 2008-09-01 11:15:01 UTC (rev 1943) @@ -1 +0,0 @@ -build Deleted: trunk/ftm/build/max5/osx-macho/.cvsignore =================================================================== --- trunk/ftm/build/max5/osx-macho/.cvsignore 2008-09-01 11:09:14 UTC (rev 1942) +++ trunk/ftm/build/max5/osx-macho/.cvsignore 2008-09-01 11:15:01 UTC (rev 1943) @@ -1 +0,0 @@ -build This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-01 11:27:16
|
Revision: 1944 http://ftm.svn.sourceforge.net/ftm/?rev=1944&view=rev Author: nschnell Date: 2008-09-01 11:27:19 +0000 (Mon, 01 Sep 2008) Log Message: ----------- added svn:ignore properties for Xcode build directories and user project files Property Changed: ---------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/ trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj/ trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj/ trunk/ftm/build/pd/xcode/ftmexternals.xcodeproj/ trunk/ftm/build/pd/xcode/ftmlib.xcodeproj/ trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/ trunk/ftm/sdk/max/build-osx/examples.xcodeproj/ Property changes on: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/build/pd/xcode/ftmexternals.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/build/pd/xcode/ftmlib.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* Property changes on: trunk/ftm/sdk/max/build-osx/examples.xcodeproj ___________________________________________________________________ Added: svn:ignore + *.pbxuser *.mode* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-01 11:39:09
|
Revision: 1945 http://ftm.svn.sourceforge.net/ftm/?rev=1945&view=rev Author: nschnell Date: 2008-09-01 11:39:19 +0000 (Mon, 01 Sep 2008) Log Message: ----------- corrected svn:ingnore properties Property Changed: ---------------- trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj/ trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj/ trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj/ trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj/ trunk/ftm/build/pd/xcode/ftmexternals.xcodeproj/ trunk/ftm/build/pd/xcode/ftmlib.xcodeproj/ trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj/ trunk/ftm/sdk/max/build-osx/examples.xcodeproj/ Property changes on: trunk/ftm/build/max/osx-macho/ftmexternals.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max/osx-macho/ftmlib.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max5/osx-macho/ftmexternals.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/build/max5/osx-macho/ftmlib.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/build/pd/xcode/ftmexternals.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/build/pd/xcode/ftmlib.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/gui/Juce/examples/osx-application/juce_application.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* Property changes on: trunk/ftm/sdk/max/build-osx/examples.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode* + *.pbxuser *.mode* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-01 16:48:35
|
Revision: 1950 http://ftm.svn.sourceforge.net/ftm/?rev=1950&view=rev Author: nschnell Date: 2008-09-01 16:48:45 +0000 (Mon, 01 Sep 2008) Log Message: ----------- - abandoned obsolete maxext_setup_failed - removed unused FTM system methods for ftmlight Modified Paths: -------------- trunk/ftm/externals/ftm.value.c trunk/ftm/externals/max/ftm.mess.c trunk/ftm/externals/max/ftm.object.c trunk/ftm/ftmlib/max/ftmexternals.h trunk/ftm/ftmlib/max/maxext.c Modified: trunk/ftm/externals/ftm.value.c =================================================================== --- trunk/ftm/externals/ftm.value.c 2008-09-01 16:34:49 UTC (rev 1949) +++ trunk/ftm/externals/ftm.value.c 2008-09-01 16:48:45 UTC (rev 1950) @@ -108,8 +108,6 @@ */ FTMEXT_HANDLER_OPEN(value) { - ftmvalue_t *self = (ftmvalue_t *)FTMEXT_GET_EXT(); - FTMEXT_HANDLER_RETURN; } Modified: trunk/ftm/externals/max/ftm.mess.c =================================================================== --- trunk/ftm/externals/max/ftm.mess.c 2008-09-01 16:34:49 UTC (rev 1949) +++ trunk/ftm/externals/max/ftm.mess.c 2008-09-01 16:48:45 UTC (rev 1950) @@ -3460,8 +3460,6 @@ XQT_InitializeQTML(0); #endif } - else - maxext_setup_failed(); return 0; } Modified: trunk/ftm/externals/max/ftm.object.c =================================================================== --- trunk/ftm/externals/max/ftm.object.c 2008-09-01 16:34:49 UTC (rev 1949) +++ trunk/ftm/externals/max/ftm.object.c 2008-09-01 16:48:45 UTC (rev 1950) @@ -3012,8 +3012,6 @@ XQT_InitializeQTML(0); #endif } - else - maxext_setup_failed(); return 0; } Modified: trunk/ftm/ftmlib/max/ftmexternals.h =================================================================== --- trunk/ftm/ftmlib/max/ftmexternals.h 2008-09-01 16:34:49 UTC (rev 1949) +++ trunk/ftm/ftmlib/max/ftmexternals.h 2008-09-01 16:48:45 UTC (rev 1950) @@ -27,48 +27,36 @@ * FTM Max/MSP external class definition * */ - /* Max/MSP specific functions (defined in maxext.c) */ -FTS_API void maxext_setup_failed(void); +FTS_API void mexext_class_declare_standard_methods(ftmext_class_t *cl, int raw); FTS_API void maxext_restore_ftm(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); FTS_API void maxext_restore_scope(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); FTS_API void maxext_restore_absargs(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); FTS_API void maxext_restore_object(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); FTS_API void maxext_restore_object_message(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); -FTS_API void maxext_info(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at); -FTS_API void maxext_save(ftmext_t *ext, void *binbuf); -FTS_API void maxext_assist(ftmext_t *self, void *box, long msg, long arg, char *dst); -FTS_API void maxext_enable(ftmext_t *self, int enable); FTS_API void maxext_redefine(ftmext_t *ext); +FTS_API void maxext_assist(ftmext_t *self, void *box, long msg, long arg, char *dst); #ifndef DOXYGEN_DOC -#define FTMEXT_CLASS_RAW(pp, p, t, n) int main (void) { ftmext_class_t *_c = NULL; \ -if (!ftmlib_init(FTM_VERSION_MAJOR, FTM_VERSION_MINOR)) { maxext_setup_failed(); goto _ftmext_exit_label; } \ +#define FTMEXT_CLASS_HEADER(pp, p, t, n, r) int main (void) { ftmext_class_t *_c = NULL; int _raw = r; \ +if (!ftmlib_init(FTM_VERSION_MAJOR, FTM_VERSION_MINOR)) goto _ftmext_exit_label; \ _cn = fts_new_symbol(n); _c = ftmext_class_new(_cn); \ setup((t_messlist **) &(((_c))->handle), (method) (_FTMEXT_GEN_METHOD_NAME(p, module_init)), (method) (_FTMEXT_GEN_METHOD_NAME(p, module_delete)), (short) sizeof(t), 0, A_GIMME, 0); \ - addmess((method)maxext_restore_ftm, maxext_str_restore_ftm, A_GIMME, 0); \ - addmess((method)maxext_restore_scope, maxext_str_restore_scope, A_GIMME, 0); \ - addmess((method)maxext_restore_absargs, maxext_str_restore_absargs, A_GIMME, 0); \ - addmess((method)maxext_restore_object, maxext_str_restore_object, A_GIMME, 0); \ - addmess((method)maxext_restore_object_message, maxext_str_restore_object_message, A_GIMME, 0); \ - addmess((method)maxext_info, "#info", A_GIMME, 0); \ - addmess((method)maxext_info, "doc", A_GIMME, 0); \ - addmess((method)maxext_save, "save", A_CANT, 0); - + #define FTMEXT_CLASS(pp, p, t) _FTMEXT_CLASS(pp, p, t, #pp "." #p) #define FTMEXT_CLASS_NAMED(pp, p, t, n) _FTMEXT_CLASS(pp, p, t, n) #define FTMEXT_CLASS_DSP(p) do { dsp_initclass(); ftmext_class_dsp(_c); addmess((method)_FTMEXT_GEN_METHOD_NAME(p, _dsp), "dsp", A_CANT, 0); } while(0) #define FTMEXT_CLASS_DESCR(p, b, f) do { ftmext_class_descr(_c, (b), (f)); } while(0) -#define FTMEXT_CLASS_RETURN _ftmext_exit_label: return 1; } #endif -#define _FTMEXT_CLASS(pp, p, t, n) FTMEXT_CLASS_RAW(pp, p, t, n) \ - addmess((method)maxext_redefine, ftm_str_redefine, A_CANT, 0); \ - addmess((method)maxext_assist, "assist", A_CANT, 0); \ - addmess((method)maxext_enable, "enable", A_CANT, 0); +#define FTMEXT_CLASS_RAW(pp, p, t, n) FTMEXT_CLASS_HEADER(pp, p, t, n, 1) +#define _FTMEXT_CLASS(pp, p, t, n) FTMEXT_CLASS_HEADER(pp, p, t, n, 0) +#define FTMEXT_CLASS_RETURN mexext_class_declare_standard_methods(_c, _raw); \ + _ftmext_exit_label: return 1; } + /**************************************************************************** * * FTM Max/MSP external external constructor/deconstructor definition Modified: trunk/ftm/ftmlib/max/maxext.c =================================================================== --- trunk/ftm/ftmlib/max/maxext.c 2008-09-01 16:34:49 UTC (rev 1949) +++ trunk/ftm/ftmlib/max/maxext.c 2008-09-01 16:48:45 UTC (rev 1950) @@ -661,15 +661,6 @@ ftmext_loader_restore_object_message(loader, ac, at); } -#else - -/* declare empty function */ -void maxext_restore_ftm(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) {} -void maxext_restore_scope(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) {} -void maxext_restore_absargs(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) {} -void maxext_restore_object(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) {} -void maxext_restore_object_message(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) {} - #endif /*********************************************************************** @@ -781,8 +772,8 @@ * FTM Max/MSP external methods * */ -void -maxext_save(ftmext_t *ext, void *binbuf) +static void +save_method(ftmext_t *ext, void *binbuf) { int ac = ext->head.n_args; fts_atom_t *at = ext->head.args; @@ -825,8 +816,8 @@ #endif } -void -maxext_info(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) +static void +post_doc(ftmext_t *ext, fts_symbol_t s, short ac, fts_atom_t *at) { ftmext_class_t *cl = ftmext_get_class(ext); @@ -946,47 +937,36 @@ } } -void -maxext_enable(ftmext_t *self, int enable) +static void +enable_method(ftmext_t *self, int enable) { self->head.enable = (enable != 0); } -/******************************************************** - * - * FTM Max/MSP external class declaration - * - */ -static void *null_class = NULL; - -static void * -null_new(fts_symbol_t s, short ac, fts_atom_t *at) +void +mexext_class_declare_standard_methods(ftmext_class_t *cl, int raw) { - t_object *ext = newobject(null_class); +#ifndef FTM_LIGHT + addmess((method)maxext_restore_ftm, maxext_str_restore_ftm, A_GIMME, 0); + addmess((method)maxext_restore_scope, maxext_str_restore_scope, A_GIMME, 0); + addmess((method)maxext_restore_absargs, maxext_str_restore_absargs, A_GIMME, 0); + addmess((method)maxext_restore_object, maxext_str_restore_object, A_GIMME, 0); + addmess((method)maxext_restore_object_message, maxext_str_restore_object_message, A_GIMME, 0); + addmess((method)save_method, "save", A_CANT, 0); +#endif - /* error("cannot create %s object", fts_symbol_name(s)); */ - gensym("#T")->s_thing = (void *)ext; + addmess((method)post_doc, "doc", A_GIMME, 0); - return NULL; + if(raw != 0) + { +#ifndef FTM_LIGHT + addmess((method)maxext_redefine, ftm_str_redefine, A_CANT, 0); +#endif + addmess((method)maxext_assist, "assist", A_CANT, 0); + addmess((method)enable_method, "enable", A_CANT, 0); + } } -static void -null_anything(t_object *o, fts_symbol_t _s, int _n, fts_atom_t *_a) -{ -} - -static void -null_free(t_object *o) -{ -} - -void -maxext_setup_failed(void) -{ - setup((t_messlist **)&null_class, (method)null_new, (method)null_free, (short)sizeof(t_object), 0, A_GIMME, 0); - addmess((method)null_anything, "anything", A_GIMME, 0); -} - /********************************************************************** * * FTM Max/MSP external send outlet This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zmo...@us...> - 2008-09-03 11:52:22
|
Revision: 1956 http://ftm.svn.sourceforge.net/ftm/?rev=1956&view=rev Author: zmoelnig Date: 2008-09-03 11:52:32 +0000 (Wed, 03 Sep 2008) Log Message: ----------- hmm, starting to catch up with all those changes... Modified Paths: -------------- trunk/ftm/build/pd/cmake/CMakeLists.txt trunk/ftm/ftmlib/pd/ftmexternals.h trunk/ftm/ftmlib/pd/pddump.c trunk/ftm/ftmlib/pd/pdext.c trunk/ftm/ftmlib/pd/pdpat.c Modified: trunk/ftm/build/pd/cmake/CMakeLists.txt =================================================================== --- trunk/ftm/build/pd/cmake/CMakeLists.txt 2008-09-03 00:32:10 UTC (rev 1955) +++ trunk/ftm/build/pd/cmake/CMakeLists.txt 2008-09-03 11:52:32 UTC (rev 1956) @@ -13,7 +13,6 @@ ../../../ftmlib/audiofile.c ../../../ftmlib/bytestream.c ../../../ftmlib/class.c - ../../../ftmlib/client.c ../../../ftmlib/cubic.c ../../../ftmlib/dumper.c ../../../ftmlib/expression.c @@ -28,13 +27,11 @@ ../../../ftmlib/function.c ../../../ftmlib/functions.c ../../../ftmlib/hashtable.c - ../../../ftmlib/list.c ../../../ftmlib/mem.c ../../../ftmlib/message.c ../../../ftmlib/midievent.c ../../../ftmlib/midifile.c ../../../ftmlib/object.c - ../../../ftmlib/patcher.c ../../../ftmlib/post.c ../../../ftmlib/random.c ../../../ftmlib/seqsdif.c @@ -42,14 +39,10 @@ ../../../ftmlib/status.c ../../../ftmlib/symbol.c ../../../ftmlib/timebase.c - ../../../ftmlib/tuple.c - ../../../ftmlib/variable.c - ../../../ftmlib/vec_fft.c ) + ../../../ftmlib/tuple.c ) SET(SOURCES_CLASSES_C ../../../ftmlib/classes/bpf.c - ../../../ftmlib/classes/bpfeditor.c - ../../../ftmlib/classes/data.c ../../../ftmlib/classes/datafiles.c ../../../ftmlib/classes/dict.c ../../../ftmlib/classes/event.c @@ -58,15 +51,9 @@ ../../../ftmlib/classes/fvec.c ../../../ftmlib/classes/marker.c ../../../ftmlib/classes/mat.c - ../../../ftmlib/classes/mateditor.c - ../../../ftmlib/classes/note.c ../../../ftmlib/classes/seqmidi.c ../../../ftmlib/classes/sequence.c - ../../../ftmlib/classes/seqtxt.c - ../../../ftmlib/classes/tabeditor.c - ../../../ftmlib/classes/track.c - ../../../ftmlib/classes/trackeditor.c - ../../../ftmlib/classes/tree.c ) + ../../../ftmlib/classes/seqtxt.c ) # The Puredata dependent source files (including the headers ftmexternals.h and ftmtypes.h) SET(SOURCES_PD_C Modified: trunk/ftm/ftmlib/pd/ftmexternals.h =================================================================== --- trunk/ftm/ftmlib/pd/ftmexternals.h 2008-09-03 00:32:10 UTC (rev 1955) +++ trunk/ftm/ftmlib/pd/ftmexternals.h 2008-09-03 11:52:32 UTC (rev 1956) @@ -381,8 +381,8 @@ /* Puredata specific functions (defined in maxpat.c) */ PDEXT_API t_canvas *pdpat_get_toplevel(t_canvas *pat); PDEXT_API int pdpat_get_depth(t_canvas *pat); -PDEXT_API fts_patcher_t *pdpat_get_scope(t_canvas *pat); -PDEXT_API fts_patcher_t *pdpat_get_scope_by_depth(t_canvas *pat, int depth); +PDEXT_API fts_scope_t *pdpat_get_scope(t_canvas *pat); +PDEXT_API fts_scope_t *pdpat_get_scope_by_depth(t_canvas *pat, int depth); PDEXT_API char *pdpat_get_description(t_canvas *pat); PDEXT_API void pdpat_unresolved_scope_add(t_object *ext, t_canvas *pat); PDEXT_API int pdpat_has_unresolved(void); Modified: trunk/ftm/ftmlib/pd/pddump.c =================================================================== --- trunk/ftm/ftmlib/pd/pddump.c 2008-09-03 00:32:10 UTC (rev 1955) +++ trunk/ftm/ftmlib/pd/pddump.c 2008-09-03 11:52:32 UTC (rev 1956) @@ -68,9 +68,7 @@ typedef t_canvas t_patcher; /* should be locally substituted? */ -typedef fts_llist_t fts_list_t; - /******************************************************** * * FTM Pd external save/restore @@ -110,7 +108,7 @@ ftmext_loader_t *loader = ftmext_get_loader(ext); if(sym == fts_s_begin) - ftmext_loader_push_scope(loader); + ftmext_loader_push_scope(loader, NULL); else if(sym == fts_s_end) ftmext_loader_pop_scope(loader); else @@ -263,7 +261,7 @@ pddump_save_begin(ftmext_t *ext, void *binbuf) { ftmext_dumper_t *dumper = ftmext_get_dumper(ext); - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); if(binbuf != ftmext_dumper_get_data(dumper)) dumper_clean = 0; /* new binbuf --> reset now */ Modified: trunk/ftm/ftmlib/pd/pdext.c =================================================================== --- trunk/ftm/ftmlib/pd/pdext.c 2008-09-03 00:32:10 UTC (rev 1955) +++ trunk/ftm/ftmlib/pd/pdext.c 2008-09-03 11:52:32 UTC (rev 1956) @@ -115,7 +115,6 @@ #define MAX_OUTLETS 1024 typedef t_canvas t_patcher; /* should be locally substituted? */ -typedef fts_llist_t fts_list_t; typedef struct { t_method p_floatmethod; @@ -241,10 +240,10 @@ ext->head.n_parentargs = 0; ext->head.parentargs = NULL; } -static fts_patcher_t* +static fts_scope_t* pdext_init_scope(ftmext_t *ext, t_patcher *patcher, short *rac, fts_atom_t **rat) { - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; int ac = *rac; fts_atom_t *at = *rat; int depth = pdpat_get_depth(patcher); @@ -337,7 +336,7 @@ void pdext_do_init_raw(ftmext_t *ext, ftmext_class_t *cl, t_patcher *patcher, short *rac, fts_atom_t **rat) { - fts_patcher_t *scope = 0; + fts_scope_t *scope = 0; pdext_arguments_expand(rac, rat); @@ -1007,7 +1006,7 @@ void pdext_update_scope(ftmext_t *ext) { - fts_patcher_t *scope = ftmext_get_scope(ext); + fts_scope_t *scope = ftmext_get_scope(ext); if(scope == NULL) { @@ -1332,7 +1331,7 @@ * FTM Pd external API * */ -fts_patcher_t * +fts_scope_t * ftmrte_external_get_scope(ftmrte_external_t *e) { ftmext_t *ext = (ftmext_t *)e; Modified: trunk/ftm/ftmlib/pd/pdpat.c =================================================================== --- trunk/ftm/ftmlib/pd/pdpat.c 2008-09-03 00:32:10 UTC (rev 1955) +++ trunk/ftm/ftmlib/pd/pdpat.c 2008-09-03 11:52:32 UTC (rev 1956) @@ -95,10 +95,10 @@ return depth; } -static fts_patcher_t * +static fts_scope_t * scope_register(t_patcher *toplevel) { - fts_patcher_t *scope = (fts_patcher_t *)fts_object_create(patcher_class, 0, 0); + fts_scope_t *scope = (fts_scope_t *)fts_object_create(fts_scope_class, 0, 0); fts_atom_t k, v; fts_object_refer((fts_object_t *)scope); @@ -110,7 +110,7 @@ return scope; } -static fts_patcher_t * +static fts_scope_t * scope_get(t_patcher *toplevel) { fts_atom_t k, v; @@ -118,7 +118,7 @@ fts_set_pointer(&k, (void*)toplevel); if(fts_hashtable_get(pdpat_scope_hash, &k, &v)) - return (fts_patcher_t *)fts_get_object(&v); + return (fts_scope_t *)fts_get_object(&v); else return scope_register(toplevel); } @@ -141,11 +141,11 @@ return depth; } -fts_patcher_t * +fts_scope_t * pdpat_get_scope(t_patcher *pat) { t_patcher *toplevel = pat; - fts_patcher_t *scope = NULL; + fts_scope_t *scope = NULL; toplevel_get(&toplevel); @@ -155,7 +155,7 @@ return scope; } -fts_patcher_t * +fts_scope_t * pdpat_get_scope_by_depth(t_patcher *pat, int depth) { t_patcher *p = pat; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nsc...@us...> - 2008-09-05 08:41:37
|
Revision: 1967 http://ftm.svn.sourceforge.net/ftm/?rev=1967&view=rev Author: nschnell Date: 2008-09-05 08:41:47 +0000 (Fri, 05 Sep 2008) Log Message: ----------- no changes Modified Paths: -------------- trunk/ftm/ftmlib/ftmversion.h trunk/ftm/ftmlib/parser.h trunk/ftm/patches/max/tutorials/FTM.tutorial.8-14.pat Modified: trunk/ftm/ftmlib/ftmversion.h =================================================================== --- trunk/ftm/ftmlib/ftmversion.h 2008-09-04 17:34:09 UTC (rev 1966) +++ trunk/ftm/ftmlib/ftmversion.h 2008-09-05 08:41:47 UTC (rev 1967) @@ -1,13 +1,13 @@ /* generated automatically from xcode project ftmlib (target = ftmlib) by ./writeversion.sh */ #define FTM_VERSION_MAJOR 2 -#define FTM_VERSION_MINOR 4 +#define FTM_VERSION_MINOR 5 #define FTM_VERSION_RELEASE 0 #define FTM_VERSION_BETA "BETA" -#define FTM_VERSION 2.4 -#define FTM_VERSION_STRING "2.4" +#define FTM_VERSION 2.5 +#define FTM_VERSION_STRING "2.5" #define FTM_VERSION_DATE "09/2008" -#define FTM_VERSION_FULL 2.4.0 BETA -#define FTM_VERSION_FULL_STRING "2.4.0 BETA" -#define FTM_VERSION_FULL_DATE "2.4.0 BETA 09/2008" +#define FTM_VERSION_FULL 2.5.0 BETA +#define FTM_VERSION_FULL_STRING "2.5.0 BETA" +#define FTM_VERSION_FULL_DATE "2.5.0 BETA 09/2008" Modified: trunk/ftm/ftmlib/parser.h =================================================================== --- trunk/ftm/ftmlib/parser.h 2008-09-04 17:34:09 UTC (rev 1966) +++ trunk/ftm/ftmlib/parser.h 2008-09-05 08:41:47 UTC (rev 1967) @@ -142,7 +142,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 61 "/Users/schnell/Development/ftm-and-co/ftm/build/max/osx-macho/../../../ftmlib/parser.y" +#line 61 "/Users/schnell/Development/ftm-and-co/ftm/build/max5/osx-macho/../../../ftmlib/parser.y" { fts_atom_t a; fts_parsetree_t *n; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-09-05 13:56:21
|
Revision: 1971 http://ftm.svn.sourceforge.net/ftm/?rev=1971&view=rev Author: borghesi Date: 2008-09-05 13:56:29 +0000 (Fri, 05 Sep 2008) Log Message: ----------- ftm.editor: ScoreEditor, rangeMode message replaced by "view bounds content" and "view bounds default" Modified Paths: -------------- trunk/ftm/externals/max/ftm.editor.cpp trunk/ftm/ftmlib/object.h trunk/ftm/ftmlib/predefsymbols.h trunk/ftm/gui/Juce/common/EditorContainer.cpp trunk/ftm/gui/Juce/common/EditorContainer.h trunk/ftm/gui/Juce/common/ImtrEditor.h trunk/ftm/gui/Juce/common/ScoreEditor.cpp trunk/ftm/patches/max/help/ftm.editor.help Modified: trunk/ftm/externals/max/ftm.editor.cpp =================================================================== --- trunk/ftm/externals/max/ftm.editor.cpp 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/externals/max/ftm.editor.cpp 2008-09-05 13:56:29 UTC (rev 1971) @@ -805,11 +805,6 @@ if(ac == 1 && fts_is_number(at)) editorContainer->setViewStep(index, fts_get_number_float(at)); } - else if(prop == fts_s_rangemode) - { - if(ac == 1 && fts_is_symbol(at)) - editorContainer->setViewRangeMode(index, JUCE_NAMESPACE::String(fts_symbol_name(fts_get_symbol(at)))); - } if(prop == fts_s_min) { if(ac > 0 && fts_is_number(at)) @@ -831,6 +826,15 @@ { if(ac == 2 && fts_is_number(at) && fts_is_number(at+1)) editorContainer->setViewBounds(index, fts_get_number_float(at), fts_get_number_float(at+1)); + else + if(ac == 1 && fts_is_symbol(at)) + { + fts_symbol_t mode = fts_get_symbol(at); + if(mode == fts_s_content) + editorContainer->setViewBoundsToContent(index); + else if(mode == fts_s_default) + editorContainer->setViewBoundsDefault(index); + } } else if(prop == fts_s_center) { Modified: trunk/ftm/ftmlib/object.h =================================================================== --- trunk/ftm/ftmlib/object.h 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/ftmlib/object.h 2008-09-05 13:56:29 UTC (rev 1971) @@ -30,9 +30,7 @@ #ifndef _FTS_OBJECT_H_ #define _FTS_OBJECT_H_ -#ifdef DEBUG -#define DEBUG_OBJECT_RELEASE 1 -#endif +#undef DEBUG_OBJECT_RELEASE #define FTS_OBJECT_BITS_STATUS 2 #define FTS_OBJECT_BITS_ID (32 - FTS_OBJECT_BITS_STATUS) Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-09-05 13:56:29 UTC (rev 1971) @@ -302,6 +302,7 @@ PREDEF_SYMBOL( fts_s_bounds, "bounds"); PREDEF_SYMBOL( fts_s_center, "center"); PREDEF_SYMBOL( fts_s_colormode, "colormode"); +PREDEF_SYMBOL( fts_s_content, "content"); PREDEF_SYMBOL( fts_s_cursor, "cursor"); PREDEF_SYMBOL( fts_s_depth, "depth"); PREDEF_SYMBOL( fts_s_domain, "domain"); Modified: trunk/ftm/gui/Juce/common/EditorContainer.cpp =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/gui/Juce/common/EditorContainer.cpp 2008-09-05 13:56:29 UTC (rev 1971) @@ -1546,60 +1546,75 @@ } void -EditorContainer::setViewRangeMode(int index, JUCE_EDITOR_NAMESPACE::String mode) +EditorContainer::setViewMin(int index, float min) { if(index == -1 || index >= editors.size()) { int i; for(i = 0; i < editors.size(); i++) - editors[i]->setRangeMode(mode); + editors[i]->setViewMin(min); } else - editors[index]->setRangeMode(mode); + editors[index]->setViewMin(min); containerRefresh(); } - void -EditorContainer::setViewMin(int index, float min) +EditorContainer::setViewMax(int index, float max) { if(index == -1 || index >= editors.size()) { int i; for(i = 0; i < editors.size(); i++) - editors[i]->setViewMin(min); + editors[i]->setViewMax(max); } else - editors[index]->setViewMin(min); - + editors[index]->setViewMax(max); + containerRefresh(); } void -EditorContainer::setViewMax(int index, float max) +EditorContainer::setViewBounds(int index, float min, float max) { if(index == -1 || index >= editors.size()) { int i; for(i = 0; i < editors.size(); i++) - editors[i]->setViewMax(max); + editors[i]->setViewBounds(min, max); } else - editors[index]->setViewMax(max); + editors[index]->setViewBounds(min, max); containerRefresh(); } + void -EditorContainer::setViewBounds(int index, float min, float max) +EditorContainer::setViewBoundsToContent(int index) { if(index == -1 || index >= editors.size()) { int i; for(i = 0; i < editors.size(); i++) - editors[i]->setViewBounds(min, max); + editors[i]->setViewBoundsToContent(); } else - editors[index]->setViewBounds(min, max); + editors[index]->setViewBoundsToContent(); + + containerRefresh(); +} +void +EditorContainer::setViewBoundsDefault(int index) +{ + if(index == -1 || index >= editors.size()) + { + int i; + for(i = 0; i < editors.size(); i++) + editors[i]->setViewBoundsDefault(); + } + else + editors[index]->setViewBoundsDefault(); + containerRefresh(); } Modified: trunk/ftm/gui/Juce/common/EditorContainer.h =================================================================== --- trunk/ftm/gui/Juce/common/EditorContainer.h 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/gui/Juce/common/EditorContainer.h 2008-09-05 13:56:29 UTC (rev 1971) @@ -558,6 +558,18 @@ */ void setViewBounds(int index, float min, float max); /** + * @brief sets the i-th view's values range bounds to min/max of data content + * @param index index of the view + * @ingroup EditorContainer + */ + void setViewBoundsToContent(int index); + /** + * @brief sets the i-th view's values range bounds to default values + * @param index index of the view + * @ingroup EditorContainer + */ + void setViewBoundsDefault(int index); + /** * @brief sets the i-th view's values center * @param index index of the view * @param center 'values range' center @@ -581,14 +593,6 @@ */ void setViewTableVisible(int index, bool vis); - /** - * @brief set range mode (used by Midi editor) - * @param index index of the view - * @param rangeMode the range mode - * @ingroup EditorContainer - */ - void setViewRangeMode(int index, JUCE_EDITOR_NAMESPACE::String rangeMode); - /** @} View Properties */ /** @name Tabs Modified: trunk/ftm/gui/Juce/common/ImtrEditor.h =================================================================== --- trunk/ftm/gui/Juce/common/ImtrEditor.h 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/gui/Juce/common/ImtrEditor.h 2008-09-05 13:56:29 UTC (rev 1971) @@ -143,6 +143,16 @@ */ virtual void setViewBounds(float vmin, float vmax){}; /** + * @brief set the bounds for the values displayed by the editor, to min-max of the content + * @ingroup ImtrEditor + */ + virtual void setViewBoundsToContent(){}; + /** + * @brief set the bounds for the values displayed by the editor to default + * @ingroup ImtrEditor + */ + virtual void setViewBoundsDefault(){}; + /** * @brief gets the bounds for the values displayed by the editor * @param vmin get the minimum * @param vmax get the maximum @@ -188,18 +198,6 @@ */ virtual float getStep(){return 0.0f;}; /** - * @brief set the range mode - * @param mode range mode - * @ingroup ImtrEditor - */ - virtual void setRangeMode(JUCE_EDITOR_NAMESPACE::String mode){}; - /** - * @brief returns the range mode - * @return range mode - * @ingroup ImtrEditor - */ - virtual JUCE_EDITOR_NAMESPACE::String getRangeMode(){return JUCE_EDITOR_NAMESPACE::String::empty;}; - /** * @brief show/hide the table view (used only by Bpf and Markers editors) * @return vis whether to show or hide the table view * @ingroup ImtrEditor Modified: trunk/ftm/gui/Juce/common/ScoreEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-09-05 13:56:29 UTC (rev 1971) @@ -1945,28 +1945,7 @@ updateBackgroundOffscreens(); objectRefresh(); } - - void setRangeMode(JUCE_EDITOR_NAMESPACE::String mode) - { - if(mode == JUCE_EDITOR_NAMESPACE::String("whole")) - range_mode = whole_range; - else - if(mode == JUCE_EDITOR_NAMESPACE::String("used")) - range_mode = used_range; - findPitchRange(); - updateBackgroundOffscreens(); - objectRefresh(); - } - - JUCE_EDITOR_NAMESPACE::String getRangeMode() - { - if(range_mode == whole_range) - return JUCE_EDITOR_NAMESPACE::String("whole"); - else - return JUCE_EDITOR_NAMESPACE::String("used"); - } - void setBackgroundColor(JUCE_EDITOR_NAMESPACE::Colour bcolor) { backcolor = bcolor; @@ -2240,6 +2219,28 @@ moving_dx = moving_dy = 0; objectRefresh(); } + + void getViewBounds(float *vmin, float *vmax) + { + *vmin = getInvY(getHeight()); + *vmax = getInvY(0); + } + + void setViewBoundsToContent() + { + range_mode = used_range; + findPitchRange(); + updateBackgroundOffscreens(); + objectRefresh(); + } + + void setViewBoundsDefault() + { + range_mode = whole_range; + findPitchRange(); + updateBackgroundOffscreens(); + objectRefresh(); + } /************************ Coordinates conversion ***********************/ @@ -2338,10 +2339,46 @@ } } + double getInvY(float y) + { + if(!container->isVertical()) + { + int temp; + if(shape == staves_shape) + { + temp = (STAVES_BOTTOM-9-y - getPitchTransp())/4; + int rest = (STAVES_BOTTOM-9-y - getPitchTransp()) - temp*4; + int q = temp/7; + int r = temp - q*7; + temp = q*12 + getIntervallFromRest(r, rest); + } + else + { + int dy = (PIANO_BOTTOM - PIANO_TOP)/127.0f; + temp = v_max - (y - PIANO_TOP)/dy; + } + + return temp; + } + else + { + float dy = (getHeight()/container->getHLength()); + return (y/dy)/container->getHZoom() - container->getHTransposition(); + } + } + double editorGetInvY(float y) { + int temp = getInvY(y); if(!container->isVertical()) { + if(temp < v_min) temp = v_min; + else if(temp > v_max) temp = v_max; + } + return temp; + + /*if(!container->isVertical()) + { int temp; if(shape == staves_shape) { @@ -2365,7 +2402,7 @@ { float dy = (getHeight()/container->getHLength()); return (y/dy)/container->getHZoom() - container->getHTransposition(); - } + }*/ } bool haveInfoPanel() {return true;} JUCE_EDITOR_NAMESPACE::Image *getInfoImage() Modified: trunk/ftm/patches/max/help/ftm.editor.help =================================================================== --- trunk/ftm/patches/max/help/ftm.editor.help 2008-09-05 13:21:21 UTC (rev 1970) +++ trunk/ftm/patches/max/help/ftm.editor.help 2008-09-05 13:56:29 UTC (rev 1971) @@ -8,7 +8,7 @@ #P window setfont "Sans Serif" 9.; #P comment 11 12 50 196617 Info panel; #P user ftm.mess 8 69 81 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; -#T _#ftm version 2 3; +#T _#ftm version 2 4; #T _#scope begin; #T _#absargs $0_ $1_ $2_ $3_ $4_ $5_ $6_ $7_ $8_ $9_; #T _#line "_ruler visible $1"; @@ -40,7 +40,6 @@ #T _#mess 1 row 0 1 0.2 colognole 0 0; #T _#obj 2 bpf; #T _#mess 2 set 0. 0. 195. 0.697674 440. 0.674419 585. 0.44186 810. 0.511628 1060. 0.581395 1190. 0.511628; -#T _#mess 2 editor zoom 0.2; #T _#mess 1 row 1 0 _#2 0 0 0; #T _#obj 3 fmat; #T _#mess 3 size 10 10; @@ -76,10 +75,10 @@ #P pop; #P newobj 362 844 167 196622 p Info Properties; #B color 14; -#P user ftm.mess 135 339 119 51 3 9 255 255 255 0 0 0 4 2 0 0 0 --> 0; +#P user ftm.mess 135 339 114 51 3 9 255 255 255 0 0 0 4 2 0 0 0 --> 0; #T _#line "_set $t_score\,"; #T _#line "_view 0 shape staves\,"; -#T _#line "_view 0 rangemode used\,"; +#T _#line "_view 0 bounds content\,"; #T _#line "_infopanel visible 1"; #P user ftm.object 20 340 67 18 3 9 --> 0; #T _#obj 4 track scoob; @@ -382,14 +381,6 @@ #T _#obj 153 sequence number; #T _#mess 153 append 0. 120.; #T _#mess 4 tempo _#153; -#T _#mess 4 save_editor 1; -#T _#mess 4 editor window 752 258 839 517; -#T _#mess 4 editor label ; -#T _#mess 4 editor zoom 0.2; -#T _#mess 4 editor transp 0; -#T _#mess 4 editor view 0; -#T _#mess 4 editor rangemode 0; -#T _#mess 4 editor grid_mode 0; #T _#def 1 "_track scoob" t_score local; #P window setfont "Sans Serif" 12.; #P comment 20 320 161 196620 TRACK of scoob as score; @@ -14436,11 +14427,17 @@ #P pop; #P newobj 364 788 163 196622 p Get Property values; #B color 14; -#N vpatcher 53 365 599 821; +#N vpatcher 547 258 1116 723; #P origin 11 -54; -#P toggle 21 341 23 0; #P window setfont "Sans Serif" 9.; #P window linecount 1; +#P comment 278 349 103 196617 set bounds to default; +#P user ftm.mess 175 350 99 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#T _#line "_view bounds default"; +#P comment 277 333 128 196617 set to contained min/max; +#P user ftm.mess 175 334 101 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#T _#line "_view bounds content"; +#P toggle 21 341 23 0; #P comment 14 325 58 196617 View table; #P user ftm.mess 21 368 81 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view 0 table $1"; @@ -14452,25 +14449,25 @@ #X shadow 0; #X done; #P window linecount 0; -#P comment 255 389 167 196617 \$1 = range (around actual center); -#P user ftm.mess 176 392 75 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#P comment 255 414 162 196617 \$1 = range (around actual center); +#P user ftm.mess 175 414 75 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view range $1"; -#P comment 273 372 123 196617 \$1 = center [$2 = range]; -#P comment 247 353 53 196617 \$1 = max; -#P comment 246 335 110 196617 \$1 = min [$2 = range]; +#P comment 273 398 123 196617 \$1 = center [$2 = range]; +#P comment 247 382 53 196617 \$1 = max; +#P comment 246 366 110 196617 \$1 = min [$2 = range]; #P comment 271 318 96 196617 \$1 = min \$2 = max; -#P user ftm.mess 175 372 94 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#P user ftm.mess 175 398 94 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view center $1 $2"; #P window linecount 1; -#P comment 411 335 104 196617 used by track of fmat; -#P comment 405 165 46 196617 Depth; -#P newex 412 294 40 196617 / 100.; -#P slider 412 183 15 100 0 1; -#P newex 460 293 40 196617 / 100.; -#P slider 461 183 15 100 0 1; -#P user ftm.mess 412 315 89 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#P comment 438 335 104 196617 used by track of fmat; +#P comment 432 165 46 196617 Depth; +#P newex 439 294 40 196617 / 100.; +#P slider 439 183 15 100 0 1; +#P newex 487 293 40 196617 / 100.; +#P slider 488 183 15 100 0 1; +#P user ftm.mess 439 315 89 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view depth $1 $2"; -#P user panel 401 159 120 194; +#P user panel 428 159 120 194; #X brgb 235 252 211; #X frgb 225 246 183; #X border 1; @@ -14480,9 +14477,9 @@ #P comment 175 167 46 196617 Bounds; #P newex 174 297 40 196617 / 100.; #P slider 175 187 15 100 0 1; -#P user ftm.mess 174 335 66 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#P user ftm.mess 175 366 66 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view min $1"; -#P user ftm.mess 174 353 69 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; +#P user ftm.mess 175 382 69 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view max $1"; #P newex 223 296 40 196617 / 100.; #P slider 223 185 15 100 0 1; @@ -14490,7 +14487,7 @@ #P slider 272 186 15 100 0 1; #P user ftm.mess 175 318 95 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 1; #T _#line "_view bounds $1 $2"; -#P user panel 172 161 227 257; +#P user panel 172 159 251 272; #X brgb 235 252 211; #X frgb 225 246 183; #X border 1; @@ -14571,7 +14568,7 @@ #P comment 30 67 14 196617 2; #P comment 30 51 14 196617 1; #P comment 29 35 14 196617 0; -#P user radiogroup 13 33 38 32; +#P user radiogroup 13 33 38 64; #X size 4; #X offset 16; #X inactive 0; @@ -14594,15 +14591,15 @@ #X rounded 0; #X shadow 0; #X done; -#P user panel 2 5 526 416; +#P user panel 2 5 551 429; #X brgb 196 244 118; #X frgb 225 246 183; #X border 1; #X rounded 0; #X shadow 0; #X done; -#P comment 13 424 458 196617 - If message is followed by index \, the message is sent to i-th editor. Elsewhere is sent to all editors; -#P hidden outlet 3 434 15 0; +#P comment 13 437 458 196617 - If message is followed by index \, the message is sent to i-th editor. Elsewhere is sent to all editors; +#P hidden outlet 3 447 15 0; #P hidden connect 49 0 0 0; #P hidden connect 33 0 0 0; #P hidden connect 26 0 0 0; @@ -14614,6 +14611,8 @@ #P hidden connect 38 0 0 0; #P hidden connect 43 0 0 0; #P hidden connect 64 0 0 0; +#P hidden connect 67 0 0 0; +#P hidden connect 69 0 0 0; #P connect 34 0 33 0; #P connect 35 0 33 0; #P connect 7 0 4 0; @@ -14623,14 +14622,14 @@ #P connect 28 1 26 0; #P hidden connect 6 1 4 1; #P connect 45 0 46 0; -#P connect 46 0 44 0; -#P fasten 40 0 43 0 276 315 179 315; #P connect 42 0 38 0; -#P connect 45 0 56 0; -#P connect 46 0 61 0; +#P hidden connect 46 0 44 0; +#P hidden fasten 40 0 43 0 276 315 180 315; +#P hidden connect 45 0 56 0; +#P hidden connect 46 0 61 0; #P connect 14 0 15 0; #P connect 41 0 42 0; -#P connect 40 0 56 1; +#P hidden connect 40 0 56 1; #P connect 40 0 38 1; #P connect 39 0 40 0; #P connect 18 0 19 0; @@ -16093,13 +16092,13 @@ #T _#mess 3794 append 2600. _#3798; #T _#mess 3793 events _#3794; #T _#obj 3799 sequence marker; -#T _#obj 3800 marker label uno cue 1.; +#T _#obj 3800 marker cue 1. label uno; #T _#mess 3799 append 625. _#3800; -#T _#obj 3801 marker label due cue 2.; +#T _#obj 3801 marker cue 2. label due; #T _#mess 3799 append 1480. _#3801; -#T _#obj 3802 marker label tre cue 3.; +#T _#obj 3802 marker cue 3. label tre; #T _#mess 3799 append 2455. _#3802; -#T _#obj 3803 marker label quattro cue 4.; +#T _#obj 3803 marker cue 4. label quattro; #T _#mess 3799 append 3045. _#3803; #T _#obj 3804 marker; #T _#mess 3799 append 4022.182373 _#3804; @@ -16135,8 +16134,6 @@ #P user ftm.object 17 184 29 18 3 9 --> 0; #T _#obj 3813 bpf; #T _#mess 3813 set 0. 0.809524 230. 0.380952 460. 0.095238 690. 0.071429 1405. 0.238095 1605. 0.452381 1815. 0.714286 1975. 0.976191 2148.436768 0.786408 2433.893311 0.563107 2877.102295 0.543689 3068.941895 0.693405 3405.923584 0.732143 3646.625 0.693405 4164.132812 0.801871 5163.043457 0.674036 5836.836914 0.436893; -#T _#mess 3813 editor size 530 150; -#T _#mess 3813 editor zoom 0.2; #T _#def 1 _bpf bpf_3 local; #P user ftm.mess 95 144 59 15 3 9 255 255 255 0 0 0 1 2 0 0 0 --> 0; #T _#line "_set $bpf_1"; @@ -16145,14 +16142,10 @@ #P user ftm.object 17 142 29 18 3 9 --> 0; #T _#obj 3814 bpf; #T _#mess 3814 set 0. 0. 211.302216 0.676692 444.717438 0.586466 798.525818 0.37594 949.891113 0.633333 1198.25708 0.558333 1225. 0.333333 1390. 0.071429 1629.629639 0.291667 1821.35083 0.4 2071.970703 0.63372 2471.576904 0.45574 2783.93457 0.565737 3122.527344 0.322482 3163.21167 0.429088 3346.291504 0.493052 3590.397949 0.514373 4617.678711 0.623644 4912.15 0.336044 4932.98291 0.658291 5539.297852 0.679612 5978.26123 0.660194 6406.772461 0.543689 6918.896484 0.436893 7410.117188 0.330097 8340.3 0.29497; -#T _#mess 3814 editor size 530 150; -#T _#mess 3814 editor zoom 0.2; #T _#def 1 _bpf bpf_1 local; #P user ftm.object 17 163 29 18 3 9 --> 0; #T _#obj 3815 bpf; #T _#mess 3815 set 0. 0. 31.1 0.264493 60.33 0.264493 75.529388 0.492754 91.897987 0.514493 116.918556 0.65942 144.043655 0.583333 192.214111 0. 854.489685 0.317649 2443.118408 0.317649 3779.010742 0.251795 4958.447266 0.286659 5620.375977 0.371882; -#T _#mess 3815 editor size 530 150; -#T _#mess 3815 editor zoom 0.2; #T _#def 1 _bpf bpf_2 local; #T _#scope end; #P user ftm.editor 19 395 727 283; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-09-08 16:25:36
|
Revision: 1973 http://ftm.svn.sourceforge.net/ftm/?rev=1973&view=rev Author: borghesi Date: 2008-09-08 16:25:42 +0000 (Mon, 08 Sep 2008) Log Message: ----------- ftm.object: dblclick on ftm.object now open a patcher window with ftm.editor inside Modified Paths: -------------- trunk/ftm/externals/max/ftm.editor.cpp trunk/ftm/externals/max/ftm.object.c trunk/ftm/ftmlib/ftmversion.h trunk/ftm/ftmlib/predefsymbols.h trunk/ftm/gui/Juce/common/ScoreEditor.cpp Modified: trunk/ftm/externals/max/ftm.editor.cpp =================================================================== --- trunk/ftm/externals/max/ftm.editor.cpp 2008-09-05 16:47:19 UTC (rev 1972) +++ trunk/ftm/externals/max/ftm.editor.cpp 2008-09-08 16:25:42 UTC (rev 1973) @@ -512,7 +512,7 @@ { int i; fts_object_t *obj; - + if(editorContainer != NULL) { JUCE_NAMESPACE::Array <ImtrEditor *> editors = editorContainer->getEditors(); @@ -1271,13 +1271,13 @@ gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_bpf); break; default: - gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_spectrogram); + gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_matrix); } } else if(cl == mat_class) - { - gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_markers); - } + gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_matrix); + else if(cl = dict_class) + gui_interface = (imtr_guiInterface *)fts_object_get_gui_interface(obj, fts_s_matrix); return gui_interface; } @@ -1667,7 +1667,7 @@ long bx, by, width, height; short bw, bh, flags; - if(ac > 0) + if(ac > 4) { self = (ftmeditor_t*)newobject(ftmeditor_class); patcher = argv[0].a_w.w_obj; @@ -1705,10 +1705,11 @@ static void ftmeditor_free(ftmeditor_t *self) { - notify_free((t_object *)self); - + notify_free((t_object *)self); + if(self->container) - { + { + self->container->clearEditors(); self->container->removeFromDesktop(); delete self->container; } Modified: trunk/ftm/externals/max/ftm.object.c =================================================================== --- trunk/ftm/externals/max/ftm.object.c 2008-09-05 16:47:19 UTC (rev 1972) +++ trunk/ftm/externals/max/ftm.object.c 2008-09-08 16:25:42 UTC (rev 1973) @@ -107,6 +107,12 @@ int font; int fsize; int name_w; + + t_object *editor_external; + t_patcher *editor_patcher; + t_syswind editor_window; + int editor_width; + int editor_height; } ftmobj_t; void *ftmobj_class; @@ -594,6 +600,85 @@ return (true); } +/************************************************************* +* ftmobj editor +**************************************************************/ +#define EDITOR_WINDOW_POLLING_PERIOD 300 + +static void +ftmobj_create_editor(ftmobj_t *self) +{ + int w_x, w_y; + + if(self->editor_external == NULL) + { + t_atom argv[5]; + char win_name[1024]; + fts_symbol_t obj_name = ftm_context_get_name(&self->context); + fts_symbol_t type = fts_object_get_class_name(self->obj); + + self->editor_patcher = newinstance(gensym("patcher"), 0, NULL); + self->editor_patcher->p_lock = 1; + if(obj_name != fts_s_empty_string) + { + strcpy(win_name, fts_symbol_name(type)); + strcat(win_name, " : "); + strcat(win_name, fts_symbol_name(obj_name)); + } + else{ + strcpy(win_name, fts_symbol_name(type)); + strcat(win_name, " : untitled"); + } + wind_settitle(self->editor_patcher->p_wind, win_name, 1); + + self->editor_window = wind_syswind(self->editor_patcher->p_wind); + self->editor_width = W_WIDTH(self->editor_patcher->p_wind); + self->editor_height = W_HEIGHT(self->editor_patcher->p_wind); + + argv[0].a_w.w_obj = (t_object *)self->editor_patcher; + argv[0].a_type = A_OBJ; + + argv[1].a_w.w_long = 0; + argv[1].a_type = A_LONG; + + argv[2].a_w.w_long = 0; + argv[2].a_type = A_LONG; + + argv[3].a_w.w_long = self->editor_width-15; + argv[3].a_type = A_LONG; + + argv[4].a_w.w_long = self->editor_height-15; + argv[4].a_type = A_LONG; + + self->editor_external = newinstance(gensym("ftm.editor"), 5, argv); + + fts_set_object(argv, self->obj); + typedmess(self->editor_external, fts_s_set, 1, argv); + fts_set_symbol(argv, fts_s_visible); + fts_set_int(argv+1, 0); + typedmess(self->editor_external, fts_s_tabs, 2, argv); + } + w_x = ((t_box *)self)->b_patcher->p_wind->w_x1 + ((t_box *)self)->b_rect.left; + w_y = ((t_box *)self)->b_patcher->p_wind->w_y1 + ((t_box *)self)->b_rect.top + 20; + syswindow_move(self->editor_window, w_x, w_y, true); + syswindow_show(self->editor_window); + + ftmext_alarm_set((ftmext_t *)self, EDITOR_WINDOW_POLLING_PERIOD); +} + +static void +ftmobj_delete_editor(ftmobj_t *self) +{ + syswindow_hide(self->editor_window); + freeobject(self->editor_external); + freeobject((t_object *)self->editor_patcher); + self->editor_external = NULL; + self->editor_patcher = NULL; + self->editor_window = NULL; + self->editor_width = 0; + self->editor_height = 0; +} + /*************************************************************/ static int is_click_in_text(ftmobj_t *self, Point pt) @@ -611,10 +696,13 @@ return (pt.h > r.right-self->name_w && pt.h < r.right); } -/* send a message to the ftm.client to upload the object and open the editor (if needed) */ static void ftmobj_dblclick(t_object *o, Point pt, short modifiers) { + ftmobj_t *self = (ftmobj_t *)o; + + if(self->obj != NULL) + ftmobj_create_editor(self); } static void @@ -2251,6 +2339,35 @@ FTMEXT_METHOD_RETURN; } +FTMEXT_ALARM(ftmobj) +{ + ftmobj_t *self = (ftmobj_t *)FTMEXT_GET_EXT(); + + /* still open? set */ + if(!syswindow_isvisible(self->editor_window)) + { + self->editor_external = NULL; + self->editor_patcher = NULL; + self->editor_window = NULL; + self->editor_width = 0; + self->editor_height = 0; + } + else + { + /* get size --> resize editor */ + int w = W_WIDTH(self->editor_patcher->p_wind); + int h = W_HEIGHT(self->editor_patcher->p_wind); + if(self->editor_width != w || self->editor_height != h) + { + box_size((void *)self->editor_external, w-15, h-15); + self->editor_width = w; + self->editor_height = h; + } + ftmext_alarm_set((ftmext_t *)self, EDITOR_WINDOW_POLLING_PERIOD); + } + FTMEXT_ALARM_RETURN; +} + static void ftmobj_set_content(t_object *o, fts_symbol_t s, short ac, fts_atom_t *at) { @@ -2880,6 +2997,12 @@ maxext_init_finalize((ftmext_t *)self, 0, NULL); + self->editor_external = NULL; + self->editor_patcher = NULL; + self->editor_window = NULL; + self->editor_width = 0; + self->editor_height = 0; + return self; } } @@ -2892,6 +3015,9 @@ maxext_edithash_remove(box->b_patcher, box); + if(self->editor_external != NULL) + ftmobj_delete_editor(self); + ftmobj_deinstall_TEH(self); qelem_free(self->x_qelem); @@ -3007,6 +3133,8 @@ FTMEXT_CLASS_OUTLET(ftmobj, 0, "object reference (when bang)"); FTMEXT_CLASS_OUTLET(ftmobj, 1, "method return values"); + + FTMEXT_CLASS_ALARM(ftmobj, NULL); #ifdef WIN32 XQT_InitializeQTML(0); Modified: trunk/ftm/ftmlib/ftmversion.h =================================================================== --- trunk/ftm/ftmlib/ftmversion.h 2008-09-05 16:47:19 UTC (rev 1972) +++ trunk/ftm/ftmlib/ftmversion.h 2008-09-08 16:25:42 UTC (rev 1973) @@ -1,13 +1,13 @@ /* generated automatically from xcode project ftmlib (target = ftmlib) by ./writeversion.sh */ #define FTM_VERSION_MAJOR 2 -#define FTM_VERSION_MINOR 5 +#define FTM_VERSION_MINOR 4 #define FTM_VERSION_RELEASE 0 #define FTM_VERSION_BETA "BETA" -#define FTM_VERSION 2.5 -#define FTM_VERSION_STRING "2.5" +#define FTM_VERSION 2.4 +#define FTM_VERSION_STRING "2.4" #define FTM_VERSION_DATE "09/2008" -#define FTM_VERSION_FULL 2.5.0 BETA -#define FTM_VERSION_FULL_STRING "2.5.0 BETA" -#define FTM_VERSION_FULL_DATE "2.5.0 BETA 09/2008" +#define FTM_VERSION_FULL 2.4.0 BETA +#define FTM_VERSION_FULL_STRING "2.4.0 BETA" +#define FTM_VERSION_FULL_DATE "2.4.0 BETA 09/2008" Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-09-05 16:47:19 UTC (rev 1972) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-09-08 16:25:42 UTC (rev 1973) @@ -332,6 +332,7 @@ PREDEF_SYMBOL( fts_s_style, "style"); PREDEF_SYMBOL( fts_s_superposed, "superposed"); PREDEF_SYMBOL( fts_s_table, "table"); +PREDEF_SYMBOL( fts_s_tabs, "tabs"); PREDEF_SYMBOL( fts_s_vertical, "vertical"); PREDEF_SYMBOL( fts_s_visible, "visible"); PREDEF_SYMBOL( fts_s_zeropeaks, "zeropeaks"); Modified: trunk/ftm/gui/Juce/common/ScoreEditor.cpp =================================================================== --- trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-09-05 16:47:19 UTC (rev 1972) +++ trunk/ftm/gui/Juce/common/ScoreEditor.cpp 2008-09-08 16:25:42 UTC (rev 1973) @@ -278,9 +278,7 @@ else if(sp == JUCE_EDITOR_NAMESPACE::String("pianoroll")) shape = pianoroll_shape; - findPitchRange(); - updateBackgroundOffscreens(); - objectRefresh(); + updateScoreEditor(); } JUCE_EDITOR_NAMESPACE::String getShape() @@ -1908,6 +1906,12 @@ //mouseLabel->setBounds(getWidth()-80, 2, 78, 12); } + void updateScoreEditor() + { + findPitchRange(); + updateBackgroundOffscreens(); + objectRefresh(); + } /************************* ImtrEditor **************************/ @@ -2229,17 +2233,13 @@ void setViewBoundsToContent() { range_mode = used_range; - findPitchRange(); - updateBackgroundOffscreens(); - objectRefresh(); + updateScoreEditor(); } void setViewBoundsDefault() { range_mode = whole_range; - findPitchRange(); - updateBackgroundOffscreens(); - objectRefresh(); + updateScoreEditor(); } /************************ Coordinates conversion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bor...@us...> - 2008-09-08 16:33:39
|
Revision: 1974 http://ftm.svn.sourceforge.net/ftm/?rev=1974&view=rev Author: borghesi Date: 2008-09-08 16:33:46 +0000 (Mon, 08 Sep 2008) Log Message: ----------- ftm.object: minor change for editor open Modified Paths: -------------- trunk/ftm/externals/max/ftm.object.c trunk/ftm/ftmlib/predefsymbols.h Modified: trunk/ftm/externals/max/ftm.object.c =================================================================== --- trunk/ftm/externals/max/ftm.object.c 2008-09-08 16:25:42 UTC (rev 1973) +++ trunk/ftm/externals/max/ftm.object.c 2008-09-08 16:33:46 UTC (rev 1974) @@ -657,6 +657,12 @@ fts_set_symbol(argv, fts_s_visible); fts_set_int(argv+1, 0); typedmess(self->editor_external, fts_s_tabs, 2, argv); + if(type == fts_s_track && (track_get_type((track_t *)self->obj) == scoob_class)) + { + fts_set_symbol(argv, fts_s_visible); + fts_set_int(argv+1, 1); + typedmess(self->editor_external, fts_s_infopanel, 2, argv); + } } w_x = ((t_box *)self)->b_patcher->p_wind->w_x1 + ((t_box *)self)->b_rect.left; w_y = ((t_box *)self)->b_patcher->p_wind->w_y1 + ((t_box *)self)->b_rect.top + 20; Modified: trunk/ftm/ftmlib/predefsymbols.h =================================================================== --- trunk/ftm/ftmlib/predefsymbols.h 2008-09-08 16:25:42 UTC (rev 1973) +++ trunk/ftm/ftmlib/predefsymbols.h 2008-09-08 16:33:46 UTC (rev 1974) @@ -312,6 +312,7 @@ PREDEF_SYMBOL( fts_s_forecolor, "fore_color"); PREDEF_SYMBOL( fts_s_foremost, "foremost"); PREDEF_SYMBOL( fts_s_horizontal, "horizontal"); +PREDEF_SYMBOL( fts_s_infopanel, "infopanel"); PREDEF_SYMBOL( fts_s_juxtaposed, "juxtaposed"); PREDEF_SYMBOL( fts_s_layout, "layout"); PREDEF_SYMBOL( fts_s_lines, "lines"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |