@@ -1,134 +1,140 @@ | |||||
/* XPM */ | /* XPM */ | ||||
static char * comment_xpm[] = { | static char * comment_xpm[] = { | ||||
"32 25 106 2", | |||||
"30 30 107 2", | |||||
" c None", | " c None", | ||||
". c #313131", | |||||
"+ c #404040", | |||||
"@ c #474747", | |||||
"# c #484848", | |||||
"$ c #3F3F3F", | |||||
"% c #202020", | |||||
"& c #747474", | |||||
"* c #A6A6A6", | |||||
"= c #C6C6C6", | |||||
"- c #D4D4D4", | |||||
"; c #DCDCDC", | |||||
"> c #D3D3D3", | |||||
", c #C4C4C4", | |||||
"' c #A2A2A2", | |||||
") c #6C6C6C", | |||||
"! c #1A1A1A", | |||||
"~ c #3B3B3B", | |||||
"{ c #9D9D9D", | |||||
"] c #EFEFEF", | |||||
"^ c #FFFFFF", | |||||
"/ c #EAEAEA", | |||||
"( c #939393", | |||||
"_ c #373737", | |||||
": c #6A6A6A", | |||||
"< c #FEFEFE", | |||||
"[ c #CCCCCC", | |||||
"} c #5D5D5D", | |||||
"| c #7B7B7B", | |||||
"1 c #FDFDFD", | |||||
"2 c #FBFBFB", | |||||
"3 c #6B6B6B", | |||||
"4 c #686868", | |||||
"5 c #EEEEEE", | |||||
"6 c #E7E7E7", | |||||
"7 c #595959", | |||||
"8 c #242424", | |||||
"9 c #EBEBEB", | |||||
"0 c #DEDEDE", | |||||
"a c #181818", | |||||
"b c #7F7F7F", | |||||
"c c #BBBBBB", | |||||
"d c #AEAEAE", | |||||
"e c #3E3E3E", | |||||
"f c #CFCFCF", | |||||
"g c #343434", | |||||
"h c #414141", | |||||
"i c #C7C7C7", | |||||
"j c #323232", | |||||
"k c #C3C3C3", | |||||
"l c #B7B7B7", | |||||
"m c #9A9A9A", | |||||
"n c #888888", | |||||
"o c #434343", | |||||
"p c #F7F7F7", | |||||
"q c #F2F2F2", | |||||
"r c #303030", | |||||
"s c #9B9B9B", | |||||
"t c #FCFCFC", | |||||
"u c #F9F9F9", | |||||
"v c #2D2D2D", | |||||
"w c #ABABAB", | |||||
"x c #9E9E9E", | |||||
"y c #272727", | |||||
"z c #858585", | |||||
"A c #828282", | |||||
"B c #515151", | |||||
"C c #262626", | |||||
"D c #ACACAC", | |||||
"E c #F6F6F6", | |||||
"F c #A0A0A0", | |||||
"G c #1E1E1E", | |||||
"H c #909090", | |||||
"I c #F3F3F3", | |||||
"J c #F1F1F1", | |||||
"K c #7A7A7A", | |||||
"L c #676767", | |||||
"M c #F4F4F4", | |||||
"N c #CECECE", | |||||
"O c #5C5C5C", | |||||
"P c #464646", | |||||
"Q c #E0E0E0", | |||||
"R c #333333", | |||||
"S c #B5B5B5", | |||||
"T c #E6E6E6", | |||||
"U c #AFAFAF", | |||||
"V c #626262", | |||||
"W c #2C2C2C", | |||||
"X c #BABABA", | |||||
"Y c #2E2E2E", | |||||
"Z c #1D1D1D", | |||||
"` c #424242", | |||||
" . c #606060", | |||||
".. c #707070", | |||||
"+. c #1C1C1C", | |||||
"@. c #565656", | |||||
"#. c #DBDBDB", | |||||
"$. c #151515", | |||||
"%. c #2A2A2A", | |||||
"&. c #131313", | |||||
"*. c #808080", | |||||
"=. c #4F4F4F", | |||||
"-. c #B1B1B1", | |||||
";. c #2B2B2B", | |||||
">. c #575757", | |||||
",. c #3D3D3D", | |||||
" . + @ # $ ", | |||||
" % & * = - ; ; > , ' ) ! ", | |||||
" ~ { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ ", | |||||
" : - ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < [ } ", | |||||
" | 1 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2 3 ", | |||||
" 4 5 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 6 7 ", | |||||
" 8 9 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 0 a ", | |||||
" b ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 3 ", | |||||
" c ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ d ", | |||||
" e f ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ , g ", | |||||
" h > ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ i _ ", | |||||
" j k ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ l ", | |||||
" m ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ n ", | |||||
" o p ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ q r ", | |||||
" s t ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ u n ", | |||||
" v w < ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ t x y ", | |||||
" } z A B C D u ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E F G ", | |||||
" H I t t J K L - E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ M N O ", | |||||
" P Q ^ ^ ^ ^ f ~ R 4 S 9 ^ ^ ^ ^ ^ ^ T U V W ", | |||||
" ~ N ^ ^ ^ ^ X Y Z ` .....} e +. ", | |||||
" @.#.< t f P ", | |||||
" $.Y %.&. ", | |||||
"j *.=. ", | |||||
"b p -.;. ", | |||||
";.>.,. "}; | |||||
". c #606060", | |||||
"+ c #6F6F6F", | |||||
"@ c #767676", | |||||
"# c #747474", | |||||
"$ c #787878", | |||||
"% c #717171", | |||||
"& c #A1A1A1", | |||||
"* c #C5C5C5", | |||||
"= c #DCDCDC", | |||||
"- c #E5E5E5", | |||||
"; c #E9E9E9", | |||||
"> c #E8E8E8", | |||||
", c #E1E1E1", | |||||
"' c #D2D2D2", | |||||
") c #B6B6B6", | |||||
"! c #868686", | |||||
"~ c #7B7B7B", | |||||
"{ c #B5B5B5", | |||||
"] c #EDEDED", | |||||
"^ c #FEFEFE", | |||||
"/ c #FFFFFF", | |||||
"( c #F9F9F9", | |||||
"_ c #D7D7D7", | |||||
": c #949494", | |||||
"< c #6B6B6B", | |||||
"[ c #A6A6A6", | |||||
"} c #D9D9D9", | |||||
"| c #FAFAFA", | |||||
"1 c #EFEFEF", | |||||
"2 c #BEBEBE", | |||||
"3 c #858585", | |||||
"4 c #A2A2A2", | |||||
"5 c #C4C4C4", | |||||
"6 c #737373", | |||||
"7 c #808080", | |||||
"8 c #DDDDDD", | |||||
"9 c #FDFDFD", | |||||
"0 c #F8F8F8", | |||||
"a c #BABABA", | |||||
"b c #343434", | |||||
"c c #AEAEAE", | |||||
"d c #FCFCFC", | |||||
"e c #F7F7F7", | |||||
"f c #666666", | |||||
"g c #D6D6D6", | |||||
"h c #A9A9A9", | |||||
"i c #838383", | |||||
"j c #C8C8C8", | |||||
"k c #3F3F3F", | |||||
"l c #CECECE", | |||||
"m c #404040", | |||||
"n c #727272", | |||||
"o c #E2E2E2", | |||||
"p c #C1C1C1", | |||||
"q c #CACACA", | |||||
"r c #929292", | |||||
"s c #9D9D9D", | |||||
"t c #F6F6F6", | |||||
"u c #EAEAEA", | |||||
"v c #494949", | |||||
"w c #C0C0C0", | |||||
"x c #EEEEEE", | |||||
"y c #8B8B8B", | |||||
"z c #363636", | |||||
"A c #686868", | |||||
"B c #C6C6C6", | |||||
"C c #ECECEC", | |||||
"D c #989898", | |||||
"E c #3B3B3B", | |||||
"F c #959595", | |||||
"G c #818181", | |||||
"H c #3C3C3C", | |||||
"I c #7A7A7A", | |||||
"J c #F5F5F5", | |||||
"K c #AFAFAF", | |||||
"L c #3E3E3E", | |||||
"M c #8F8F8F", | |||||
"N c #B9B9B9", | |||||
"O c #DFDFDF", | |||||
"P c #FBFBFB", | |||||
"Q c #CFCFCF", | |||||
"R c #A5A5A5", | |||||
"S c #5D5D5D", | |||||
"T c #757575", | |||||
"U c #5E5E5E", | |||||
"V c #ABABAB", | |||||
"W c #ADADAD", | |||||
"X c #B4B4B4", | |||||
"Y c #A0A0A0", | |||||
"Z c #888888", | |||||
"` c #444444", | |||||
" . c #565656", | |||||
".. c #F2F2F2", | |||||
"+. c #F4F4F4", | |||||
"@. c #626262", | |||||
"#. c #707070", | |||||
"$. c #535353", | |||||
"%. c #313131", | |||||
"&. c #5F5F5F", | |||||
"*. c #5C5C5C", | |||||
"=. c #373737", | |||||
"-. c #4F4F4F", | |||||
";. c #6E6E6E", | |||||
">. c #848484", | |||||
",. c #2B2B2B", | |||||
"'. c #575757", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" . + @ # $ ", | |||||
" % & * = - ; > , ' ) ! @ ", | |||||
" ~ { ] ^ / / / / / / / / ( _ : < ", | |||||
" [ } | / / / / / / / / / / / / 1 2 3 ", | |||||
" 4 - / / / / / / / / / / / / / / / ^ 5 6 ", | |||||
" 7 8 9 / / / / / / / / / / / / / / / / 0 a b ", | |||||
" c d / / / / / / / / / / / / / / / / / / e f ", | |||||
" g / / / / / / / / / / / / / / / / / / / / h ", | |||||
" i - / / / / / / / / / / / / / / / / / / / / j k ", | |||||
" 7 ; / / / / / / / / / / / / / / / / / / / / l m ", | |||||
" n o / / / / / / / / / / / / / / / / / / / / p ", | |||||
" q / / / / / / / / / / / / / / / / / / / ^ r ", | |||||
" s t / / / / / / / / / / / / / / / / / ^ u v ", | |||||
" ! w 0 / / / / / / / / / / / / / / / / x y ", | |||||
" z A B e / / / / / / / / / / / / / ^ C D E ", | |||||
" F h D G H I 5 > | / / / / / / / / / 9 J g K L ", | |||||
" w ( 9 | j ~ M N O t / / / / / P ] Q R @ ", | |||||
" S o / / / o T U V r W a w 2 X Y D Z ` ", | |||||
" .h ..^ +.X . ` @.#.< $.%. ", | |||||
" &.T Z $ *. ", | |||||
"=.I -. ", | |||||
";.q >.,. ", | |||||
"` I '. ", | |||||
" ", | |||||
" ", | |||||
" "}; |
@@ -1,242 +1,160 @@ | |||||
/* XPM */ | /* XPM */ | ||||
static char * new_xpm[] = { | static char * new_xpm[] = { | ||||
"48 61 178 2", | |||||
"30 30 127 2", | |||||
" c None", | " c None", | ||||
". c #000000", | |||||
"+ c #161616", | |||||
"@ c #9E9E9E", | |||||
"# c #ACACAC", | |||||
"$ c #B5B5B5", | |||||
"% c #AEAEAE", | |||||
"& c #ABABAB", | |||||
"* c #A7A7A7", | |||||
"= c #959595", | |||||
"- c #949494", | |||||
"; c #919191", | |||||
"> c #909090", | |||||
", c #808080", | |||||
"' c #7D7D7D", | |||||
") c #7E7E7E", | |||||
"! c #7F7F7F", | |||||
"~ c #9A9A9A", | |||||
"{ c #A2A2A2", | |||||
"] c #B8B8B8", | |||||
"^ c #717171", | |||||
"/ c #3B3B3B", | |||||
"( c #D5D5D5", | |||||
"_ c #FFFFFF", | |||||
": c #A1A1A1", | |||||
"< c #C3C3C3", | |||||
"[ c #C7C7C7", | |||||
"} c #C8C8C8", | |||||
"| c #C9C9C9", | |||||
"1 c #CACACA", | |||||
"2 c #CBCBCB", | |||||
"3 c #CCCCCC", | |||||
"4 c #CDCDCD", | |||||
"5 c #CECECE", | |||||
"6 c #CFCFCF", | |||||
"7 c #D0D0D0", | |||||
"8 c #D1D1D1", | |||||
"9 c #D2D2D2", | |||||
"0 c #D3D3D3", | |||||
"a c #D4D4D4", | |||||
"b c #D6D6D6", | |||||
"c c #636363", | |||||
"d c #6C6C6C", | |||||
"e c #F4F4F4", | |||||
"f c #9F9F9F", | |||||
"g c #C1C1C1", | |||||
"h c #D7D7D7", | |||||
"i c #5D5D5D", | |||||
"j c #131313", | |||||
"k c #A0A0A0", | |||||
"l c #FDFDFD", | |||||
"m c #FAFAFA", | |||||
"n c #989898", | |||||
"o c #9D9D9D", | |||||
"p c #D8D8D8", | |||||
"q c #4B4B4B", | |||||
"r c #333333", | |||||
"s c #F6F6F6", | |||||
"t c #F2F2F2", | |||||
"u c #EEEEEE", | |||||
"v c #929292", | |||||
"w c #C2C2C2", | |||||
"x c #454545", | |||||
"y c #5C5C5C", | |||||
"z c #BBBBBB", | |||||
"A c #AFAFAF", | |||||
"B c #EAEAEA", | |||||
"C c #E6E6E6", | |||||
"D c #E2E2E2", | |||||
"E c #8B8B8B", | |||||
"F c #D9D9D9", | |||||
"G c #3D3D3D", | |||||
"H c #8C8C8C", | |||||
"I c #6D6D6D", | |||||
"J c #A3A3A3", | |||||
"K c #C4C4C4", | |||||
"L c #DADADA", | |||||
"M c #2B2B2B", | |||||
"N c #888888", | |||||
"O c #B6B6B6", | |||||
"P c #B3B3B3", | |||||
"Q c #AAAAAA", | |||||
"R c #939393", | |||||
"S c #C0C0C0", | |||||
"T c #DBDBDB", | |||||
"U c #282828", | |||||
"V c #767676", | |||||
"W c #C5C5C5", | |||||
"X c #C6C6C6", | |||||
"Y c #969696", | |||||
"Z c #B2B2B2", | |||||
"` c #DCDCDC", | |||||
" . c #272727", | |||||
".. c #6F6F6F", | |||||
"+. c #A9A9A9", | |||||
"@. c #BDBDBD", | |||||
"#. c #DDDDDD", | |||||
"$. c #252525", | |||||
"%. c #5E5E5E", | |||||
"&. c #DEDEDE", | |||||
"*. c #202020", | |||||
"=. c #606060", | |||||
"-. c #B4B4B4", | |||||
";. c #DFDFDF", | |||||
">. c #B9B9B9", | |||||
",. c #BFBFBF", | |||||
"'. c #B7B7B7", | |||||
"). c #E0E0E0", | |||||
"!. c #5B5B5B", | |||||
"~. c #E1E1E1", | |||||
"{. c #212121", | |||||
"]. c #BABABA", | |||||
"^. c #E3E3E3", | |||||
"/. c #616161", | |||||
"(. c #E4E4E4", | |||||
"_. c #626262", | |||||
":. c #E5E5E5", | |||||
"<. c #E7E7E7", | |||||
"[. c #676767", | |||||
"}. c #E8E8E8", | |||||
"|. c #2A2A2A", | |||||
"1. c #757575", | |||||
"2. c #E9E9E9", | |||||
"3. c #2D2D2D", | |||||
"4. c #797979", | |||||
"5. c #3F3F3F", | |||||
"6. c #7C7C7C", | |||||
"7. c #BEBEBE", | |||||
"8. c #EBEBEB", | |||||
"9. c #484848", | |||||
"0. c #ECECEC", | |||||
"a. c #515151", | |||||
"b. c #EDEDED", | |||||
"c. c #999999", | |||||
"d. c #666666", | |||||
"e. c #EFEFEF", | |||||
"f. c #F0F0F0", | |||||
"g. c #838383", | |||||
"h. c #F1F1F1", | |||||
"i. c #8F8F8F", | |||||
"j. c #F3F3F3", | |||||
"k. c #070707", | |||||
"l. c #1A1A1A", | |||||
"m. c #F5F5F5", | |||||
"n. c #1F1F1F", | |||||
"o. c #060606", | |||||
"p. c #323232", | |||||
"q. c #F7F7F7", | |||||
"r. c #151515", | |||||
"s. c #F8F8F8", | |||||
"t. c #313131", | |||||
"u. c #464646", | |||||
"v. c #F9F9F9", | |||||
"w. c #505050", | |||||
"x. c #565656", | |||||
"y. c #5A5A5A", | |||||
"z. c #FBFBFB", | |||||
"A. c #979797", | |||||
"B. c #686868", | |||||
"C. c #FCFCFC", | |||||
"D. c #6E6E6E", | |||||
"E. c #090909", | |||||
"F. c #828282", | |||||
"G. c #424242", | |||||
"H. c #0F0F0F", | |||||
"I. c #0C0C0C", | |||||
"J. c #030303", | |||||
"K. c #191919", | |||||
"L. c #3A3A3A", | |||||
"M. c #898989", | |||||
"N. c #A8A8A8", | |||||
"O. c #595959", | |||||
"P. c #363636", | |||||
"Q. c #141414", | |||||
"R. c #020202", | |||||
"S. c #8A8A8A", | |||||
"T. c #1B1B1B", | |||||
"U. c #010101", | |||||
" ", | |||||
" ", | |||||
" . ", | |||||
" + @ # $ % & & * = - = ; > , ' ' ) ! ! ! , , , > ~ { ] ^ ", | |||||
" / ( _ : % < [ } } | 1 2 2 3 4 4 5 6 6 7 8 8 9 0 a a ( b c ", | |||||
" d e _ _ f { g } | | 1 2 2 3 4 5 5 6 7 7 8 9 9 0 a a ( b h i ", | |||||
" j k _ _ l m n o g | 1 1 2 3 3 4 5 6 6 7 8 8 9 0 0 a ( ( b h p q ", | |||||
" r 8 l m s t u v o w 1 2 2 3 4 4 5 6 6 7 8 9 9 0 a a ( b b h p p x . ", | |||||
" y 4 z A 2 B C D E @ < 2 3 3 4 5 5 6 7 7 8 9 9 0 a ( ( b h h p F F G . . ", | |||||
" H o H ! I ' 1 b ) J K 3 4 4 5 6 6 7 8 8 9 0 0 a ( b b h p p F L L M . . ", | |||||
" N O $ P Q R ! S ) # [ 4 4 5 6 7 7 8 9 9 0 a a ( b b h p F F L T T U . . ", | |||||
" V W X X K z J Y R Z w W X 6 7 7 8 9 0 0 a ( ( b h h p F F L T ` ` .. . ", | |||||
" ..} } | 1 | S +.$ S [ @.3 7 8 8 9 0 a a ( b b h p p F L L T ` #.#.$.. . ", | |||||
" %.| | 1 2 2 2 z 1 4 6 w S S S W 7 a a ( b h h p F F L T T ` #.#.&.*.. . ", | |||||
" =.1 1 2 3 3 4 -.5 6 7 4 < 9 9 5 K w W ( ( 1 1 2 7 L T ` ` #.&.&.;.*.. . ", | |||||
" =.2 2 3 4 4 5 ] 6 7 8 6 >.,.2 a ( b 0 < '.4 0 a K T ` #.#.&.;.;.).*.. . ", | |||||
" !.3 3 4 5 5 | $ 6 7 8 6 w a } g } b h p 7 K L T X ` #.&.&.;.).).~.{.. . ", | |||||
" y 3 4 5 6 6 S ].S g g w w ( ( b 7 < 1 F 9 7 T ` [ [ | 1 L ;.~.~.D {.. . ", | |||||
" y 4 5 6 7 7 ,.9 9 0 a a ( b b h p F 8 W W 8 ` #.6 F ;.#.7 2 a D ^.{.. . ", | |||||
" /.5 6 7 7 8 g 0 0 a ( ( b h h p F F L T a } a &.F 6 ).).~.D D ^.(.{.. . ", | |||||
" _.6 7 S K W @.0 a ( b b h p p F L L T 7 S 1 &.;.#.z 2 2 3 ~.^.(.:.{.. . ", | |||||
" c 7 8 S 7 7 O 8 ( b h h p F F L T L X 7 3 ,.T ).).1 D D ^.(.(.:.C U . . ", | |||||
" c 8 9 w 0 a 8 O X 0 h p F F L T b K L 8 4 2 ).).~.2 ^.^.(.:.:.C <.U . . ", | |||||
" [.9 0 < a ( b w a | W K ] [ z L K #.b 2 ;.1 ~.~.D 5 ^.(.:.C C <.}.|.. . ", | |||||
" 1.0 a '.( b h 2 7 F F L S W 1 w ` T [ ).( < &.` T K (.:.C <.<.}.2.3.. . ", | |||||
" 4.a ( < ( h p a O X } } z 1 ` X F X ;.).[ 3 ( b h ^.:.C <.<.}.2.B 5.. . ", | |||||
" 6.( b 7 g X X [ ,.7 F L | p &.` 7.;.~.2 &.` ^.(.:.C C <.}.}.2.B B x . . ", | |||||
" ! b h h p F F p F T ` #.p 3 ;.;.2 ;.( ( ^.(.:.:.C <.<.}.2.2.B 8.8.9.. . ", | |||||
" ; h p p F L L T ` ` #.&.&.3 4 4 4 L 4 ^.(.:.:.C <.}.}.2.B B 8.0.0.a.. . ", | |||||
" n p F F L T T ` #.#.&.;.;.).~.D ).| ^.(.:.C C <.}.}.2.B 8.8.0.b.b.=.. . ", | |||||
" c.F L L T ` ` #.&.&.` #.;.~.D ^.5 ;.:.:.C <.<.}.2.2.B 8.0.0.b.u u d.. . ", | |||||
" & L L T ` #.#.5 #.9 3 4 < D ^.T 8 :.C C <.}.}.2.B B 8.0.0.b.u e.e.1.. . ", | |||||
" $ T T ` #.#.&.2 #.).~.D F a D 1 :.C C <.}.2.2.B 8.8.0.b.b.u e.e.f.g.. . ", | |||||
" '.` ` #.&.&.;.3 &.~.D ^.^.2 1 ^.C <.&.D <.&.B T 2.0 0 ( p D f.f.h.i.. . ", | |||||
" . 3 #.#.&.;.;.).4 ;.D ^.(.(.p 6 C <.}.}.2.B B 8.0.b.b.u e.e.f.h.h.t : . . ", | |||||
" . a &.&.;.).).~.F a ~.D D ^.(.5 <.}.2.2.B D (.0.:.#.( ( b L h.t t j.Z . . ", | |||||
" k.h ;.;.).~.~.D ~.6 6 7 7 8 9 F }.2.B B 8.~.D b.(.C u e.f.h.t j.j.e < . . ", | |||||
" l.#.;.).~.D D ^.(.(.:.C C <.}.}.2.B 8.8.0.F a b p 8.f.u e.t j.e e m.&.. . ", | |||||
" n.).).~.D ^.^.(.:.:.C <.<.}.2.2.B 8.8.B b.u u e.f.f.h.(.:.j.e e m.s 0.o.. . ", | |||||
" p.~.~.D ^.^.(.:.C C <.}.}.2.B B 8.0.0.;.a h u b.F L L e.D ` j.m.s q.q.r.. . ", | |||||
" 5.D D ^.(.(.:.C C <.}.2.2.B 8.8.0.b.b.u e.e.f.h.t t h.h.t e e e q.s.s.t.. . ", | |||||
" u.^.^.(.:.:.C <.<.}.2.B B 8.0.0.b.<.L e.` h b 2.j.j.` T T 0.^.#.m.v.v.w.. . ", | |||||
" x.(.(.:.C C <.}.}.2.B B 8.0.b.b.u u u f.f.h.t j.j.e m.s s q.s.s.v.m m ^ . . ", | |||||
" y.(.:.C <.<.}.2.2.B 8.8.0.b.b.u e.f.f.h.t t j.e e m.s s q.s.v.v.m z.z.A.. . ", | |||||
" B.:.C <.}.}.2.B B 8.0.0.b.u u e.f.h.h.t j.j.e m.m.s q.q.s.v.v.m z.C.C.K . . ", | |||||
" D.C <.}.}.2.B 8.8.0.b.b.u e.e.f.h.h.t j.e e e t B C C ;.;.).~.2.0.s.l e E.. ", | |||||
" F.<.}.2.2.B 8.8.0.b.u b.~.X & v 6.[.a.G.3.{.H.I.J.. . . . . . . . I.K.L.H.. ", | |||||
" M.}.2.B B B 9 N.' O.P.Q.R.. . . . . . . . . . . . . . . . . . . . . . . . . ", | |||||
" f 2.4 S.w.T.U.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", | |||||
" %./ J.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", | |||||
" . . . . . . . . . . . . . . . . . . ", | |||||
" . . . . . . . . ", | |||||
" . . ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" ", | |||||
" "}; | |||||
". c #676767", | |||||
"+ c #707070", | |||||
"@ c #909090", | |||||
"# c #D5D5D5", | |||||
"$ c #A8A8A8", | |||||
"% c #C0C0C0", | |||||
"& c #C3C3C3", | |||||
"* c #C1C1C1", | |||||
"= c #C2C2C2", | |||||
"- c #C4C4C4", | |||||
"; c #C8C8C8", | |||||
"> c #CCCCCC", | |||||
", c #9E9E9E", | |||||
"' c #BEBEBE", | |||||
") c #F9F9F9", | |||||
"! c #EAEAEA", | |||||
"~ c #9D9D9D", | |||||
"{ c #CACACA", | |||||
"] c #CDCDCD", | |||||
"^ c #CECECE", | |||||
"/ c #CFCFCF", | |||||
"( c #D1D1D1", | |||||
"_ c #D2D2D2", | |||||
": c #D3D3D3", | |||||
"< c #D4D4D4", | |||||
"[ c #D6D6D6", | |||||
"} c #989898", | |||||
"| c #6C6C6C", | |||||
"1 c #B3B3B3", | |||||
"2 c #DEDEDE", | |||||
"3 c #EEEEEE", | |||||
"4 c #D9D9D9", | |||||
"5 c #979797", | |||||
"6 c #C6C6C6", | |||||
"7 c #CBCBCB", | |||||
"8 c #D0D0D0", | |||||
"9 c #D7D7D7", | |||||
"0 c #D8D8D8", | |||||
"a c #919191", | |||||
"b c #090909", | |||||
"c c #A0A0A0", | |||||
"d c #8F8F8F", | |||||
"e c #BDBDBD", | |||||
"f c #969696", | |||||
"g c #DADADA", | |||||
"h c #888888", | |||||
"i c #050505", | |||||
"j c #929292", | |||||
"k c #BFBFBF", | |||||
"l c #AAAAAA", | |||||
"m c #9F9F9F", | |||||
"n c #A4A4A4", | |||||
"o c #C5C5C5", | |||||
"p c #DBDBDB", | |||||
"q c #878787", | |||||
"r c #C9C9C9", | |||||
"s c #B9B9B9", | |||||
"t c #DCDCDC", | |||||
"u c #DDDDDD", | |||||
"v c #858585", | |||||
"w c #040404", | |||||
"x c #838383", | |||||
"y c #818181", | |||||
"z c #DFDFDF", | |||||
"A c #E0E0E0", | |||||
"B c #828282", | |||||
"C c #C7C7C7", | |||||
"D c #868686", | |||||
"E c #E3E3E3", | |||||
"F c #E5E5E5", | |||||
"G c #8C8C8C", | |||||
"H c #8A8A8A", | |||||
"I c #E4E4E4", | |||||
"J c #E6E6E6", | |||||
"K c #8E8E8E", | |||||
"L c #E7E7E7", | |||||
"M c #E8E8E8", | |||||
"N c #959595", | |||||
"O c #060606", | |||||
"P c #9A9A9A", | |||||
"Q c #E2E2E2", | |||||
"R c #080808", | |||||
"S c #A5A5A5", | |||||
"T c #E9E9E9", | |||||
"U c #EBEBEB", | |||||
"V c #A3A3A3", | |||||
"W c #AEAEAE", | |||||
"X c #E1E1E1", | |||||
"Y c #ECECEC", | |||||
"Z c #EDEDED", | |||||
"` c #ACACAC", | |||||
" . c #0C0C0C", | |||||
".. c #BCBCBC", | |||||
"+. c #EFEFEF", | |||||
"@. c #B8B8B8", | |||||
"#. c #0E0E0E", | |||||
"$. c #F0F0F0", | |||||
"%. c #111111", | |||||
"&. c #F2F2F2", | |||||
"*. c #141414", | |||||
"=. c #F3F3F3", | |||||
"-. c #181818", | |||||
";. c #F5F5F5", | |||||
">. c #F1F1F1", | |||||
",. c #212121", | |||||
"'. c #000000", | |||||
"). c #F8F8F8", | |||||
"!. c #353535", | |||||
"~. c #565656", | |||||
"{. c #F4F4F4", | |||||
"]. c #F6F6F6", | |||||
"^. c #FAFAFA", | |||||
"/. c #FBFBFB", | |||||
"(. c #7C7C7C", | |||||
"_. c #020202", | |||||
":. c #949494", | |||||
"<. c #747474", | |||||
"[. c #5D5D5D", | |||||
"}. c #484848", | |||||
"|. c #363636", | |||||
"1. c #252525", | |||||
"2. c #171717", | |||||
"3. c #0B0B0B", | |||||
"4. c #2C2C2C", | |||||
"5. c #0D0D0D", | |||||
"6. c #010101", | |||||
" . + ", | |||||
" @ # $ % & * * * % % * = & - ; > , ", | |||||
" ' ) ! ~ - { { > ] ^ / ( _ : < # [ } ", | |||||
" | 1 2 3 4 5 6 7 > ] / 8 ( _ : < [ 9 0 a b ", | |||||
" a c d , e f ; ] ^ / 8 ( : < # [ 0 0 g h i ", | |||||
" j * k l m n o { / 8 _ : < # 9 9 4 g p q i ", | |||||
" q r { r s - 6 o ; ^ : < [ 9 0 4 p t u v w ", | |||||
" x { > ] % / / - ] ] { ] 7 ^ / p t u 2 v w ", | |||||
" y > ] > k ] ^ 6 > 7 _ _ r 0 ^ 4 p z A q w ", | |||||
" B ] / { C 7 > / [ [ 8 ] ^ p ( < # # z q w ", | |||||
" D ^ { ; ^ < # [ 9 4 g [ { 4 0 ( 0 A E h w ", | |||||
" q / ; r r < 9 0 4 g < / C t p # z E F G i ", | |||||
" H 8 7 # 6 ^ > ; { : < _ ( z u g I J J K i ", | |||||
" f ( { 9 / 7 ( & ^ / : g 7 0 0 u J L M N O ", | |||||
" P # ] ] > ] 0 8 g 8 g [ u Q I J M M ! ~ R ", | |||||
" S 0 0 g g t u 4 _ _ [ t I F L M T ! U V b ", | |||||
" W 4 g p t 2 u z X u 4 F J L M T U Y Z ` . ", | |||||
" ..g t u < g # _ A 9 I J M T ! U Y Z +.@.#. ", | |||||
" * t u 2 < A Q u ( Q F I F L J u A M $.& %. ", | |||||
" ..2 z A 0 2 E Q [ L M T J ! I z X 3 &.( *. ", | |||||
" & z X Q A 0 4 g 2 T ! ! u Q L +.$.&.=.Q -. ", | |||||
" { X Q E F J L M T U ! L L T T ! T =.;.>.,.'. ", | |||||
" ^ E I F J L T ! U Y U J ! Z T Y U >.;.).!.'. ", | |||||
" _ I F L M T ! Y Z Y M M E +.>.M Y Z &.) ~.'. ", | |||||
" # J L M T U Y Z 3 $.$.&.=.{.;.].).) ^./.(.'. ", | |||||
" 0 M M ! U Y Y ! F Q z u g [ 8 ^ > / < A 5 _. ", | |||||
" t T ! 9 1 :.<.[.}.|.1.2.3.w '.'.'.'.'.b *._. ", | |||||
" ~ . 4.5.R w 6.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'. ", | |||||
" '.'.'.'.'.'.'.'.'.'. ", | |||||
" '. "}; |
@@ -41,7 +41,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Amps/Mixers"; | |||||
} | } | ||||
} | } | ||||
@@ -43,7 +43,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -40,7 +40,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -100,7 +100,7 @@ void CounterPlugin::Execute() | |||||
m_Current++; | m_Current++; | ||||
} | } | ||||
} | } | ||||
if (m_Current>=m_Count) | if (m_Current>=m_Count) | ||||
{ | { | ||||
m_CurrentLevel=-m_CurrentLevel; | m_CurrentLevel=-m_CurrentLevel; | ||||
@@ -40,7 +40,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -62,7 +62,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "InputOutput"; | |||||
} | } | ||||
} | } | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -40,7 +40,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "EnvFollowerPlugin.h" | #include "EnvFollowerPlugin.h" | ||||
#include "EnvFollowerPluginGUI.h" | #include "EnvFollowerPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -44,16 +44,16 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
/////////////////////////////////////////////////////// | /////////////////////////////////////////////////////// | ||||
FilterPlugin::FilterPlugin() : | FilterPlugin::FilterPlugin() : | ||||
fs(0), // Sampling frequency | |||||
fc(100), // Filter cutoff | |||||
Q(1), // Resonance | |||||
fs(0), // Sampling frequency | |||||
fc(100), // Filter cutoff | |||||
Q(1), // Resonance | |||||
m_LastFC(0), | m_LastFC(0), | ||||
m_LastQ(1), | m_LastQ(1), | ||||
k(1.0), // Set overall filter gain | k(1.0), // Set overall filter gain | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include <math.h> | #include <math.h> | ||||
#include "FormantFilterPlugin.h" | #include "FormantFilterPlugin.h" | ||||
#include "FormantFilterPluginGUI.h" | #include "FormantFilterPluginGUI.h" | ||||
@@ -77,7 +77,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -91,7 +91,7 @@ m_Vowel(0) | |||||
m_PluginInfo.Height=110; | m_PluginInfo.Height=110; | ||||
m_PluginInfo.NumInputs=2; | m_PluginInfo.NumInputs=2; | ||||
m_PluginInfo.NumOutputs=1; | m_PluginInfo.NumOutputs=1; | ||||
m_PluginInfo.PortTips.push_back("Input"); | |||||
m_PluginInfo.PortTips.push_back("Input"); | |||||
m_PluginInfo.PortTips.push_back("Vowel CV"); | m_PluginInfo.PortTips.push_back("Vowel CV"); | ||||
m_PluginInfo.PortTips.push_back("Output"); | m_PluginInfo.PortTips.push_back("Output"); | ||||
@@ -338,7 +338,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "InputOutput"; | |||||
} | } | ||||
} | } | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "InputOutput"; | |||||
} | } | ||||
} | } | ||||
@@ -50,7 +50,7 @@ m_NoteLevel(0), | |||||
m_TriggerLevel(0) | m_TriggerLevel(0) | ||||
{ | { | ||||
m_Version=0; | m_Version=0; | ||||
m_PluginInfo.Name="Keyboard"; | m_PluginInfo.Name="Keyboard"; | ||||
m_PluginInfo.Width=300; | m_PluginInfo.Width=300; | ||||
m_PluginInfo.Height=90; | m_PluginInfo.Height=90; | ||||
@@ -45,7 +45,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -30,7 +30,7 @@ int GetID() { return 124; } | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Oscillators"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include <math.h> | #include <math.h> | ||||
#include "MasherPlugin.h" | #include "MasherPlugin.h" | ||||
#include "MasherPluginGUI.h" | #include "MasherPluginGUI.h" | ||||
@@ -46,7 +46,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -40,7 +40,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Sequencing"; | |||||
} | } | ||||
} | } | ||||
@@ -29,7 +29,7 @@ int GetID() { return 123; } | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -43,7 +43,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "InputOutput"; | |||||
} | } | ||||
} | } | ||||
@@ -40,7 +40,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Amps/Mixers"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include <math.h> | #include <math.h> | ||||
#include "MoogFilterPlugin.h" | #include "MoogFilterPlugin.h" | ||||
#include "MoogFilterPluginGUI.h" | #include "MoogFilterPluginGUI.h" | ||||
@@ -43,7 +43,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "NoisePlugin.h" | #include "NoisePlugin.h" | ||||
#include "NoisePluginGUI.h" | #include "NoisePluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Oscillators"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "NoteSnapPlugin.h" | #include "NoteSnapPlugin.h" | ||||
#include "NoteSnapPluginGUI.h" | #include "NoteSnapPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -45,7 +45,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Oscillators"; | |||||
} | } | ||||
} | } | ||||
@@ -83,7 +83,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "InputOutput"; | |||||
} | } | ||||
} | } | ||||
@@ -48,7 +48,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -61,7 +61,7 @@ m_Recording(false) | |||||
m_PluginInfo.Width=400; | m_PluginInfo.Width=400; | ||||
m_PluginInfo.Height=215; | m_PluginInfo.Height=215; | ||||
m_PluginInfo.NumInputs=21; | m_PluginInfo.NumInputs=21; | ||||
m_PluginInfo.NumOutputs=9; | |||||
m_PluginInfo.NumOutputs=9; | |||||
m_PluginInfo.PortTips.push_back("Sample 1 Pitch"); | m_PluginInfo.PortTips.push_back("Sample 1 Pitch"); | ||||
m_PluginInfo.PortTips.push_back("Sample 1 Trigger"); | m_PluginInfo.PortTips.push_back("Sample 1 Trigger"); | ||||
m_PluginInfo.PortTips.push_back("Sample 2 Pitch"); | m_PluginInfo.PortTips.push_back("Sample 2 Pitch"); | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include <math.h> | #include <math.h> | ||||
#include "RingModPlugin.h" | #include "RingModPlugin.h" | ||||
#include "RingModPluginGUI.h" | #include "RingModPluginGUI.h" | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -41,7 +41,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "SampleHoldPlugin.h" | #include "SampleHoldPlugin.h" | ||||
#include "SampleHoldPluginGUI.h" | #include "SampleHoldPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -42,7 +42,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -54,7 +54,7 @@ SamplerPlugin::SamplerPlugin() | |||||
m_PluginInfo.Width=245; | m_PluginInfo.Width=245; | ||||
m_PluginInfo.Height=420; | m_PluginInfo.Height=420; | ||||
m_PluginInfo.NumInputs=18; | m_PluginInfo.NumInputs=18; | ||||
m_PluginInfo.NumOutputs=9; | |||||
m_PluginInfo.NumOutputs=9; | |||||
m_PluginInfo.PortTips.push_back("Sample 1 Pitch"); | m_PluginInfo.PortTips.push_back("Sample 1 Pitch"); | ||||
m_PluginInfo.PortTips.push_back("Sample 1 Trigger"); | m_PluginInfo.PortTips.push_back("Sample 1 Trigger"); | ||||
m_PluginInfo.PortTips.push_back("Sample 2 Pitch"); | m_PluginInfo.PortTips.push_back("Sample 2 Pitch"); | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "SeqPlugin.h" | #include "SeqPlugin.h" | ||||
#include "SeqPluginGUI.h" | #include "SeqPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -43,7 +43,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Sequencing"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "SeqSelectorPlugin.h" | #include "SeqSelectorPlugin.h" | ||||
#include "SeqSelectorPluginGUI.h" | #include "SeqSelectorPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -39,7 +39,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Sequencing"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "SequencerPlugin.h" | #include "SequencerPlugin.h" | ||||
#include "SequencerPluginGUI.h" | #include "SequencerPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -39,23 +39,23 @@ Note::Note(float t=0, float l=0.1f, int n=0, float v=1.0f) | |||||
Note::~Note() | Note::~Note() | ||||
{ | { | ||||
} | } | ||||
istream &operator>>(istream &s, Note &o) | istream &operator>>(istream &s, Note &o) | ||||
{ | { | ||||
int version=1; | int version=1; | ||||
string dummy; | string dummy; | ||||
s>>version>>dummy>>o.Time>>o.Length>>o.MidiNote>>o.Vol; | s>>version>>dummy>>o.Time>>o.Length>>o.MidiNote>>o.Vol; | ||||
return s; | return s; | ||||
} | } | ||||
ostream &operator<<(ostream &s, Note &o) | ostream &operator<<(ostream &s, Note &o) | ||||
{ | |||||
{ | |||||
int version=1; | int version=1; | ||||
s<<version<<" note "<<o.Time<<" "<<o.Length<<" "<<o.MidiNote<<" "<<o.Vol<<" "; | s<<version<<" note "<<o.Time<<" "<<o.Length<<" "<<o.MidiNote<<" "<<o.Vol<<" "; | ||||
return s; | return s; | ||||
} | |||||
} | |||||
///////////////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////////////// | ||||
@@ -70,8 +70,8 @@ Pattern::~Pattern() | |||||
void Pattern::Copy(const Pattern *o) | void Pattern::Copy(const Pattern *o) | ||||
{ | { | ||||
// can't do this as we don't want to preserve the id numbers | // can't do this as we don't want to preserve the id numbers | ||||
//m_NoteMap=o->m_NoteMap; | |||||
//m_NoteMap=o->m_NoteMap; | |||||
int c=0; | int c=0; | ||||
for (map<int,Note>::const_iterator i = o->m_NoteMap.begin(); | for (map<int,Note>::const_iterator i = o->m_NoteMap.begin(); | ||||
i!=o->m_NoteMap.end(); i++) | i!=o->m_NoteMap.end(); i++) | ||||
@@ -89,7 +89,7 @@ void Pattern::AddNote(int ID, float t, float l, int n, float v) | |||||
return; | return; | ||||
} | } | ||||
Note newnote(t,l,n,v); | Note newnote(t,l,n,v); | ||||
m_NoteMap[ID]=newnote; | m_NoteMap[ID]=newnote; | ||||
} | } | ||||
@@ -101,7 +101,7 @@ void Pattern::RemoveNote(int ID) | |||||
cerr<<"couldn't find note "<<ID<<" not removed"<<endl; | cerr<<"couldn't find note "<<ID<<" not removed"<<endl; | ||||
return; | return; | ||||
} | } | ||||
m_NoteMap.erase(i); | m_NoteMap.erase(i); | ||||
} | } | ||||
@@ -113,7 +113,7 @@ Note *Pattern::GetNote(int ID) | |||||
cerr<<"couldn't find note "<<ID<<endl; | cerr<<"couldn't find note "<<ID<<endl; | ||||
return NULL; | return NULL; | ||||
} | } | ||||
return &i->second; | return &i->second; | ||||
} | } | ||||
@@ -129,24 +129,24 @@ istream &operator>>(istream &s, Pattern &o) | |||||
s>>t; | s>>t; | ||||
o.m_NoteMap[id++]=t; | o.m_NoteMap[id++]=t; | ||||
} | } | ||||
return s; | return s; | ||||
} | } | ||||
ostream &operator<<(ostream &s, Pattern &o) | ostream &operator<<(ostream &s, Pattern &o) | ||||
{ | |||||
{ | |||||
int version=1; | int version=1; | ||||
s<<version<<" pattern "<<o.m_NoteMap.size()<<" "; | s<<version<<" pattern "<<o.m_NoteMap.size()<<" "; | ||||
for (map<int,Note>::iterator i = o.m_NoteMap.begin(); | for (map<int,Note>::iterator i = o.m_NoteMap.begin(); | ||||
i!=o.m_NoteMap.end(); i++) | i!=o.m_NoteMap.end(); i++) | ||||
{ | { | ||||
s<<i->second; | s<<i->second; | ||||
} | } | ||||
s<<endl; | s<<endl; | ||||
return s; | return s; | ||||
} | |||||
} | |||||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | ||||
@@ -229,7 +229,7 @@ void Track::CloneSequence(int ID, int nID) | |||||
s->SetYPos(GetSequence(ID)->GetYPos()); | s->SetYPos(GetSequence(ID)->GetYPos()); | ||||
s->SetPatternID(GetSequence(ID)->GetPatternID()); | s->SetPatternID(GetSequence(ID)->GetPatternID()); | ||||
s->SetStartTime(GetSequence(ID)->GetStartTime()); | s->SetStartTime(GetSequence(ID)->GetStartTime()); | ||||
s->SetChannel(GetSequence(ID)->GetChannel()); | |||||
s->SetChannel(GetSequence(ID)->GetChannel()); | |||||
} | } | ||||
// duplicate the sequence, and copy the pattern to it's own version | // duplicate the sequence, and copy the pattern to it's own version | ||||
@@ -435,7 +435,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Sequencing"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "SmoothPlugin.h" | #include "SmoothPlugin.h" | ||||
#include "SmoothPluginGUI.h" | #include "SmoothPluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -44,7 +44,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Control"; | |||||
} | } | ||||
} | } | ||||
@@ -38,7 +38,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Amps/Mixers"; | |||||
} | } | ||||
} | } | ||||
@@ -43,7 +43,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Delay/Sampling"; | |||||
} | } | ||||
} | } | ||||
@@ -35,7 +35,7 @@ int GetID() { | |||||
} | } | ||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Filters/FX"; | |||||
} | } | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#include "WaveTablePlugin.h" | #include "WaveTablePlugin.h" | ||||
#include "WaveTablePluginGUI.h" | #include "WaveTablePluginGUI.h" | ||||
#include <FL/Fl_Button.h> | #include <FL/Fl_Button.h> | ||||
@@ -45,7 +45,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Oscillators"; | |||||
} | } | ||||
} | } | ||||
@@ -41,7 +41,7 @@ int GetID() | |||||
string GetGroupName() | string GetGroupName() | ||||
{ | { | ||||
return "SpiralSound"; | |||||
return "Amps/Mixers"; | |||||
} | } | ||||
} | } | ||||
@@ -56,8 +56,6 @@ static int Numbers[512]; | |||||
static const int MAIN_WIDTH = 700; | static const int MAIN_WIDTH = 700; | ||||
static const int MAIN_HEIGHT = 600; | static const int MAIN_HEIGHT = 600; | ||||
static const int SLIDER_WIDTH = 15; | static const int SLIDER_WIDTH = 15; | ||||
static const int TOOLBOX_HEIGHT = MAIN_HEIGHT; | |||||
static const int TOOLBOX_WIDTH = 132+SLIDER_WIDTH; | |||||
static const int ICON_DEPTH = 3; | static const int ICON_DEPTH = 3; | ||||
static const int COMMENT_ID = -1; | static const int COMMENT_ID = -1; | ||||
@@ -70,8 +68,8 @@ bool SynthModular::m_BlockingOutputPluginIsReady = false; | |||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
DeviceWin::~DeviceWin() | DeviceWin::~DeviceWin() | ||||
{ | |||||
} | |||||
{ | |||||
} | |||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
@@ -81,25 +79,25 @@ m_NextPluginButton(1), | |||||
m_NextPluginButtonXPos(5), | m_NextPluginButtonXPos(5), | ||||
m_NextPluginButtonYPos(20), | m_NextPluginButtonYPos(20), | ||||
m_PauseAudio(false) | m_PauseAudio(false) | ||||
{ | |||||
{ | |||||
m_Info.BUFSIZE = SpiralInfo::BUFSIZE; | m_Info.BUFSIZE = SpiralInfo::BUFSIZE; | ||||
m_Info.FRAGSIZE = SpiralInfo::FRAGSIZE; | m_Info.FRAGSIZE = SpiralInfo::FRAGSIZE; | ||||
m_Info.FRAGCOUNT = SpiralInfo::FRAGCOUNT; | |||||
m_Info.FRAGCOUNT = SpiralInfo::FRAGCOUNT; | |||||
m_Info.SAMPLERATE = SpiralInfo::SAMPLERATE; | m_Info.SAMPLERATE = SpiralInfo::SAMPLERATE; | ||||
m_Info.OUTPUTFILE = SpiralInfo::OUTPUTFILE; | m_Info.OUTPUTFILE = SpiralInfo::OUTPUTFILE; | ||||
m_Info.MIDIFILE = SpiralInfo::MIDIFILE; | |||||
m_Info.MIDIFILE = SpiralInfo::MIDIFILE; | |||||
m_Info.POLY = SpiralInfo::POLY; | m_Info.POLY = SpiralInfo::POLY; | ||||
//m_Info.GUI_COLOUR = SpiralInfo::GUI_COLOUR; | //m_Info.GUI_COLOUR = SpiralInfo::GUI_COLOUR; | ||||
for (int n=0; n<512; n++) Numbers[n]=n; | |||||
for (int n=0; n<512; n++) Numbers[n]=n; | |||||
m_CH.Register("PauseAudio",&m_PauseAudio); | m_CH.Register("PauseAudio",&m_PauseAudio); | ||||
} | } | ||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
SynthModular::~SynthModular() | SynthModular::~SynthModular() | ||||
{ | |||||
{ | |||||
ClearUp(); | ClearUp(); | ||||
PluginManager::Get()->PackUpAndGoHome(); | PluginManager::Get()->PackUpAndGoHome(); | ||||
} | } | ||||
@@ -109,36 +107,36 @@ SynthModular::~SynthModular() | |||||
void SynthModular::ClearUp() | void SynthModular::ClearUp() | ||||
{ | { | ||||
PauseAudio(); | PauseAudio(); | ||||
for(map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | for(map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | ||||
i!=m_DeviceWinMap.end(); i++) | i!=m_DeviceWinMap.end(); i++) | ||||
{ | { | ||||
if (i->second->m_DeviceGUI->GetPluginWindow()) | if (i->second->m_DeviceGUI->GetPluginWindow()) | ||||
{ | { | ||||
i->second->m_DeviceGUI->GetPluginWindow()->hide(); | i->second->m_DeviceGUI->GetPluginWindow()->hide(); | ||||
//m_MainWindow->remove(i->second->m_DeviceGUI->GetPluginWindow()); | |||||
//m_MainWindow->remove(i->second->m_DeviceGUI->GetPluginWindow()); | |||||
} | } | ||||
// deleted by Canvas::Remove()? seems to cause random crashes | // deleted by Canvas::Remove()? seems to cause random crashes | ||||
//delete i->second->m_DeviceGUI; | //delete i->second->m_DeviceGUI; | ||||
delete i->second->m_Device; | delete i->second->m_Device; | ||||
i->second->m_Device=NULL; | i->second->m_Device=NULL; | ||||
} | } | ||||
m_Canvas->Clear(); | m_Canvas->Clear(); | ||||
m_DeviceWinMap.clear(); | m_DeviceWinMap.clear(); | ||||
m_NextID=0; | m_NextID=0; | ||||
ResumeAudio(); | ResumeAudio(); | ||||
} | } | ||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
void SynthModular::Update() | void SynthModular::Update() | ||||
{ | |||||
{ | |||||
m_CH.UpdateDataNow(); | m_CH.UpdateDataNow(); | ||||
if (m_PauseAudio) return; | if (m_PauseAudio) return; | ||||
// for all the plugins | // for all the plugins | ||||
for(map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | for(map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | ||||
i!=m_DeviceWinMap.end(); i++) | i!=m_DeviceWinMap.end(); i++) | ||||
@@ -148,35 +146,35 @@ void SynthModular::Update() | |||||
#ifdef DEBUG_PLUGINS | #ifdef DEBUG_PLUGINS | ||||
cerr<<"Updating channelhandler of plugin "<<i->second->m_PluginID<<endl; | cerr<<"Updating channelhandler of plugin "<<i->second->m_PluginID<<endl; | ||||
#endif | #endif | ||||
// updates the data from the gui thread, if it's not blocking | // updates the data from the gui thread, if it's not blocking | ||||
i->second->m_Device->UpdateChannelHandler(); | i->second->m_Device->UpdateChannelHandler(); | ||||
#ifdef DEBUG_PLUGINS | |||||
#ifdef DEBUG_PLUGINS | |||||
cerr<<"Finished updating"<<endl; | cerr<<"Finished updating"<<endl; | ||||
#endif | #endif | ||||
// run any commands we've received from the GUI's | // run any commands we've received from the GUI's | ||||
i->second->m_Device->ExecuteCommands(); | i->second->m_Device->ExecuteCommands(); | ||||
} | } | ||||
} | } | ||||
// run the plugins (only ones connected to anything) | // run the plugins (only ones connected to anything) | ||||
list<int> ExecutionOrder = m_Canvas->GetGraph()->GetSortedList(); | list<int> ExecutionOrder = m_Canvas->GetGraph()->GetSortedList(); | ||||
for (list<int>::reverse_iterator i=ExecutionOrder.rbegin(); | |||||
for (list<int>::reverse_iterator i=ExecutionOrder.rbegin(); | |||||
i!=ExecutionOrder.rend(); i++) | i!=ExecutionOrder.rend(); i++) | ||||
{ | { | ||||
// use the graphsort order to remove internal latency | // use the graphsort order to remove internal latency | ||||
map<int,DeviceWin*>::iterator di=m_DeviceWinMap.find(*i); | map<int,DeviceWin*>::iterator di=m_DeviceWinMap.find(*i); | ||||
if (di!=m_DeviceWinMap.end() && di->second->m_Device) | |||||
{ | |||||
if (di!=m_DeviceWinMap.end() && di->second->m_Device) | |||||
{ | |||||
#ifdef DEBUG_PLUGINS | #ifdef DEBUG_PLUGINS | ||||
cerr<<"Executing plugin "<<di->second->m_PluginID<<endl; | cerr<<"Executing plugin "<<di->second->m_PluginID<<endl; | ||||
#endif | #endif | ||||
di->second->m_Device->Execute(); | di->second->m_Device->Execute(); | ||||
#ifdef DEBUG_PLUGINS | |||||
#ifdef DEBUG_PLUGINS | |||||
cerr<<"Finished executing"<<endl; | cerr<<"Finished executing"<<endl; | ||||
#endif | #endif | ||||
} | } | ||||
@@ -187,42 +185,42 @@ void SynthModular::Update() | |||||
void SynthModular::UpdatePluginGUIs() | void SynthModular::UpdatePluginGUIs() | ||||
{ | { | ||||
// see if any need deleting | |||||
for (map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | |||||
// see if any need deleting | |||||
for (map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin(); | |||||
i!=m_DeviceWinMap.end(); i++) | i!=m_DeviceWinMap.end(); i++) | ||||
{ | |||||
{ | |||||
if (i->second->m_DeviceGUI->GetPluginWindow()) | if (i->second->m_DeviceGUI->GetPluginWindow()) | ||||
{ | { | ||||
SpiralPluginGUI *GUI=(SpiralPluginGUI *)i->second->m_DeviceGUI->GetPluginWindow(); | SpiralPluginGUI *GUI=(SpiralPluginGUI *)i->second->m_DeviceGUI->GetPluginWindow(); | ||||
GUI->Update(); | GUI->Update(); | ||||
} | } | ||||
if (i->second->m_DeviceGUI->Killed()) | if (i->second->m_DeviceGUI->Killed()) | ||||
{ | { | ||||
PauseAudio(); | PauseAudio(); | ||||
if (i->second->m_Device) | |||||
if (i->second->m_Device) | |||||
{ | { | ||||
delete i->second->m_Device; | delete i->second->m_Device; | ||||
i->second->m_Device=NULL; | i->second->m_Device=NULL; | ||||
} | } | ||||
if (i->second->m_DeviceGUI->GetPluginWindow()) | if (i->second->m_DeviceGUI->GetPluginWindow()) | ||||
{ | { | ||||
i->second->m_DeviceGUI->GetPluginWindow()->hide(); | i->second->m_DeviceGUI->GetPluginWindow()->hide(); | ||||
//m_MainWindow->remove(i->second->m_DeviceGUI->GetPluginWindow()); | //m_MainWindow->remove(i->second->m_DeviceGUI->GetPluginWindow()); | ||||
} | } | ||||
i->second->m_DeviceGUI->Clear(); | i->second->m_DeviceGUI->Clear(); | ||||
m_Canvas->RemoveDevice(i->second->m_DeviceGUI); | |||||
// deleted by Canvas::Remove()? seems to cause random crashes | |||||
//delete i->second->m_DeviceGUI; | |||||
m_Canvas->RemoveDevice(i->second->m_DeviceGUI); | |||||
// deleted by Canvas::Remove()? seems to cause random crashes | |||||
//delete i->second->m_DeviceGUI; | |||||
m_DeviceWinMap.erase(i); | m_DeviceWinMap.erase(i); | ||||
ResumeAudio(); | ResumeAudio(); | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
m_Canvas->Poll(); | m_Canvas->Poll(); | ||||
} | } | ||||
@@ -230,111 +228,112 @@ void SynthModular::UpdatePluginGUIs() | |||||
SpiralWindowType *SynthModular::CreateWindow() | SpiralWindowType *SynthModular::CreateWindow() | ||||
{ | { | ||||
int xoff=0, yoff=10, but=64, gap=MAIN_HEIGHT/5, n=0; | |||||
m_TopWindow = new SpiralWindowType(MAIN_WIDTH, MAIN_HEIGHT, LABEL.c_str()); | m_TopWindow = new SpiralWindowType(MAIN_WIDTH, MAIN_HEIGHT, LABEL.c_str()); | ||||
m_TopWindow->resizable(m_TopWindow); | |||||
m_MainButtons = new Fl_Group(0, 0, but, MAIN_HEIGHT, ""); | |||||
m_MainButtons->type(1); | |||||
m_MainButtons->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_MainButtons->box(FL_FLAT_BOX); | |||||
m_MainButtons->user_data((void*)(this)); | |||||
m_TopWindow->add(m_MainButtons); | |||||
m_Load = new Fl_Button(xoff, 5+yoff, but, but, ""); | |||||
m_Load->box(FL_NO_BOX); | |||||
//m_TopWindow->resizable(m_TopWindow); | |||||
int but=44; | |||||
int ToolbarHeight=but+20; | |||||
m_Topbar = new Fl_Pack (0, 0, MAIN_WIDTH, ToolbarHeight, ""); | |||||
m_Topbar->user_data((void*)(this)); | |||||
m_Topbar->type(FL_HORIZONTAL); | |||||
m_TopWindow->add(m_Topbar); | |||||
m_ToolbarPanel = new Fl_Pack (0, 0, but*5, ToolbarHeight, ""); | |||||
m_ToolbarPanel->user_data((void*)(this)); | |||||
m_ToolbarPanel->type(FL_VERTICAL); | |||||
m_Topbar->add(m_ToolbarPanel); | |||||
m_ToolbarFiller = new Fl_Group (0, 0, but*5, 20, ""); | |||||
m_ToolbarPanel->add(m_ToolbarFiller); | |||||
m_Toolbar = new Fl_Pack (0, 0, but*5, but, ""); | |||||
m_Toolbar->user_data((void*)(this)); | |||||
m_Toolbar->type(FL_HORIZONTAL); | |||||
m_Toolbar->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_ToolbarPanel->add(m_Toolbar); | |||||
m_Load = new Fl_Button(0, 0, but, but, ""); | |||||
Fl_Pixmap *tPix = new Fl_Pixmap(load_xpm); | Fl_Pixmap *tPix = new Fl_Pixmap(load_xpm); | ||||
m_Load->image(tPix->copy(tPix->w(),tPix->h())); | |||||
m_Load->image(tPix->copy()); | |||||
delete tPix; | |||||
m_Load->type(0); | |||||
m_Load->box(FL_PLASTIC_UP_BOX); | |||||
m_Load->color(SpiralSynthModularInfo::GUICOL_Button); | |||||
m_Load->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | m_Load->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_Load->tooltip("Load a patch file"); | |||||
m_Load->labelsize (1); | |||||
m_Load->tooltip("Load a patch file"); | |||||
m_Load->callback((Fl_Callback*)cb_Load); | m_Load->callback((Fl_Callback*)cb_Load); | ||||
m_MainButtons->add(m_Load); | |||||
n++; | |||||
m_Save = new Fl_Button(xoff, n*gap+yoff, but, but, ""); | |||||
m_Save->box(FL_NO_BOX); | |||||
m_Toolbar->add(m_Load); | |||||
m_Save = new Fl_Button(0, 0, but, but, ""); | |||||
tPix = new Fl_Pixmap(save_xpm); | tPix = new Fl_Pixmap(save_xpm); | ||||
m_Save->image(tPix->copy(tPix->w(),tPix->h())); | |||||
delete tPix; | |||||
m_Save->image(tPix->copy()); | |||||
delete tPix; | |||||
m_Save->type(0); | |||||
m_Save->box(FL_PLASTIC_UP_BOX); | |||||
m_Save->color(SpiralSynthModularInfo::GUICOL_Button); | |||||
m_Save->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | m_Save->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_Save->tooltip("Save a patch file"); | |||||
m_Save->labelsize (1); | |||||
m_Save->tooltip("Save a patch file"); | |||||
m_Save->callback((Fl_Callback*)cb_Save); | m_Save->callback((Fl_Callback*)cb_Save); | ||||
m_MainButtons->add(m_Save); | |||||
n++; | |||||
m_New = new Fl_Button(xoff, n*gap+yoff, but, but, ""); | |||||
m_New->box(FL_NO_BOX); | |||||
m_Toolbar->add(m_Save); | |||||
m_New = new Fl_Button(0, 0, but, but, ""); | |||||
tPix = new Fl_Pixmap(new_xpm); | tPix = new Fl_Pixmap(new_xpm); | ||||
m_New->image(tPix->copy(tPix->w(),tPix->h())); | |||||
delete tPix; | |||||
m_New->image(tPix->copy()); | |||||
delete tPix; | |||||
m_New->type(0); | |||||
m_New->box(FL_PLASTIC_UP_BOX); | |||||
m_New->color(SpiralSynthModularInfo::GUICOL_Button); | |||||
m_New->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | m_New->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_New->tooltip("New patch"); | |||||
m_New->labelsize (1); | |||||
m_New->tooltip("New patch"); | |||||
m_New->callback((Fl_Callback*)cb_New); | m_New->callback((Fl_Callback*)cb_New); | ||||
m_MainButtons->add(m_New); | |||||
n++; | |||||
m_Options = new Fl_Button(xoff, n*gap+yoff, but, but, ""); | |||||
m_Options->box(FL_NO_BOX); | |||||
m_Toolbar->add(m_New); | |||||
m_Options = new Fl_Button(0, 0, but, but, ""); | |||||
tPix = new Fl_Pixmap(options_xpm); | tPix = new Fl_Pixmap(options_xpm); | ||||
m_Options->image(tPix->copy(tPix->w(),tPix->h())); | |||||
delete tPix; | |||||
m_Options->image(tPix->copy()); | |||||
delete tPix; | |||||
m_Options->type(0); | |||||
m_Options->box(FL_PLASTIC_UP_BOX); | |||||
m_Options->color(SpiralSynthModularInfo::GUICOL_Button); | |||||
m_Options->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | m_Options->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_Options->tooltip("Options"); | |||||
m_Options->labelsize (1); | |||||
m_Options->tooltip("Options"); | |||||
m_Options->callback((Fl_Callback*)cb_Rload); | m_Options->callback((Fl_Callback*)cb_Rload); | ||||
m_MainButtons->add(m_Options); | |||||
n++; | |||||
m_NewComment = new Fl_Button(xoff, n*gap+yoff, but, but, ""); | |||||
m_NewComment->box(FL_NO_BOX); | |||||
m_Toolbar->add(m_Options); | |||||
m_NewComment = new Fl_Button(0, 0, but, but, ""); | |||||
tPix = new Fl_Pixmap(comment_xpm); | tPix = new Fl_Pixmap(comment_xpm); | ||||
m_NewComment->image(tPix->copy(tPix->w(),tPix->h())); | |||||
delete tPix; | |||||
m_NewComment->image(tPix->copy()); | |||||
delete tPix; | |||||
m_NewComment->type(0); | |||||
m_NewComment->box(FL_PLASTIC_UP_BOX); | |||||
m_NewComment->color(SpiralSynthModularInfo::GUICOL_Button); | |||||
m_NewComment->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | m_NewComment->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_NewComment->tooltip("New comment"); | |||||
m_NewComment->labelsize (1); | |||||
m_NewComment->tooltip("New comment"); | |||||
m_NewComment->callback((Fl_Callback*)cb_NewComment); | m_NewComment->callback((Fl_Callback*)cb_NewComment); | ||||
m_MainButtons->add(m_NewComment); | |||||
n++; | |||||
///////////////// | |||||
int edy = 0; | |||||
Fl_Group *Left = new Fl_Group(MAIN_WIDTH-TOOLBOX_WIDTH,0,TOOLBOX_WIDTH,MAIN_HEIGHT); | |||||
Left->box(FL_FLAT_BOX); | |||||
Left->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
Left->user_data((void*)(this)); | |||||
m_TopWindow->add(Left); | |||||
m_GroupName = new Fl_Box(MAIN_WIDTH-TOOLBOX_WIDTH,0,TOOLBOX_WIDTH,16,""); | |||||
m_GroupName->labelsize(12); | |||||
m_GroupName->color(SpiralSynthModularInfo::GUICOL_Canvas); | |||||
m_GroupName->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE); | |||||
m_GroupName->box(FL_BORDER_BOX); | |||||
Left->add(m_GroupName); | |||||
m_PluginGroupLeft = new Fl_Button(MAIN_WIDTH-TOOLBOX_WIDTH, 0, 16, 16, "@<"); | |||||
m_PluginGroupLeft->callback((Fl_Callback*)cb_PluginGroupLeft); | |||||
Left->add(m_PluginGroupLeft); | |||||
m_Toolbar->add(m_NewComment); | |||||
m_PluginGroupRight = new Fl_Button(MAIN_WIDTH-16, 0, 16, 16, "@>"); | |||||
m_PluginGroupRight->callback((Fl_Callback*)cb_PluginGroupRight); | |||||
Left->add(m_PluginGroupRight); | |||||
m_ToolBox = new Fl_Scroll(MAIN_WIDTH-TOOLBOX_WIDTH,0+edy+16,TOOLBOX_WIDTH, TOOLBOX_HEIGHT-16, ""); | |||||
m_ToolBox->type(Fl_Scroll::VERTICAL_ALWAYS); | |||||
m_ToolBox->box(FL_FLAT_BOX); | |||||
m_ToolBox->labeltype(FL_ENGRAVED_LABEL); | |||||
m_ToolBox->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); | |||||
m_ToolBox->scrollbar.align(FL_ALIGN_RIGHT); | |||||
m_ToolBox->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_ToolBox->user_data((void*)(this)); | |||||
Left->add(m_ToolBox); | |||||
m_TopWindow->resizable(m_ToolBox); | |||||
m_CanvasScroll = new Fl_Scroll(but, 0, MAIN_WIDTH-TOOLBOX_WIDTH-but, MAIN_HEIGHT, ""); | |||||
m_TopWindow->add(m_CanvasScroll); | |||||
m_GroupFiller = new Fl_Group (0, 0, 5, ToolbarHeight, ""); | |||||
m_Topbar->add (m_GroupFiller); | |||||
m_GroupTab = new Fl_Tabs (0, 0, MAIN_WIDTH-m_GroupFiller->w()-but*5, ToolbarHeight, ""); | |||||
m_GroupTab->user_data ((void*)(this)); | |||||
m_GroupTab->callback((Fl_Callback*)cb_GroupTab); | |||||
m_Topbar->add (m_GroupTab); | |||||
m_Topbar->resizable(m_GroupTab); | |||||
///////////////// | |||||
m_CanvasScroll = new Fl_Scroll(0, ToolbarHeight, MAIN_WIDTH, MAIN_HEIGHT-ToolbarHeight, ""); | |||||
m_TopWindow->add(m_CanvasScroll); | |||||
m_TopWindow->resizable(m_CanvasScroll); | m_TopWindow->resizable(m_CanvasScroll); | ||||
m_Canvas = new Fl_Canvas(-5000, -5000, 10000, 10000, ""); | m_Canvas = new Fl_Canvas(-5000, -5000, 10000, 10000, ""); | ||||
m_Canvas->type(1); | m_Canvas->type(1); | ||||
m_Canvas->box(FL_FLAT_BOX); | m_Canvas->box(FL_FLAT_BOX); | ||||
@@ -345,55 +344,16 @@ SpiralWindowType *SynthModular::CreateWindow() | |||||
m_Canvas->SetConnectionCallback((Fl_Callback*)cb_Connection); | m_Canvas->SetConnectionCallback((Fl_Callback*)cb_Connection); | ||||
m_Canvas->SetUnconnectCallback((Fl_Callback*)cb_Unconnect); | m_Canvas->SetUnconnectCallback((Fl_Callback*)cb_Unconnect); | ||||
m_Canvas->SetAddDeviceCallback((Fl_Callback*)cb_NewDeviceFromMenu); | m_Canvas->SetAddDeviceCallback((Fl_Callback*)cb_NewDeviceFromMenu); | ||||
m_CanvasScroll->add(m_Canvas); | |||||
m_CanvasScroll->add(m_Canvas); | |||||
m_SettingsWindow = new SettingsWindow; | m_SettingsWindow = new SettingsWindow; | ||||
m_SettingsWindow->RegisterApp(this); | m_SettingsWindow->RegisterApp(this); | ||||
return m_TopWindow; | return m_TopWindow; | ||||
} | } | ||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
SynthModular::ToolBox::ToolBox(Fl_Scroll *parent, void* user) | |||||
{ | |||||
int Width = 40; | |||||
int Height = 40; | |||||
m_Icon=0; | |||||
m_ToolPack = new Fl_Pack(MAIN_WIDTH-TOOLBOX_WIDTH+5,20,TOOLBOX_WIDTH-10, TOOLBOX_HEIGHT-60,""); | |||||
m_ToolPack->type(FL_VERTICAL); | |||||
m_ToolPack->box(FL_NO_BOX); | |||||
m_ToolPack->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_ToolPack->user_data(user); | |||||
parent->add(m_ToolPack); | |||||
m_IconPack = new Fl_Pack(0,0,TOOLBOX_WIDTH-SLIDER_WIDTH,Height,""); | |||||
m_IconPack->type(FL_HORIZONTAL); | |||||
m_IconPack->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_IconPack->user_data(m_ToolPack->user_data()); | |||||
m_ToolPack->add(m_IconPack); | |||||
} | |||||
void SynthModular::ToolBox::AddIcon(Fl_Button *Icon) | |||||
{ | |||||
int Width = 40; | |||||
int Height = 40; | |||||
if (m_Icon>=ICON_DEPTH) | |||||
{ | |||||
m_Icon=0; | |||||
m_IconPack = new Fl_Pack(0,0,TOOLBOX_WIDTH-SLIDER_WIDTH,Height,""); | |||||
m_IconPack->type(FL_HORIZONTAL); | |||||
m_IconPack->color(SpiralSynthModularInfo::GUICOL_Tool); | |||||
m_IconPack->user_data(m_ToolPack->user_data()); | |||||
m_ToolPack->add(m_IconPack); | |||||
} | |||||
m_IconPack->add(Icon); | |||||
m_Icon++; | |||||
} | |||||
vector<string> SynthModular::BuildPluginList(const string &Path) | vector<string> SynthModular::BuildPluginList(const string &Path) | ||||
{ | { | ||||
// Scan plugin path for plugins. | // Scan plugin path for plugins. | ||||
@@ -406,13 +366,13 @@ vector<string> SynthModular::BuildPluginList(const string &Path) | |||||
vector<string> ret; | vector<string> ret; | ||||
dp = opendir(path); | dp = opendir(path); | ||||
if (!dp) | |||||
if (!dp) | |||||
{ | { | ||||
cerr << "WARNING: Could not open path " << path << endl; | cerr << "WARNING: Could not open path " << path << endl; | ||||
} | } | ||||
else | |||||
else | |||||
{ | { | ||||
while ((ep = readdir(dp))) | |||||
while ((ep = readdir(dp))) | |||||
{ | { | ||||
// Need full path | // Need full path | ||||
@@ -420,23 +380,23 @@ vector<string> SynthModular::BuildPluginList(const string &Path) | |||||
fullpath.append(ep->d_name); | fullpath.append(ep->d_name); | ||||
// Stat file to get type | // Stat file to get type | ||||
if (!stat(fullpath.c_str(), &sb)) | |||||
if (!stat(fullpath.c_str(), &sb)) | |||||
{ | { | ||||
// We only want regular files | // We only want regular files | ||||
if (S_ISREG(sb.st_mode)) | |||||
if (S_ISREG(sb.st_mode)) | |||||
{ | { | ||||
// We're not fussed about resolving symbols yet, since we are just | // We're not fussed about resolving symbols yet, since we are just | ||||
// checking if it's a DLL. | // checking if it's a DLL. | ||||
handle = dlopen(fullpath.c_str(), RTLD_LAZY); | handle = dlopen(fullpath.c_str(), RTLD_LAZY); | ||||
if (!handle) | |||||
if (!handle) | |||||
{ | { | ||||
cerr << "WARNING: File " << path << ep->d_name | cerr << "WARNING: File " << path << ep->d_name | ||||
<< " could not be examined" << endl; | << " could not be examined" << endl; | ||||
cerr << "dlerror() output:" << endl; | cerr << "dlerror() output:" << endl; | ||||
cerr << dlerror() << endl; | cerr << dlerror() << endl; | ||||
} | |||||
else | |||||
} | |||||
else | |||||
{ | { | ||||
// It's a DLL. Add name to list | // It's a DLL. Add name to list | ||||
ret.push_back(ep->d_name); | ret.push_back(ep->d_name); | ||||
@@ -445,7 +405,7 @@ vector<string> SynthModular::BuildPluginList(const string &Path) | |||||
} | } | ||||
} | } | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
@@ -457,14 +417,14 @@ void SynthModular::LoadPlugins(string pluginPath) | |||||
int SWidth = 256; | int SWidth = 256; | ||||
int SHeight = 256; | int SHeight = 256; | ||||
Fl_Pixmap pic(SSM_xpm); | Fl_Pixmap pic(SSM_xpm); | ||||
Fl_Double_Window* Splash = new Fl_Double_Window((Fl::w()/2)-(SWidth/2), | Fl_Double_Window* Splash = new Fl_Double_Window((Fl::w()/2)-(SWidth/2), | ||||
(Fl::h()/2)-(SHeight/2), | (Fl::h()/2)-(SHeight/2), | ||||
SWidth,SHeight,"SSM"); | SWidth,SHeight,"SSM"); | ||||
Splash->border(0); | Splash->border(0); | ||||
Fl_Box* pbut = new Fl_Box(0,8,SWidth,SHeight,""); | Fl_Box* pbut = new Fl_Box(0,8,SWidth,SHeight,""); | ||||
pbut->box(FL_NO_BOX); | pbut->box(FL_NO_BOX); | ||||
pic.label(pbut); | pic.label(pbut); | ||||
@@ -516,37 +476,39 @@ void SynthModular::LoadPlugins(string pluginPath) | |||||
#endif | #endif | ||||
Fl_Button *NewButton = new Fl_Button(0,0,Width,Height,""); | Fl_Button *NewButton = new Fl_Button(0,0,Width,Height,""); | ||||
NewButton->labelsize(10); | |||||
NewButton->user_data((void*)(this)); | |||||
NewButton->labelsize(1); | |||||
Fl_Pixmap *tPix = new Fl_Pixmap(PluginManager::Get()->GetPlugin(ID)->GetIcon()); | Fl_Pixmap *tPix = new Fl_Pixmap(PluginManager::Get()->GetPlugin(ID)->GetIcon()); | ||||
NewButton->image(tPix->copy(tPix->w(),tPix->h())); | NewButton->image(tPix->copy(tPix->w(),tPix->h())); | ||||
delete tPix; | delete tPix; | ||||
string GroupName = PluginManager::Get()->GetPlugin(ID)->GetGroupName(); | string GroupName = PluginManager::Get()->GetPlugin(ID)->GetGroupName(); | ||||
ToolBox* Tool=NULL; | |||||
Fl_Pack* the_group=NULL; | |||||
map<string,ToolBox*>::iterator ti=m_PluginGroupMap.find(GroupName); | |||||
if (ti==m_PluginGroupMap.end()) | |||||
// find or create this group, and add an icon | |||||
map<string,Fl_Pack*>::iterator gi=m_PluginGroupMap.find(GroupName); | |||||
if (gi==m_PluginGroupMap.end()) | |||||
{ | { | ||||
if (Tool) Tool->GetToolPack()->hide(); | |||||
Tool = new ToolBox(m_ToolBox,(void*)(this)); | |||||
m_PluginGroupMap[GroupName]=Tool; | |||||
Tool->GetToolPack()->hide(); | |||||
the_group = new Fl_Pack (m_GroupTab->x(), 20, m_GroupTab->w(), m_GroupTab->h()-20, GroupName.c_str()); | |||||
the_group->type(FL_HORIZONTAL); | |||||
the_group->labelsize(8); | |||||
the_group->user_data((void*)(this)); | |||||
//m_GroupTab->add(the_group); | |||||
m_GroupTab->value(the_group); | |||||
m_PluginGroupMap[GroupName]=the_group; | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
Tool=ti->second; | |||||
the_group=gi->second; | |||||
} | } | ||||
Tool->AddIcon(NewButton); | |||||
NewButton->type(0); | |||||
NewButton->box(FL_PLASTIC_UP_BOX); | |||||
NewButton->align(FL_ALIGN_INSIDE|FL_ALIGN_TOP); | |||||
NewButton->type(0); | |||||
NewButton->box(FL_PLASTIC_UP_BOX); | |||||
NewButton->color(SpiralSynthModularInfo::GUICOL_Button); | NewButton->color(SpiralSynthModularInfo::GUICOL_Button); | ||||
NewButton->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | NewButton->selection_color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
the_group->add(NewButton); | |||||
string tooltip=*i; | string tooltip=*i; | ||||
// find the first / if there is one, and get rid of everything before and including it | |||||
// find the first / if there is one, and get rid of everything before and including it | |||||
unsigned int p = tooltip.find ('/'); | unsigned int p = tooltip.find ('/'); | ||||
if (p < tooltip.length()) tooltip.erase (0, p); | if (p < tooltip.length()) tooltip.erase (0, p); | ||||
// find last . and get rid of everything after and including it | // find last . and get rid of everything after and including it | ||||
@@ -557,31 +519,28 @@ void SynthModular::LoadPlugins(string pluginPath) | |||||
splashtext->label (tooltip.c_str()); | splashtext->label (tooltip.c_str()); | ||||
Splash->redraw(); | Splash->redraw(); | ||||
NewButton->tooltip (tooltip.c_str()); | NewButton->tooltip (tooltip.c_str()); | ||||
NewButton->callback((Fl_Callback*)cb_NewDevice,&Numbers[ID]); | |||||
NewButton->callback((Fl_Callback*)cb_NewDevice,&Numbers[ID]); | |||||
NewButton->show(); | NewButton->show(); | ||||
m_DeviceVec.push_back(NewButton); | |||||
m_ToolBox->redraw(); | |||||
m_DeviceVec.push_back(NewButton); | |||||
the_group->redraw(); | |||||
m_NextPluginButton++; | m_NextPluginButton++; | ||||
Fl::check(); | Fl::check(); | ||||
} | } | ||||
} | } | ||||
map<string,Fl_Pack*>::iterator PlugGrp; | |||||
for (PlugGrp = m_PluginGroupMap.begin(); PlugGrp!= m_PluginGroupMap.end(); ++PlugGrp) | |||||
m_GroupTab->add(PlugGrp->second); | |||||
// try to show the SpiralSound group | // try to show the SpiralSound group | ||||
m_CurrentGroup=m_PluginGroupMap.find("SpiralSound"); | |||||
if (m_CurrentGroup==m_PluginGroupMap.end()) | |||||
{ | |||||
// can't find it - show the first plugin group | |||||
m_CurrentGroup=m_PluginGroupMap.begin(); | |||||
m_CurrentGroup->second->GetToolPack()->show(); | |||||
m_GroupName->label(m_CurrentGroup->first.c_str()); | |||||
} | |||||
m_CurrentGroup->second->GetToolPack()->show(); | |||||
m_GroupName->label(m_CurrentGroup->first.c_str()); | |||||
PlugGrp = m_PluginGroupMap.find("SpiralSound"); | |||||
// can't find it - show the first plugin group | |||||
if (PlugGrp==m_PluginGroupMap.end()) PlugGrp=m_PluginGroupMap.begin(); | |||||
m_GroupTab->value(PlugGrp->second); | |||||
Splash->hide(); | Splash->hide(); | ||||
delete Splash; | delete Splash; | ||||
} | } | ||||
@@ -592,7 +551,7 @@ DeviceGUIInfo SynthModular::BuildDeviceGUIInfo(PluginInfo &PInfo) | |||||
{ | { | ||||
DeviceGUIInfo Info; | DeviceGUIInfo Info; | ||||
int Height=50; | int Height=50; | ||||
// tweak the size if we have too many ins/outs | // tweak the size if we have too many ins/outs | ||||
if (PInfo.NumInputs>4 || PInfo.NumOutputs>4) | if (PInfo.NumInputs>4 || PInfo.NumOutputs>4) | ||||
{ | { | ||||
@@ -605,7 +564,7 @@ DeviceGUIInfo SynthModular::BuildDeviceGUIInfo(PluginInfo &PInfo) | |||||
Height=PInfo.NumInputs*10+5; | Height=PInfo.NumInputs*10+5; | ||||
} | } | ||||
} | } | ||||
// Make the guiinfo struct | // Make the guiinfo struct | ||||
Info.XPos = 0; | Info.XPos = 0; | ||||
Info.YPos = 0; | Info.YPos = 0; | ||||
@@ -616,7 +575,7 @@ DeviceGUIInfo SynthModular::BuildDeviceGUIInfo(PluginInfo &PInfo) | |||||
Info.Name = PInfo.Name; | Info.Name = PInfo.Name; | ||||
Info.PortTips = PInfo.PortTips; | Info.PortTips = PInfo.PortTips; | ||||
Info.PortTypes = PInfo.PortTypes; | Info.PortTypes = PInfo.PortTypes; | ||||
return Info; | return Info; | ||||
} | } | ||||
@@ -626,9 +585,9 @@ DeviceWin* SynthModular::NewDeviceWin(int n, int x, int y) | |||||
{ | { | ||||
DeviceWin *nlw = new DeviceWin; | DeviceWin *nlw = new DeviceWin; | ||||
const HostsideInfo* Plugin=PluginManager::Get()->GetPlugin(n); | const HostsideInfo* Plugin=PluginManager::Get()->GetPlugin(n); | ||||
if (!Plugin) return NULL; | if (!Plugin) return NULL; | ||||
nlw->m_Device=Plugin->CreateInstance(); | nlw->m_Device=Plugin->CreateInstance(); | ||||
if (!nlw->m_Device) | if (!nlw->m_Device) | ||||
@@ -639,26 +598,26 @@ DeviceWin* SynthModular::NewDeviceWin(int n, int x, int y) | |||||
nlw->m_Device->SetUpdateCallback(cb_Update); | nlw->m_Device->SetUpdateCallback(cb_Update); | ||||
nlw->m_Device->SetParent((void*)this); | nlw->m_Device->SetParent((void*)this); | ||||
PluginInfo PInfo = nlw->m_Device->Initialise(&m_Info); | |||||
PluginInfo PInfo = nlw->m_Device->Initialise(&m_Info); | |||||
SpiralGUIType *temp = nlw->m_Device->CreateGUI(); | SpiralGUIType *temp = nlw->m_Device->CreateGUI(); | ||||
Fl_Pixmap *Pix = new Fl_Pixmap(Plugin->GetIcon()); | Fl_Pixmap *Pix = new Fl_Pixmap(Plugin->GetIcon()); | ||||
nlw->m_PluginID = n; | nlw->m_PluginID = n; | ||||
if (temp) | |||||
{ | |||||
if (temp) | |||||
{ | |||||
temp->position(x+10,y); | temp->position(x+10,y); | ||||
} | } | ||||
DeviceGUIInfo Info=BuildDeviceGUIInfo(PInfo); | DeviceGUIInfo Info=BuildDeviceGUIInfo(PInfo); | ||||
Info.XPos = x; //TOOLBOX_WIDTH+(rand()%400); | Info.XPos = x; //TOOLBOX_WIDTH+(rand()%400); | ||||
Info.YPos = y; //rand()%400; | Info.YPos = y; //rand()%400; | ||||
nlw->m_DeviceGUI = new Fl_DeviceGUI(Info, temp, Pix, nlw->m_Device->IsTerminal()); | nlw->m_DeviceGUI = new Fl_DeviceGUI(Info, temp, Pix, nlw->m_Device->IsTerminal()); | ||||
m_Canvas->add(nlw->m_DeviceGUI); | m_Canvas->add(nlw->m_DeviceGUI); | ||||
m_Canvas->redraw(); | m_Canvas->redraw(); | ||||
return nlw; | |||||
return nlw; | |||||
} | } | ||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
@@ -666,11 +625,11 @@ DeviceWin* SynthModular::NewDeviceWin(int n, int x, int y) | |||||
void SynthModular::AddDevice(int n, int x=-1, int y=-1) | void SynthModular::AddDevice(int n, int x=-1, int y=-1) | ||||
{ | { | ||||
//cerr<<"Adding "<<m_NextID<<endl; | //cerr<<"Adding "<<m_NextID<<endl; | ||||
if (x==-1) | if (x==-1) | ||||
{ | |||||
x = m_CanvasScroll->x()+50; | |||||
y = m_CanvasScroll->y()+50; | |||||
{ | |||||
x = m_CanvasScroll->x()+50; | |||||
y = m_CanvasScroll->y()+50; | |||||
} | } | ||||
DeviceWin* temp = NewDeviceWin(n,x,y); | DeviceWin* temp = NewDeviceWin(n,x,y); | ||||
@@ -687,7 +646,7 @@ void SynthModular::AddDevice(int n, int x=-1, int y=-1) | |||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
DeviceWin* SynthModular::NewComment(int n, int x=-1, int y=-1) | DeviceWin* SynthModular::NewComment(int n, int x=-1, int y=-1) | ||||
{ | |||||
{ | |||||
DeviceWin *nlw = new DeviceWin; | DeviceWin *nlw = new DeviceWin; | ||||
if (x==-1) | if (x==-1) | ||||
@@ -708,7 +667,7 @@ DeviceWin* SynthModular::NewComment(int n, int x=-1, int y=-1) | |||||
Info.NumInputs = 0; | Info.NumInputs = 0; | ||||
Info.NumOutputs = 0; | Info.NumOutputs = 0; | ||||
Info.Name = ""; | Info.Name = ""; | ||||
nlw->m_DeviceGUI = new Fl_CommentGUI(Info, NULL, NULL); | nlw->m_DeviceGUI = new Fl_CommentGUI(Info, NULL, NULL); | ||||
m_Canvas->add(nlw->m_DeviceGUI); | m_Canvas->add(nlw->m_DeviceGUI); | ||||
@@ -760,7 +719,7 @@ void SynthModular::UpdateHostInfo() | |||||
ifs>>*this; | ifs>>*this; | ||||
system("rm -f ___temp.ssmtmp"); | system("rm -f ___temp.ssmtmp"); | ||||
} | } | ||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
@@ -804,7 +763,7 @@ istream &operator>>(istream &s, SynthModular &o) | |||||
s>>EditWinX>>EditWinY>>EditWinW>>EditWinH; | s>>EditWinX>>EditWinY>>EditWinW>>EditWinH; | ||||
//o.m_MainWindow->resize(MainWinX,MainWinY,MainWinW,MainWinH); | //o.m_MainWindow->resize(MainWinX,MainWinY,MainWinW,MainWinH); | ||||
//o.m_EditorWindow->resize(EditWinX,EditWinY,EditWinW,EditWinH); | |||||
//o.m_EditorWindow->resize(EditWinX,EditWinY,EditWinW,EditWinH); | |||||
} | } | ||||
int Num, ID, PluginID, x,y,ps,px,py; | int Num, ID, PluginID, x,y,ps,px,py; | ||||
@@ -869,7 +828,7 @@ istream &operator>>(istream &s, SynthModular &o) | |||||
if (temp) | if (temp) | ||||
{ | { | ||||
temp->m_DeviceGUI->SetID(ID); | temp->m_DeviceGUI->SetID(ID); | ||||
if (ver>3) | |||||
if (ver>3) | |||||
{ | { | ||||
// set the titlebars | // set the titlebars | ||||
temp->m_DeviceGUI->SetName(Name); | temp->m_DeviceGUI->SetName(Name); | ||||
@@ -930,7 +889,7 @@ ostream &operator<<(ostream &s, SynthModular &o) | |||||
o.PauseAudio(); | o.PauseAudio(); | ||||
s<<"SpiralSynthModular File Ver "<<FILE_VERSION<<endl; | s<<"SpiralSynthModular File Ver "<<FILE_VERSION<<endl; | ||||
// make external files dir | // make external files dir | ||||
bool ExternalDirUsed=false; | bool ExternalDirUsed=false; | ||||
string command("mkdir "+o.m_FilePath+"_files"); | string command("mkdir "+o.m_FilePath+"_files"); | ||||
@@ -960,7 +919,7 @@ ostream &operator<<(ostream &s, SynthModular &o) | |||||
s<<i->second->m_DeviceGUI->y()<<" "; | s<<i->second->m_DeviceGUI->y()<<" "; | ||||
s<<i->second->m_DeviceGUI->GetName().size()<<" "; | s<<i->second->m_DeviceGUI->GetName().size()<<" "; | ||||
s<<i->second->m_DeviceGUI->GetName()<<" "; | s<<i->second->m_DeviceGUI->GetName()<<" "; | ||||
if (i->second->m_DeviceGUI->GetPluginWindow()) | if (i->second->m_DeviceGUI->GetPluginWindow()) | ||||
{ | { | ||||
s<<i->second->m_DeviceGUI->GetPluginWindow()->visible()<<" "; | s<<i->second->m_DeviceGUI->GetPluginWindow()->visible()<<" "; | ||||
@@ -1068,13 +1027,13 @@ inline void SynthModular::cb_Save_i(Fl_Button* o, void* v) | |||||
if (!Pawfal_YesNo("File [%s] exists, overwrite?",fn)) | if (!Pawfal_YesNo("File [%s] exists, overwrite?",fn)) | ||||
{ | { | ||||
return; | return; | ||||
} | |||||
} | |||||
} | } | ||||
ofstream of(fn); | ofstream of(fn); | ||||
if (of) | if (of) | ||||
{ | |||||
{ | |||||
m_FilePath=fn; | m_FilePath=fn; | ||||
of<<*this; | of<<*this; | ||||
@@ -1098,7 +1057,7 @@ inline void SynthModular::cb_New_i(Fl_Button* o, void* v) | |||||
if (m_DeviceWinMap.size()>0 && !Pawfal_YesNo("New - Lose changes to current patch?")) | if (m_DeviceWinMap.size()>0 && !Pawfal_YesNo("New - Lose changes to current patch?")) | ||||
{ | { | ||||
return; | return; | ||||
} | |||||
} | |||||
m_TopWindow->label(TITLEBAR.c_str()); | m_TopWindow->label(TITLEBAR.c_str()); | ||||
@@ -1111,7 +1070,7 @@ void SynthModular::cb_New(Fl_Button* o, void* v) | |||||
inline void SynthModular::cb_NewDevice_i(Fl_Button* o, void* v) | inline void SynthModular::cb_NewDevice_i(Fl_Button* o, void* v) | ||||
{ | { | ||||
AddDevice(*((int*)v)); | |||||
AddDevice(*((int*)v)); | |||||
} | } | ||||
void SynthModular::cb_NewDevice(Fl_Button* o, void* v) | void SynthModular::cb_NewDevice(Fl_Button* o, void* v) | ||||
{((SynthModular*)(o->parent()->user_data()))->cb_NewDevice_i(o,v);} | {((SynthModular*)(o->parent()->user_data()))->cb_NewDevice_i(o,v);} | ||||
@@ -1136,36 +1095,26 @@ void SynthModular::cb_NewComment(Fl_Button* o, void* v) | |||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
inline void SynthModular::cb_PluginGroupLeft_i(Fl_Button* o, void* v) | |||||
// andy preston | |||||
inline void SynthModular::cb_GroupTab_i(Fl_Tabs* o, void* v) | |||||
{ | { | ||||
m_CurrentGroup->second->GetToolPack()->hide(); | |||||
m_CurrentGroup++; | |||||
if (m_CurrentGroup==m_PluginGroupMap.end()) m_CurrentGroup=m_PluginGroupMap.begin(); | |||||
m_CurrentGroup->second->GetToolPack()->show(); | |||||
m_GroupName->label(m_CurrentGroup->first.c_str()); | |||||
m_GroupTab->redraw(); | |||||
//m_CurrentGroup->second->GetToolPack()->hide(); | |||||
//m_CurrentGroup = o->value(); | |||||
// if (m_CurrentGroup==m_PluginGroupMap.end()) m_CurrentGroup=m_PluginGroupMap.begin(); | |||||
// m_CurrentGroup->second->GetToolPack()->show(); | |||||
// m_GroupName->label(m_CurrentGroup->first.c_str()); | |||||
} | } | ||||
void SynthModular::cb_PluginGroupLeft(Fl_Button* o, void* v) | |||||
{((SynthModular*)(o->parent()->user_data()))->cb_PluginGroupLeft_i(o,v);} | |||||
////////////////////////////////////////////////////////// | |||||
inline void SynthModular::cb_PluginGroupRight_i(Fl_Button* o, void* v) | |||||
{ | |||||
m_CurrentGroup->second->GetToolPack()->hide(); | |||||
m_CurrentGroup++; | |||||
if (m_CurrentGroup==m_PluginGroupMap.end()) m_CurrentGroup=m_PluginGroupMap.begin(); | |||||
m_CurrentGroup->second->GetToolPack()->show(); | |||||
m_GroupName->label(m_CurrentGroup->first.c_str()); | |||||
} | |||||
void SynthModular::cb_PluginGroupRight(Fl_Button* o, void* v) | |||||
{((SynthModular*)(o->parent()->user_data()))->cb_PluginGroupRight_i(o,v);} | |||||
void SynthModular::cb_GroupTab(Fl_Tabs* o, void* v) | |||||
{((SynthModular*)(o->parent()->user_data()))->cb_GroupTab_i(o,v);} | |||||
////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////// | ||||
inline void SynthModular::cb_Rload_i(Fl_Button* o, void* v) | inline void SynthModular::cb_Rload_i(Fl_Button* o, void* v) | ||||
{ | { | ||||
m_SettingsWindow->show(); | m_SettingsWindow->show(); | ||||
/*PluginManager::Get()->UnloadAll(); | /*PluginManager::Get()->UnloadAll(); | ||||
m_ToolBox->remove(m_ToolPack); | m_ToolBox->remove(m_ToolPack); | ||||
@@ -1176,9 +1125,9 @@ inline void SynthModular::cb_Rload_i(Fl_Button* o, void* v) | |||||
m_ToolPack->box(FL_NO_BOX); | m_ToolPack->box(FL_NO_BOX); | ||||
m_ToolPack->color(SpiralSynthModularInfo::GUICOL_Tool); | m_ToolPack->color(SpiralSynthModularInfo::GUICOL_Tool); | ||||
m_ToolPack->user_data((void*)(this)); | m_ToolPack->user_data((void*)(this)); | ||||
m_ToolBox->add(m_ToolPack); | |||||
m_ToolBox->add(m_ToolPack); | |||||
m_ToolBox->redraw(); | m_ToolBox->redraw(); | ||||
LoadPlugins();*/ | LoadPlugins();*/ | ||||
} | } | ||||
void SynthModular::cb_Rload(Fl_Button* o, void* v) | void SynthModular::cb_Rload(Fl_Button* o, void* v) | ||||
@@ -1190,11 +1139,11 @@ inline void SynthModular::cb_Connection_i(Fl_Canvas* o, void* v) | |||||
{ | { | ||||
CanvasWire *Wire; | CanvasWire *Wire; | ||||
Wire=(CanvasWire*)v; | Wire=(CanvasWire*)v; | ||||
map<int,DeviceWin*>::iterator si=m_DeviceWinMap.find(Wire->OutputID); | map<int,DeviceWin*>::iterator si=m_DeviceWinMap.find(Wire->OutputID); | ||||
if (si==m_DeviceWinMap.end()) | if (si==m_DeviceWinMap.end()) | ||||
{ | { | ||||
char num[32]; | |||||
char num[32]; | |||||
sprintf(num,"%d",Wire->OutputID); | sprintf(num,"%d",Wire->OutputID); | ||||
SpiralInfo::Alert("Warning: Connection problem - can't find source "+string(num)); | SpiralInfo::Alert("Warning: Connection problem - can't find source "+string(num)); | ||||
return; | return; | ||||
@@ -1225,7 +1174,7 @@ inline void SynthModular::cb_Connection_i(Fl_Canvas* o, void* v) | |||||
sprintf(num,"%d,%d",Wire->InputID,Wire->InputPort); | sprintf(num,"%d,%d",Wire->InputID,Wire->InputPort); | ||||
SpiralInfo::Alert("Warning: Connection problem - can't find source input "+string(num)); | SpiralInfo::Alert("Warning: Connection problem - can't find source input "+string(num)); | ||||
return; | return; | ||||
} | |||||
} | |||||
} | } | ||||
void SynthModular::cb_Connection(Fl_Canvas* o, void* v) | void SynthModular::cb_Connection(Fl_Canvas* o, void* v) | ||||
{((SynthModular*)(o->user_data()))->cb_Connection_i(o,v);} | {((SynthModular*)(o->user_data()))->cb_Connection_i(o,v);} | ||||
@@ -1261,7 +1210,7 @@ void SynthModular::cb_UpdatePluginInfo(int ID, void *PInfo) | |||||
if (i!=m_DeviceWinMap.end()) | if (i!=m_DeviceWinMap.end()) | ||||
{ | { | ||||
DeviceGUIInfo Info=BuildDeviceGUIInfo(*((PluginInfo*)PInfo)); | DeviceGUIInfo Info=BuildDeviceGUIInfo(*((PluginInfo*)PInfo)); | ||||
(*i).second->m_DeviceGUI->Setup(Info); | (*i).second->m_DeviceGUI->Setup(Info); | ||||
(*i).second->m_DeviceGUI->redraw(); | (*i).second->m_DeviceGUI->redraw(); | ||||
} | } | ||||
@@ -14,7 +14,7 @@ | |||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | |||||
*/ | |||||
#ifndef SPIRALSYNTHMODULAR | #ifndef SPIRALSYNTHMODULAR | ||||
#define SPIRALSYNTHMODULAR | #define SPIRALSYNTHMODULAR | ||||
@@ -29,6 +29,7 @@ | |||||
#include <FL/Fl_Scroll.H> | #include <FL/Fl_Scroll.H> | ||||
#include <FL/Fl_Pack.H> | #include <FL/Fl_Pack.H> | ||||
#include <FL/Fl_Tile.H> | #include <FL/Fl_Tile.H> | ||||
#include <FL/Fl_Tabs.H> | |||||
#include <sstream> | #include <sstream> | ||||
#include <iostream> | #include <iostream> | ||||
#include <map> | #include <map> | ||||
@@ -52,7 +53,7 @@ class DeviceWin | |||||
public: | public: | ||||
DeviceWin() : m_DeviceGUI(NULL) {} | DeviceWin() : m_DeviceGUI(NULL) {} | ||||
~DeviceWin(); | ~DeviceWin(); | ||||
int m_PluginID; | int m_PluginID; | ||||
SpiralPlugin* m_Device; | SpiralPlugin* m_Device; | ||||
Fl_DeviceGUI* m_DeviceGUI; | Fl_DeviceGUI* m_DeviceGUI; | ||||
@@ -63,20 +64,20 @@ class SynthModular | |||||
public: | public: | ||||
SynthModular(); | SynthModular(); | ||||
~SynthModular(); | ~SynthModular(); | ||||
SpiralWindowType * CreateWindow(); | SpiralWindowType * CreateWindow(); | ||||
void LoadPlugins(string pluginPath); | void LoadPlugins(string pluginPath); | ||||
void Update(); | void Update(); | ||||
void AddDevice(int n, int x, int y); | void AddDevice(int n, int x, int y); | ||||
void AddComment(int n); | void AddComment(int n); | ||||
void ClearUp(); | |||||
void UpdateHostInfo(); | |||||
void ClearUp(); | |||||
void UpdateHostInfo(); | |||||
bool CallbackMode() { return m_CallbackUpdateMode; } | bool CallbackMode() { return m_CallbackUpdateMode; } | ||||
bool IsBlockingOutputPluginReady() { return m_BlockingOutputPluginIsReady; } | bool IsBlockingOutputPluginReady() { return m_BlockingOutputPluginIsReady; } | ||||
void UpdatePluginGUIs(); | void UpdatePluginGUIs(); | ||||
void LoadPatch(const char *fn); | |||||
void PauseAudio() | |||||
void LoadPatch(const char *fn); | |||||
void PauseAudio() | |||||
{ | { | ||||
m_CH.Set("PauseAudio",true); | m_CH.Set("PauseAudio",true); | ||||
m_CH.Wait(); | m_CH.Wait(); | ||||
@@ -86,10 +87,10 @@ public: | |||||
{ | { | ||||
m_CH.Set("PauseAudio",false); | m_CH.Set("PauseAudio",false); | ||||
} | } | ||||
// only for audio thread | // only for audio thread | ||||
bool IsPaused() { return m_PauseAudio; } | bool IsPaused() { return m_PauseAudio; } | ||||
private: | private: | ||||
vector<string> BuildPluginList(const string &Path); | vector<string> BuildPluginList(const string &Path); | ||||
@@ -101,66 +102,46 @@ private: | |||||
static DeviceGUIInfo BuildDeviceGUIInfo(PluginInfo &PInfo); | static DeviceGUIInfo BuildDeviceGUIInfo(PluginInfo &PInfo); | ||||
// currently static, to allow the callback | |||||
// cb_UpdatePluginInfo to access the map. | |||||
// currently static, to allow the callback | |||||
// cb_UpdatePluginInfo to access the map. | |||||
static map<int,DeviceWin*> m_DeviceWinMap; | static map<int,DeviceWin*> m_DeviceWinMap; | ||||
int m_NextID; | int m_NextID; | ||||
int m_NextPluginButton; | int m_NextPluginButton; | ||||
int m_NextPluginButtonXPos; | int m_NextPluginButtonXPos; | ||||
int m_NextPluginButtonYPos; | int m_NextPluginButtonYPos; | ||||
static bool m_CallbackUpdateMode; | static bool m_CallbackUpdateMode; | ||||
static bool m_BlockingOutputPluginIsReady; | static bool m_BlockingOutputPluginIsReady; | ||||
string m_FilePath; | string m_FilePath; | ||||
// Main GUI stuff | // Main GUI stuff | ||||
void CreateGUI(int xoff=0, int yoff=0, char *name=""); | void CreateGUI(int xoff=0, int yoff=0, char *name=""); | ||||
Fl_Group *m_MainButtons; | |||||
Fl_Pack *m_Topbar, *m_ToolbarPanel, *m_Toolbar; | |||||
Fl_Group *m_ToolbarFiller, *m_GroupFiller; | |||||
Fl_Button *m_Load; | Fl_Button *m_Load; | ||||
Fl_Button *m_Save; | Fl_Button *m_Save; | ||||
Fl_Button *m_New; | Fl_Button *m_New; | ||||
Fl_Button *m_OpenEditor; | |||||
Fl_Button *m_OpenEditor; | |||||
Fl_Button *m_Options; | Fl_Button *m_Options; | ||||
Fl_Canvas *m_Canvas; | |||||
Fl_Scroll *m_CanvasScroll; | |||||
Fl_Scroll *m_ToolBox; | |||||
Fl_Button *m_NewComment; | Fl_Button *m_NewComment; | ||||
Fl_Box *m_GroupName; | |||||
Fl_Button *m_PluginGroupLeft; | |||||
Fl_Button *m_PluginGroupRight; | |||||
Fl_Tabs *m_GroupTab; | |||||
Fl_Canvas *m_Canvas; | |||||
Fl_Scroll *m_CanvasScroll; | |||||
map<string,Fl_Pack*> m_PluginGroupMap; | |||||
class ToolBox | |||||
{ | |||||
public: | |||||
ToolBox(Fl_Scroll *parent, void* user); | |||||
~ToolBox() {} | |||||
void AddIcon(Fl_Button *Icon); | |||||
Fl_Pack *GetToolPack() { return m_ToolPack; } | |||||
private: | |||||
Fl_Pack *m_ToolPack; | |||||
Fl_Pack *m_IconPack; | |||||
int m_Icon; | |||||
}; | |||||
map<string,ToolBox*> m_PluginGroupMap; | |||||
map<string,ToolBox*>::iterator m_CurrentGroup; | |||||
SettingsWindow *m_SettingsWindow; | SettingsWindow *m_SettingsWindow; | ||||
SpiralWindowType* m_TopWindow; | SpiralWindowType* m_TopWindow; | ||||
vector<Fl_Button*> m_DeviceVec; | vector<Fl_Button*> m_DeviceVec; | ||||
ChannelHandler m_CH; // used for threadsafe communication | ChannelHandler m_CH; // used for threadsafe communication | ||||
bool m_PauseAudio; | bool m_PauseAudio; | ||||
inline void cb_NewDevice_i(Fl_Button* o, void* v); | inline void cb_NewDevice_i(Fl_Button* o, void* v); | ||||
static void cb_NewDevice(Fl_Button* o, void* v); | static void cb_NewDevice(Fl_Button* o, void* v); | ||||
inline void cb_NewDeviceFromMenu_i(Fl_Canvas* o, void* v); | inline void cb_NewDeviceFromMenu_i(Fl_Canvas* o, void* v); | ||||
@@ -179,21 +160,20 @@ private: | |||||
static void cb_Unconnect(Fl_Canvas* o, void* v); | static void cb_Unconnect(Fl_Canvas* o, void* v); | ||||
inline void cb_Close_i(Fl_Window* o, void* v); | inline void cb_Close_i(Fl_Window* o, void* v); | ||||
static void cb_Close(Fl_Window* o, void* v); | static void cb_Close(Fl_Window* o, void* v); | ||||
inline void cb_PluginGroupLeft_i(Fl_Button* o, void* v); | |||||
static void cb_PluginGroupLeft(Fl_Button* o, void* v); | |||||
inline void cb_PluginGroupRight_i(Fl_Button* o, void* v); | |||||
static void cb_PluginGroupRight(Fl_Button* o, void* v); | |||||
inline void cb_GroupTab_i(Fl_Tabs* o, void* v); | |||||
static void cb_GroupTab(Fl_Tabs* o, void* v); | |||||
inline void cb_Rload_i(Fl_Button* o, void* v); | inline void cb_Rload_i(Fl_Button* o, void* v); | ||||
static void cb_Rload(Fl_Button* o, void* v); | static void cb_Rload(Fl_Button* o, void* v); | ||||
static void cb_Update(void* o, bool Mode); | |||||
static void cb_Blocking(void* o, bool Mode); | |||||
static void cb_Update(void* o, bool Mode); | |||||
static void cb_Blocking(void* o, bool Mode); | |||||
static void cb_UpdatePluginInfo(int ID, void *PluginInfo); | static void cb_UpdatePluginInfo(int ID, void *PluginInfo); | ||||
friend istream &operator>>(istream &s, SynthModular &o); | friend istream &operator>>(istream &s, SynthModular &o); | ||||
friend ostream &operator<<(ostream &s, SynthModular &o); | |||||
friend ostream &operator<<(ostream &s, SynthModular &o); | |||||
}; | }; | ||||
istream &operator>>(istream &s, SynthModular &o); | istream &operator>>(istream &s, SynthModular &o); | ||||