From ed1684dce503c9732a94f8e743f4090c14878522 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 1 Jan 2006 17:06:15 +0000 Subject: [PATCH] fix segv git-svn-id: svn://localhost/trunk/ardour2@221 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour_ui.cc | 683 +------------------------------------ gtk2_ardour/ardour_ui.h | 1 + gtk2_ardour/ardour_ui2.cc | 32 +- gtk2_ardour/audio_clock.cc | 4 + gtk2_ardour/editor.cc | 15 +- gtk2_ardour/meter_xpms.h | 680 ++++++++++++++++++++++++++++++++++++ 6 files changed, 715 insertions(+), 700 deletions(-) create mode 100644 gtk2_ardour/meter_xpms.h diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 7941c61607..67323ac07b 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -71,6 +71,7 @@ #include "about.h" #include "utils.h" #include "gui_thread.h" +#include "meter_xpms.h" #include "i18n.h" @@ -86,686 +87,6 @@ sigc::signal ARDOUR_UI::RapidScreenUpdate; sigc::signal ARDOUR_UI::SuperRapidScreenUpdate; sigc::signal ARDOUR_UI::Clock; -/* XPM */ -static const gchar *h_meter_strip_xpm[] = { -"186 5 187 2", -" c None", -". c #2BFE00", -"+ c #2DFE00", -"@ c #2FFE01", -"# c #32FE01", -"$ c #34FE02", -"% c #36FE02", -"& c #38FE03", -"* c #3BFE03", -"= c #3DFD04", -"- c #3FFD04", -"; c #41FD05", -"> c #44FD05", -", c #46FD06", -"' c #48FD06", -") c #4AFD07", -"! c #4DFD07", -"~ c #4FFD08", -"{ c #51FC08", -"] c #53FC09", -"^ c #56FC09", -"/ c #58FC09", -"( c #5AFC0A", -"_ c #5CFC0A", -": c #5FFC0B", -"< c #61FC0B", -"[ c #63FB0C", -"} c #65FB0C", -"| c #68FB0D", -"1 c #6AFB0D", -"2 c #6CFB0E", -"3 c #6EFB0E", -"4 c #71FB0F", -"5 c #73FB0F", -"6 c #75FB10", -"7 c #77FA10", -"8 c #7AFA11", -"9 c #7CFA11", -"0 c #7EFA12", -"a c #80FA12", -"b c #83FA12", -"c c #85FA13", -"d c #87FA13", -"e c #89FA14", -"f c #8CF914", -"g c #8EF915", -"h c #90F915", -"i c #92F916", -"j c #95F916", -"k c #97F917", -"l c #99F917", -"m c #9BF918", -"n c #9EF818", -"o c #A0F819", -"p c #A2F819", -"q c #A4F81A", -"r c #A7F81A", -"s c #A9F81A", -"t c #ABF81B", -"u c #ADF81B", -"v c #B0F81C", -"w c #B2F71C", -"x c #B4F71D", -"y c #B6F71D", -"z c #B9F71E", -"A c #BBF71E", -"B c #BDF71F", -"C c #BFF71F", -"D c #C2F720", -"E c #C4F720", -"F c #C6F621", -"G c #C8F621", -"H c #CBF622", -"I c #CDF622", -"J c #CFF623", -"K c #D1F623", -"L c #D4F624", -"M c #D6F624", -"N c #D8F524", -"O c #DAF525", -"P c #DDF525", -"Q c #DFF526", -"R c #E1F526", -"S c #E3F527", -"T c #E6F527", -"U c #E8F528", -"V c #EAF528", -"W c #ECF429", -"X c #EFF429", -"Y c #F1F42A", -"Z c #F3F42A", -"` c #F5F42B", -" . c #F8F42B", -".. c #FAF42C", -"+. c #FCF42C", -"@. c #FFF42D", -"#. c #FFF22C", -"$. c #FFF12B", -"%. c #FFF02A", -"&. c #FFEF2A", -"*. c #FFEE29", -"=. c #FFED28", -"-. c #FFEC28", -";. c #FFEB27", -">. c #FFE926", -",. c #FFE826", -"'. c #FFE725", -"). c #FFE624", -"!. c #FFE524", -"~. c #FFE423", -"{. c #FFE322", -"]. c #FFE222", -"^. c #FFE021", -"/. c #FFDF20", -"(. c #FFDE20", -"_. c #FFDD1F", -":. c #FFDC1E", -"<. c #FFDB1E", -"[. c #FFDA1D", -"}. c #FFD91C", -"|. c #FFD71B", -"1. c #FFD61B", -"2. c #FFD51A", -"3. c #FFD419", -"4. c #FFD319", -"5. c #FFD218", -"6. c #FFD117", -"7. c #FFD017", -"8. c #FFCF16", -"9. c #FFCD15", -"0. c #FFCC15", -"a. c #FFCB14", -"b. c #FFCA13", -"c. c #FFC913", -"d. c #FFC812", -"e. c #FFC711", -"f. c #FFC611", -"g. c #FFC410", -"h. c #FFC30F", -"i. c #FFC20F", -"j. c #FFC10E", -"k. c #FFC00D", -"l. c #FFBF0C", -"m. c #FFBE0C", -"n. c #FFBD0B", -"o. c #FFBB0A", -"p. c #FFBA0A", -"q. c #FFB909", -"r. c #FFB808", -"s. c #FFB708", -"t. c #FFB607", -"u. c #FFB506", -"v. c #FFB406", -"w. c #FFB205", -"x. c #FFB104", -"y. c #FFB004", -"z. c #FFAF03", -"A. c #FFAE02", -"B. c #FFAD02", -"C. c #FFAC01", -"D. c #FFAB00", -"E. c #FFA900", -"F. c #F11F00", -"G. c #F21E00", -"H. c #F21C00", -"I. c #F31B00", -"J. c #F31A00", -"K. c #F41800", -"L. c #F41700", -"M. c #F51600", -"N. c #F61400", -"O. c #F61300", -"P. c #F71100", -"Q. c #F71000", -"R. c #F80F00", -"S. c #F90D00", -"T. c #F90C00", -"U. c #FA0B00", -"V. c #FA0900", -"W. c #FB0800", -"X. c #FC0600", -"Y. c #FC0500", -"Z. c #FD0400", -"`. c #FD0200", -" + c #FE0100", -".+ c #FE0000", -"++ c #FF0000", -". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+", -". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+", -". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++", -". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++", -". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++"}; - -/* XPM */ -static const gchar * v_meter_strip_xpm[] = { -"5 250 230 2", -" c None", -". c #FE0000", -"+ c #FF0000", -"@ c #FE0100", -"# c #FD0200", -"$ c #FD0300", -"% c #FD0400", -"& c #FC0500", -"* c #FC0600", -"= c #FC0700", -"- c #FB0800", -"; c #FA0900", -"> c #FA0A00", -", c #FA0B00", -"' c #F90C00", -") c #F90D00", -"! c #F80E00", -"~ c #F80F00", -"{ c #F71000", -"] c #F71100", -"^ c #F61200", -"/ c #F61300", -"( c #F61400", -"_ c #F51600", -": c #F41700", -"< c #F41800", -"[ c #F31A00", -"} c #F31B00", -"| c #F21C00", -"1 c #F21E00", -"2 c #F11F00", -"3 c #F54A00", -"4 c #FFA900", -"5 c #FFAB00", -"6 c #FFAC01", -"7 c #FFAD02", -"8 c #FFAE02", -"9 c #FFAF03", -"0 c #FFB004", -"a c #FFB104", -"b c #FFB205", -"c c #FFB406", -"d c #FFB506", -"e c #FFB607", -"f c #FFB708", -"g c #FFB808", -"h c #FFB909", -"i c #FFBA0A", -"j c #FFBB0A", -"k c #FFBC0A", -"l c #FFBD0B", -"m c #FFBE0C", -"n c #FFBF0C", -"o c #FFC00D", -"p c #FFC10E", -"q c #FFC20F", -"r c #FFC30F", -"s c #FFC410", -"t c #FFC511", -"u c #FFC611", -"v c #FFC711", -"w c #FFC812", -"x c #FFC913", -"y c #FFCA13", -"z c #FFCB14", -"A c #FFCC15", -"B c #FFCD15", -"C c #FFCF16", -"D c #FFD017", -"E c #FFD117", -"F c #FFD218", -"G c #FFD319", -"H c #FFD419", -"I c #FFD51A", -"J c #FFD61B", -"K c #FFD71B", -"L c #FFD81C", -"M c #FFD91C", -"N c #FFDA1D", -"O c #FFDB1E", -"P c #FFDC1E", -"Q c #FFDD1F", -"R c #FFDE20", -"S c #FFDF20", -"T c #FFE021", -"U c #FFE222", -"V c #FFE322", -"W c #FFE423", -"X c #FFE524", -"Y c #FFE624", -"Z c #FFE725", -"` c #FFE826", -" . c #FFE926", -".. c #FFEA26", -"+. c #FFEB27", -"@. c #FFEC28", -"#. c #FFED28", -"$. c #FFEE29", -"%. c #FFEF2A", -"&. c #FFF02A", -"*. c #FFF12B", -"=. c #FFF22C", -"-. c #FFF32D", -";. c #FFF42D", -">. c #FDF42C", -",. c #FBF42C", -"'. c #FAF42C", -"). c #F8F42B", -"!. c #F6F42B", -"~. c #F4F42B", -"{. c #F3F42A", -"]. c #F1F42A", -"^. c #F0F429", -"/. c #EEF429", -"(. c #ECF429", -"_. c #EAF528", -":. c #E9F528", -"<. c #E7F528", -"[. c #E5F527", -"}. c #E3F527", -"|. c #E2F526", -"1. c #E0F526", -"2. c #DFF526", -"3. c #DDF525", -"4. c #DBF525", -"5. c #D9F525", -"6. c #D8F524", -"7. c #D6F624", -"8. c #D5F624", -"9. c #D3F624", -"0. c #D1F623", -"a. c #CFF623", -"b. c #CEF622", -"c. c #CCF622", -"d. c #CBF622", -"e. c #C9F621", -"f. c #C7F621", -"g. c #C5F621", -"h. c #C4F720", -"i. c #C2F720", -"j. c #C0F71F", -"k. c #BEF71F", -"l. c #BDF71F", -"m. c #BBF71E", -"n. c #BAF71E", -"o. c #B8F71E", -"p. c #B6F71D", -"q. c #B5F71D", -"r. c #B3F71D", -"s. c #B2F71C", -"t. c #B0F81C", -"u. c #AEF81B", -"v. c #ACF81B", -"w. c #ABF81B", -"x. c #A9F81A", -"y. c #A8F81A", -"z. c #A6F81A", -"A. c #A4F81A", -"B. c #A2F819", -"C. c #A1F819", -"D. c #9FF819", -"E. c #9EF818", -"F. c #9BF918", -"G. c #9AF917", -"H. c #98F917", -"I. c #97F917", -"J. c #95F916", -"K. c #93F916", -"L. c #91F916", -"M. c #90F915", -"N. c #8EF915", -"O. c #8DF914", -"P. c #8BF914", -"Q. c #89FA14", -"R. c #87FA13", -"S. c #86FA13", -"T. c #84FA13", -"U. c #83FA12", -"V. c #81FA12", -"W. c #7FFA12", -"X. c #7DFA12", -"Y. c #7CFA11", -"Z. c #7AFA11", -"`. c #78FA10", -" + c #76FA10", -".+ c #75FB10", -"++ c #73FB0F", -"@+ c #72FB0F", -"#+ c #70FB0F", -"$+ c #6EFB0E", -"%+ c #6DFB0E", -"&+ c #6BFB0E", -"*+ c #6AFB0D", -"=+ c #68FB0D", -"-+ c #66FB0C", -";+ c #64FB0C", -">+ c #63FB0C", -",+ c #61FC0B", -"'+ c #60FC0B", -")+ c #5EFC0B", -"!+ c #5CFC0A", -"~+ c #5AFC0A", -"{+ c #59FC09", -"]+ c #57FC09", -"^+ c #56FC09", -"/+ c #53FC09", -"(+ c #52FC08", -"_+ c #50FC08", -":+ c #4FFD08", -"<+ c #4DFD07", -"[+ c #4BFD07", -"}+ c #49FD07", -"|+ c #48FD06", -"1+ c #46FD06", -"2+ c #45FD05", -"3+ c #43FD05", -"4+ c #41FD05", -"5+ c #3FFD04", -"6+ c #3EFD04", -"7+ c #3CFD04", -"8+ c #3BFE03", -"9+ c #39FE03", -"0+ c #37FE02", -"a+ c #35FE02", -"b+ c #34FE02", -"c+ c #32FE01", -"d+ c #30FE01", -"e+ c #2EFE01", -"f+ c #2DFE00", -"g+ c #2BFE00", -". . + + + ", -". . + + + ", -"@ @ @ @ @ ", -"# # # # # ", -"$ $ $ $ $ ", -"% % % % % ", -"& & & & & ", -"* * * * * ", -"= = = = = ", -"- - - - - ", -"; ; ; ; ; ", -"> > > > > ", -", , , , , ", -"' ' ' ' ' ", -") ) ) ) ) ", -"! ! ! ! ! ", -"~ ~ ~ ~ ~ ", -"{ { { { { ", -"] ] ] ] ] ", -"^ ^ ^ ^ ^ ", -"/ / / / / ", -"( ( ( ( ( ", -"_ _ _ _ _ ", -": : : : : ", -": : : : : ", -"< < < < < ", -"[ [ [ [ [ ", -"} } } } } ", -"} } } } } ", -"| | | | | ", -"1 1 1 1 1 ", -"2 2 2 2 2 ", -"3 3 3 3 3 ", -"4 4 4 4 4 ", -"5 5 5 5 5 ", -"6 6 6 6 6 ", -"6 6 6 6 6 ", -"7 7 7 7 7 ", -"8 8 8 8 8 ", -"9 9 9 9 9 ", -"9 9 9 9 9 ", -"0 0 0 0 0 ", -"a a a a a ", -"a a a a a ", -"b b b b b ", -"c c c c c ", -"d d d d d ", -"d d d d d ", -"e e e e e ", -"f f f f f ", -"g g g g g ", -"g g g g g ", -"h h h h h ", -"i i i i i ", -"j j j j j ", -"k k k k k ", -"l l l l l ", -"m m m m m ", -"n n n n n ", -"n n n n n ", -"o o o o o ", -"p p p p p ", -"q q q q q ", -"q q q q q ", -"r r r r r ", -"s s s s s ", -"t t t t t ", -"u u u u u ", -"v v v v v ", -"w w w w w ", -"x x x x x ", -"x x x x x ", -"y y y y y ", -"z z z z z ", -"A A A A A ", -"A A A A A ", -"B B B B B ", -"C C C C C ", -"D D D D D ", -"D D D D D ", -"E E E E E ", -"F F F F F ", -"G G G G G ", -"G G G G G ", -"H H H H H ", -"I I I I I ", -"I I I I I ", -"J J J J J ", -"K K K K K ", -"L L L L L ", -"M M M M M ", -"N N N N N ", -"O O O O O ", -"P P P P P ", -"P P P P P ", -"Q Q Q Q Q ", -"R R R R R ", -"S S S S S ", -"S S S S S ", -"T T T T T ", -"U U U U U ", -"V V V V V ", -"V V V V V ", -"W W W W W ", -"X X X X X ", -"Y Y Y Y Y ", -"Y Y Y Y Y ", -"Z Z Z Z Z ", -"` ` ` ` ` ", -" . . . . .", -"..........", -"+.+.+.+.+.", -"@.@.@.@.@.", -"#.#.#.#.#.", -"#.#.#.#.#.", -"$.$.$.$.$.", -"%.%.%.%.%.", -"&.&.&.&.&.", -"&.&.&.&.&.", -"*.*.*.*.*.", -"=.=.=.=.=.", -"-.-.-.-.-.", -";.;.;.;.;.", -";.;.;.;.;.", -">.>.>.>.>.", -",.,.,.,.,.", -"'.'.'.'.'.", -").).).).).", -"!.!.!.!.!.", -"~.~.~.~.~.", -"{.{.{.{.{.", -"].].].].].", -"^.^.^.^.^.", -"/././././.", -"(.(.(.(.(.", -"_._._._._.", -":.:.:.:.:.", -"<.<.<.<.<.", -"[.[.[.[.[.", -"}.}.}.}.}.", -"|.|.|.|.|.", -"1.1.1.1.1.", -"2.2.2.2.2.", -"3.3.3.3.3.", -"4.4.4.4.4.", -"5.5.5.5.5.", -"6.6.6.6.6.", -"7.7.7.7.7.", -"8.8.8.8.8.", -"9.9.9.9.9.", -"0.0.0.0.0.", -"a.a.a.a.a.", -"b.b.b.b.b.", -"c.c.c.c.c.", -"d.d.d.d.d.", -"e.e.e.e.e.", -"f.f.f.f.f.", -"g.g.g.g.g.", -"h.h.h.h.h.", -"i.i.i.i.i.", -"j.j.j.j.j.", -"k.k.k.k.k.", -"l.l.l.l.l.", -"m.m.m.m.m.", -"n.n.n.n.n.", -"o.o.o.o.o.", -"p.p.p.p.p.", -"q.q.q.q.q.", -"r.r.r.r.r.", -"s.s.s.s.s.", -"t.t.t.t.t.", -"u.u.u.u.u.", -"v.v.v.v.v.", -"w.w.w.w.w.", -"x.x.x.x.x.", -"y.y.y.y.y.", -"z.z.z.z.z.", -"A.A.A.A.A.", -"B.B.B.B.B.", -"C.C.C.C.C.", -"D.D.D.D.D.", -"E.E.E.E.E.", -"F.F.F.F.F.", -"G.G.G.G.G.", -"H.H.H.H.H.", -"I.I.I.I.I.", -"J.J.J.J.J.", -"K.K.K.K.K.", -"L.L.L.L.L.", -"M.M.M.M.M.", -"N.N.N.N.N.", -"O.O.O.O.O.", -"P.P.P.P.P.", -"Q.Q.Q.Q.Q.", -"R.R.R.R.R.", -"S.S.S.S.S.", -"T.T.T.T.T.", -"U.U.U.U.U.", -"V.V.V.V.V.", -"W.W.W.W.W.", -"X.X.X.X.X.", -"Y.Y.Y.Y.Y.", -"Z.Z.Z.Z.Z.", -"`.`.`.`.`.", -" + + + + +", -".+.+.+.+.+", -"++++++++++", -"@+@+@+@+@+", -"#+#+#+#+#+", -"$+$+$+$+$+", -"%+%+%+%+%+", -"&+&+&+&+&+", -"*+*+*+*+*+", -"=+=+=+=+=+", -"-+-+-+-+-+", -";+;+;+;+;+", -">+>+>+>+>+", -",+,+,+,+,+", -"'+'+'+'+'+", -")+)+)+)+)+", -"!+!+!+!+!+", -"~+~+~+~+~+", -"{+{+{+{+{+", -"]+]+]+]+]+", -"^+^+^+^+^+", -"/+/+/+/+/+", -"(+(+(+(+(+", -"_+_+_+_+_+", -":+:+:+:+:+", -"<+<+<+<+<+", -"[+[+[+[+[+", -"}+}+}+}+}+", -"|+|+|+|+|+", -"1+1+1+1+1+", -"2+2+2+2+2+", -"3+3+3+3+3+", -"4+4+4+4+4+", -"5+5+5+5+5+", -"6+6+6+6+6+", -"7+7+7+7+7+", -"8+8+8+8+8+", -"9+9+9+9+9+", -"0+0+0+0+0+", -"a+a+a+a+a+", -"b+b+b+b+b+", -"c+c+c+c+c+", -"d+d+d+d+d+", -"e+e+e+e+e+", -"f+f+f+f+f+", -"g+g+g+g+g+"}; - static const char* channel_setup_names[] = { "mono", "stereo", @@ -856,7 +177,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], string rcfile) have_disk_underrun_displayed = false; _will_create_new_session_automatically = false; session_loaded = false; - + last_speed_displayed = -1.0f; last_configure_time.tv_sec = 0; last_configure_time.tv_usec = 0; diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 4b4722d9fc..907307bd3f 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -396,6 +396,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void set_shuttle_behaviour (ShuttleBehaviour); void set_shuttle_units (ShuttleUnits); void update_speed_display (); + float last_speed_displayed; gint shuttle_box_button_press (GdkEventButton*); gint shuttle_box_button_release (GdkEventButton*); diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index bad43840c7..0e6168ef91 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -534,7 +534,7 @@ ARDOUR_UI::manage_window (Window& win) void ARDOUR_UI::detach_tearoff (Box* b, Widget* w) { - editor->ensure_float (*transport_tearoff->tearoff_window()); + editor->ensure_float (transport_tearoff->tearoff_window()); b->remove (*w); } @@ -835,26 +835,34 @@ void ARDOUR_UI::update_speed_display () { if (!session) { - speed_display_label.set_text (_("stopped")); + if (last_speed_displayed != 0) { + speed_display_label.set_text (_("stopped")); + last_speed_displayed = 0; + } return; } char buf[32]; float x = session->transport_speed (); - if (x != 0) { - if (shuttle_units == Percentage) { - snprintf (buf, sizeof (buf), "%.4f", x); - } else { - if (x < 0) { - snprintf (buf, sizeof (buf), "< %.1f", 12.0 * fast_log2 (-x)); + if (x != last_speed_displayed) { + + if (x != 0) { + if (shuttle_units == Percentage) { + snprintf (buf, sizeof (buf), "%.4f", x); } else { - snprintf (buf, sizeof (buf), "> %.1f", 12.0 * fast_log2 (x)); + if (x < 0) { + snprintf (buf, sizeof (buf), "< %.1f", 12.0 * fast_log2 (-x)); + } else { + snprintf (buf, sizeof (buf), "> %.1f", 12.0 * fast_log2 (x)); + } } + speed_display_label.set_text (buf); + } else { + speed_display_label.set_text (_("stopped")); } - speed_display_label.set_text (buf); - } else { - speed_display_label.set_text (_("stopped")); + + last_speed_displayed = x; } } diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 778057c08e..8ecc160e1a 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -327,7 +327,11 @@ AudioClock::on_realize () case Frames: Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 0, 2); + break; + case Off: + break; + } } diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 5b8d594e8b..e5f7045910 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -595,10 +595,10 @@ Editor::Editor (AudioEngine& eng) region_list_display.set_name ("RegionListDisplay"); region_list_model = TreeStore::create (region_list_columns); - + region_list_sort_model = TreeModelSort::create (region_list_model); region_list_model->set_sort_func (0, mem_fun (*this, &Editor::region_list_sorter)); - region_list_display.set_model (region_list_model); + region_list_display.set_model (region_list_sort_model); CellRendererText* renderer = Gtk::manage( new Gtk::CellRendererText() ); region_list_display.append_column (_("Regions"), *renderer); @@ -658,7 +658,8 @@ Editor::Editor (AudioEngine& eng) the_notebook.set_scrollable (true); the_notebook.popup_enable (); - TearOff *notebook_tearoff = manage (new TearOff (the_notebook)); + TearOff *notebook_tearoff = manage (new TearOff (the_notebook, true)); + notebook_tearoff->tearoff_window().set_size_request (200, 400); edit_pane.pack1 (edit_frame, true, true); edit_pane.pack2 (*notebook_tearoff, true, true); @@ -2475,9 +2476,9 @@ Editor::setup_toolbar () mouse_mode_tearoff->set_name ("MouseModeBase"); mouse_mode_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast(&toolbar_hbox), - mouse_mode_tearoff->tearoff_window())); + &mouse_mode_tearoff->tearoff_window())); mouse_mode_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast (&toolbar_hbox), - mouse_mode_tearoff->tearoff_window(), 1)); + &mouse_mode_tearoff->tearoff_window(), 1)); mouse_move_button.set_name ("MouseModeButton"); mouse_select_button.set_name ("MouseModeButton"); @@ -2663,9 +2664,9 @@ Editor::setup_toolbar () tools_tearoff->set_name ("MouseModeBase"); tools_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast(&toolbar_hbox), - tools_tearoff->tearoff_window())); + &tools_tearoff->tearoff_window())); tools_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast (&toolbar_hbox), - tools_tearoff->tearoff_window(), 0)); + &tools_tearoff->tearoff_window(), 0)); toolbar_hbox.set_spacing (8); diff --git a/gtk2_ardour/meter_xpms.h b/gtk2_ardour/meter_xpms.h new file mode 100644 index 0000000000..7cebdc41dd --- /dev/null +++ b/gtk2_ardour/meter_xpms.h @@ -0,0 +1,680 @@ +/* XPM */ +static const gchar *h_meter_strip_xpm[] = { +"186 5 187 2", +" c None", +". c #2BFE00", +"+ c #2DFE00", +"@ c #2FFE01", +"# c #32FE01", +"$ c #34FE02", +"% c #36FE02", +"& c #38FE03", +"* c #3BFE03", +"= c #3DFD04", +"- c #3FFD04", +"; c #41FD05", +"> c #44FD05", +", c #46FD06", +"' c #48FD06", +") c #4AFD07", +"! c #4DFD07", +"~ c #4FFD08", +"{ c #51FC08", +"] c #53FC09", +"^ c #56FC09", +"/ c #58FC09", +"( c #5AFC0A", +"_ c #5CFC0A", +": c #5FFC0B", +"< c #61FC0B", +"[ c #63FB0C", +"} c #65FB0C", +"| c #68FB0D", +"1 c #6AFB0D", +"2 c #6CFB0E", +"3 c #6EFB0E", +"4 c #71FB0F", +"5 c #73FB0F", +"6 c #75FB10", +"7 c #77FA10", +"8 c #7AFA11", +"9 c #7CFA11", +"0 c #7EFA12", +"a c #80FA12", +"b c #83FA12", +"c c #85FA13", +"d c #87FA13", +"e c #89FA14", +"f c #8CF914", +"g c #8EF915", +"h c #90F915", +"i c #92F916", +"j c #95F916", +"k c #97F917", +"l c #99F917", +"m c #9BF918", +"n c #9EF818", +"o c #A0F819", +"p c #A2F819", +"q c #A4F81A", +"r c #A7F81A", +"s c #A9F81A", +"t c #ABF81B", +"u c #ADF81B", +"v c #B0F81C", +"w c #B2F71C", +"x c #B4F71D", +"y c #B6F71D", +"z c #B9F71E", +"A c #BBF71E", +"B c #BDF71F", +"C c #BFF71F", +"D c #C2F720", +"E c #C4F720", +"F c #C6F621", +"G c #C8F621", +"H c #CBF622", +"I c #CDF622", +"J c #CFF623", +"K c #D1F623", +"L c #D4F624", +"M c #D6F624", +"N c #D8F524", +"O c #DAF525", +"P c #DDF525", +"Q c #DFF526", +"R c #E1F526", +"S c #E3F527", +"T c #E6F527", +"U c #E8F528", +"V c #EAF528", +"W c #ECF429", +"X c #EFF429", +"Y c #F1F42A", +"Z c #F3F42A", +"` c #F5F42B", +" . c #F8F42B", +".. c #FAF42C", +"+. c #FCF42C", +"@. c #FFF42D", +"#. c #FFF22C", +"$. c #FFF12B", +"%. c #FFF02A", +"&. c #FFEF2A", +"*. c #FFEE29", +"=. c #FFED28", +"-. c #FFEC28", +";. c #FFEB27", +">. c #FFE926", +",. c #FFE826", +"'. c #FFE725", +"). c #FFE624", +"!. c #FFE524", +"~. c #FFE423", +"{. c #FFE322", +"]. c #FFE222", +"^. c #FFE021", +"/. c #FFDF20", +"(. c #FFDE20", +"_. c #FFDD1F", +":. c #FFDC1E", +"<. c #FFDB1E", +"[. c #FFDA1D", +"}. c #FFD91C", +"|. c #FFD71B", +"1. c #FFD61B", +"2. c #FFD51A", +"3. c #FFD419", +"4. c #FFD319", +"5. c #FFD218", +"6. c #FFD117", +"7. c #FFD017", +"8. c #FFCF16", +"9. c #FFCD15", +"0. c #FFCC15", +"a. c #FFCB14", +"b. c #FFCA13", +"c. c #FFC913", +"d. c #FFC812", +"e. c #FFC711", +"f. c #FFC611", +"g. c #FFC410", +"h. c #FFC30F", +"i. c #FFC20F", +"j. c #FFC10E", +"k. c #FFC00D", +"l. c #FFBF0C", +"m. c #FFBE0C", +"n. c #FFBD0B", +"o. c #FFBB0A", +"p. c #FFBA0A", +"q. c #FFB909", +"r. c #FFB808", +"s. c #FFB708", +"t. c #FFB607", +"u. c #FFB506", +"v. c #FFB406", +"w. c #FFB205", +"x. c #FFB104", +"y. c #FFB004", +"z. c #FFAF03", +"A. c #FFAE02", +"B. c #FFAD02", +"C. c #FFAC01", +"D. c #FFAB00", +"E. c #FFA900", +"F. c #F11F00", +"G. c #F21E00", +"H. c #F21C00", +"I. c #F31B00", +"J. c #F31A00", +"K. c #F41800", +"L. c #F41700", +"M. c #F51600", +"N. c #F61400", +"O. c #F61300", +"P. c #F71100", +"Q. c #F71000", +"R. c #F80F00", +"S. c #F90D00", +"T. c #F90C00", +"U. c #FA0B00", +"V. c #FA0900", +"W. c #FB0800", +"X. c #FC0600", +"Y. c #FC0500", +"Z. c #FD0400", +"`. c #FD0200", +" + c #FE0100", +".+ c #FE0000", +"++ c #FF0000", +". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+", +". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+", +". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++", +". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++", +". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +++"}; + +/* XPM */ +static const gchar * v_meter_strip_xpm[] = { +"5 250 230 2", +" c None", +". c #FE0000", +"+ c #FF0000", +"@ c #FE0100", +"# c #FD0200", +"$ c #FD0300", +"% c #FD0400", +"& c #FC0500", +"* c #FC0600", +"= c #FC0700", +"- c #FB0800", +"; c #FA0900", +"> c #FA0A00", +", c #FA0B00", +"' c #F90C00", +") c #F90D00", +"! c #F80E00", +"~ c #F80F00", +"{ c #F71000", +"] c #F71100", +"^ c #F61200", +"/ c #F61300", +"( c #F61400", +"_ c #F51600", +": c #F41700", +"< c #F41800", +"[ c #F31A00", +"} c #F31B00", +"| c #F21C00", +"1 c #F21E00", +"2 c #F11F00", +"3 c #F54A00", +"4 c #FFA900", +"5 c #FFAB00", +"6 c #FFAC01", +"7 c #FFAD02", +"8 c #FFAE02", +"9 c #FFAF03", +"0 c #FFB004", +"a c #FFB104", +"b c #FFB205", +"c c #FFB406", +"d c #FFB506", +"e c #FFB607", +"f c #FFB708", +"g c #FFB808", +"h c #FFB909", +"i c #FFBA0A", +"j c #FFBB0A", +"k c #FFBC0A", +"l c #FFBD0B", +"m c #FFBE0C", +"n c #FFBF0C", +"o c #FFC00D", +"p c #FFC10E", +"q c #FFC20F", +"r c #FFC30F", +"s c #FFC410", +"t c #FFC511", +"u c #FFC611", +"v c #FFC711", +"w c #FFC812", +"x c #FFC913", +"y c #FFCA13", +"z c #FFCB14", +"A c #FFCC15", +"B c #FFCD15", +"C c #FFCF16", +"D c #FFD017", +"E c #FFD117", +"F c #FFD218", +"G c #FFD319", +"H c #FFD419", +"I c #FFD51A", +"J c #FFD61B", +"K c #FFD71B", +"L c #FFD81C", +"M c #FFD91C", +"N c #FFDA1D", +"O c #FFDB1E", +"P c #FFDC1E", +"Q c #FFDD1F", +"R c #FFDE20", +"S c #FFDF20", +"T c #FFE021", +"U c #FFE222", +"V c #FFE322", +"W c #FFE423", +"X c #FFE524", +"Y c #FFE624", +"Z c #FFE725", +"` c #FFE826", +" . c #FFE926", +".. c #FFEA26", +"+. c #FFEB27", +"@. c #FFEC28", +"#. c #FFED28", +"$. c #FFEE29", +"%. c #FFEF2A", +"&. c #FFF02A", +"*. c #FFF12B", +"=. c #FFF22C", +"-. c #FFF32D", +";. c #FFF42D", +">. c #FDF42C", +",. c #FBF42C", +"'. c #FAF42C", +"). c #F8F42B", +"!. c #F6F42B", +"~. c #F4F42B", +"{. c #F3F42A", +"]. c #F1F42A", +"^. c #F0F429", +"/. c #EEF429", +"(. c #ECF429", +"_. c #EAF528", +":. c #E9F528", +"<. c #E7F528", +"[. c #E5F527", +"}. c #E3F527", +"|. c #E2F526", +"1. c #E0F526", +"2. c #DFF526", +"3. c #DDF525", +"4. c #DBF525", +"5. c #D9F525", +"6. c #D8F524", +"7. c #D6F624", +"8. c #D5F624", +"9. c #D3F624", +"0. c #D1F623", +"a. c #CFF623", +"b. c #CEF622", +"c. c #CCF622", +"d. c #CBF622", +"e. c #C9F621", +"f. c #C7F621", +"g. c #C5F621", +"h. c #C4F720", +"i. c #C2F720", +"j. c #C0F71F", +"k. c #BEF71F", +"l. c #BDF71F", +"m. c #BBF71E", +"n. c #BAF71E", +"o. c #B8F71E", +"p. c #B6F71D", +"q. c #B5F71D", +"r. c #B3F71D", +"s. c #B2F71C", +"t. c #B0F81C", +"u. c #AEF81B", +"v. c #ACF81B", +"w. c #ABF81B", +"x. c #A9F81A", +"y. c #A8F81A", +"z. c #A6F81A", +"A. c #A4F81A", +"B. c #A2F819", +"C. c #A1F819", +"D. c #9FF819", +"E. c #9EF818", +"F. c #9BF918", +"G. c #9AF917", +"H. c #98F917", +"I. c #97F917", +"J. c #95F916", +"K. c #93F916", +"L. c #91F916", +"M. c #90F915", +"N. c #8EF915", +"O. c #8DF914", +"P. c #8BF914", +"Q. c #89FA14", +"R. c #87FA13", +"S. c #86FA13", +"T. c #84FA13", +"U. c #83FA12", +"V. c #81FA12", +"W. c #7FFA12", +"X. c #7DFA12", +"Y. c #7CFA11", +"Z. c #7AFA11", +"`. c #78FA10", +" + c #76FA10", +".+ c #75FB10", +"++ c #73FB0F", +"@+ c #72FB0F", +"#+ c #70FB0F", +"$+ c #6EFB0E", +"%+ c #6DFB0E", +"&+ c #6BFB0E", +"*+ c #6AFB0D", +"=+ c #68FB0D", +"-+ c #66FB0C", +";+ c #64FB0C", +">+ c #63FB0C", +",+ c #61FC0B", +"'+ c #60FC0B", +")+ c #5EFC0B", +"!+ c #5CFC0A", +"~+ c #5AFC0A", +"{+ c #59FC09", +"]+ c #57FC09", +"^+ c #56FC09", +"/+ c #53FC09", +"(+ c #52FC08", +"_+ c #50FC08", +":+ c #4FFD08", +"<+ c #4DFD07", +"[+ c #4BFD07", +"}+ c #49FD07", +"|+ c #48FD06", +"1+ c #46FD06", +"2+ c #45FD05", +"3+ c #43FD05", +"4+ c #41FD05", +"5+ c #3FFD04", +"6+ c #3EFD04", +"7+ c #3CFD04", +"8+ c #3BFE03", +"9+ c #39FE03", +"0+ c #37FE02", +"a+ c #35FE02", +"b+ c #34FE02", +"c+ c #32FE01", +"d+ c #30FE01", +"e+ c #2EFE01", +"f+ c #2DFE00", +"g+ c #2BFE00", +". . + + + ", +". . + + + ", +"@ @ @ @ @ ", +"# # # # # ", +"$ $ $ $ $ ", +"% % % % % ", +"& & & & & ", +"* * * * * ", +"= = = = = ", +"- - - - - ", +"; ; ; ; ; ", +"> > > > > ", +", , , , , ", +"' ' ' ' ' ", +") ) ) ) ) ", +"! ! ! ! ! ", +"~ ~ ~ ~ ~ ", +"{ { { { { ", +"] ] ] ] ] ", +"^ ^ ^ ^ ^ ", +"/ / / / / ", +"( ( ( ( ( ", +"_ _ _ _ _ ", +": : : : : ", +": : : : : ", +"< < < < < ", +"[ [ [ [ [ ", +"} } } } } ", +"} } } } } ", +"| | | | | ", +"1 1 1 1 1 ", +"2 2 2 2 2 ", +"3 3 3 3 3 ", +"4 4 4 4 4 ", +"5 5 5 5 5 ", +"6 6 6 6 6 ", +"6 6 6 6 6 ", +"7 7 7 7 7 ", +"8 8 8 8 8 ", +"9 9 9 9 9 ", +"9 9 9 9 9 ", +"0 0 0 0 0 ", +"a a a a a ", +"a a a a a ", +"b b b b b ", +"c c c c c ", +"d d d d d ", +"d d d d d ", +"e e e e e ", +"f f f f f ", +"g g g g g ", +"g g g g g ", +"h h h h h ", +"i i i i i ", +"j j j j j ", +"k k k k k ", +"l l l l l ", +"m m m m m ", +"n n n n n ", +"n n n n n ", +"o o o o o ", +"p p p p p ", +"q q q q q ", +"q q q q q ", +"r r r r r ", +"s s s s s ", +"t t t t t ", +"u u u u u ", +"v v v v v ", +"w w w w w ", +"x x x x x ", +"x x x x x ", +"y y y y y ", +"z z z z z ", +"A A A A A ", +"A A A A A ", +"B B B B B ", +"C C C C C ", +"D D D D D ", +"D D D D D ", +"E E E E E ", +"F F F F F ", +"G G G G G ", +"G G G G G ", +"H H H H H ", +"I I I I I ", +"I I I I I ", +"J J J J J ", +"K K K K K ", +"L L L L L ", +"M M M M M ", +"N N N N N ", +"O O O O O ", +"P P P P P ", +"P P P P P ", +"Q Q Q Q Q ", +"R R R R R ", +"S S S S S ", +"S S S S S ", +"T T T T T ", +"U U U U U ", +"V V V V V ", +"V V V V V ", +"W W W W W ", +"X X X X X ", +"Y Y Y Y Y ", +"Y Y Y Y Y ", +"Z Z Z Z Z ", +"` ` ` ` ` ", +" . . . . .", +"..........", +"+.+.+.+.+.", +"@.@.@.@.@.", +"#.#.#.#.#.", +"#.#.#.#.#.", +"$.$.$.$.$.", +"%.%.%.%.%.", +"&.&.&.&.&.", +"&.&.&.&.&.", +"*.*.*.*.*.", +"=.=.=.=.=.", +"-.-.-.-.-.", +";.;.;.;.;.", +";.;.;.;.;.", +">.>.>.>.>.", +",.,.,.,.,.", +"'.'.'.'.'.", +").).).).).", +"!.!.!.!.!.", +"~.~.~.~.~.", +"{.{.{.{.{.", +"].].].].].", +"^.^.^.^.^.", +"/././././.", +"(.(.(.(.(.", +"_._._._._.", +":.:.:.:.:.", +"<.<.<.<.<.", +"[.[.[.[.[.", +"}.}.}.}.}.", +"|.|.|.|.|.", +"1.1.1.1.1.", +"2.2.2.2.2.", +"3.3.3.3.3.", +"4.4.4.4.4.", +"5.5.5.5.5.", +"6.6.6.6.6.", +"7.7.7.7.7.", +"8.8.8.8.8.", +"9.9.9.9.9.", +"0.0.0.0.0.", +"a.a.a.a.a.", +"b.b.b.b.b.", +"c.c.c.c.c.", +"d.d.d.d.d.", +"e.e.e.e.e.", +"f.f.f.f.f.", +"g.g.g.g.g.", +"h.h.h.h.h.", +"i.i.i.i.i.", +"j.j.j.j.j.", +"k.k.k.k.k.", +"l.l.l.l.l.", +"m.m.m.m.m.", +"n.n.n.n.n.", +"o.o.o.o.o.", +"p.p.p.p.p.", +"q.q.q.q.q.", +"r.r.r.r.r.", +"s.s.s.s.s.", +"t.t.t.t.t.", +"u.u.u.u.u.", +"v.v.v.v.v.", +"w.w.w.w.w.", +"x.x.x.x.x.", +"y.y.y.y.y.", +"z.z.z.z.z.", +"A.A.A.A.A.", +"B.B.B.B.B.", +"C.C.C.C.C.", +"D.D.D.D.D.", +"E.E.E.E.E.", +"F.F.F.F.F.", +"G.G.G.G.G.", +"H.H.H.H.H.", +"I.I.I.I.I.", +"J.J.J.J.J.", +"K.K.K.K.K.", +"L.L.L.L.L.", +"M.M.M.M.M.", +"N.N.N.N.N.", +"O.O.O.O.O.", +"P.P.P.P.P.", +"Q.Q.Q.Q.Q.", +"R.R.R.R.R.", +"S.S.S.S.S.", +"T.T.T.T.T.", +"U.U.U.U.U.", +"V.V.V.V.V.", +"W.W.W.W.W.", +"X.X.X.X.X.", +"Y.Y.Y.Y.Y.", +"Z.Z.Z.Z.Z.", +"`.`.`.`.`.", +" + + + + +", +".+.+.+.+.+", +"++++++++++", +"@+@+@+@+@+", +"#+#+#+#+#+", +"$+$+$+$+$+", +"%+%+%+%+%+", +"&+&+&+&+&+", +"*+*+*+*+*+", +"=+=+=+=+=+", +"-+-+-+-+-+", +";+;+;+;+;+", +">+>+>+>+>+", +",+,+,+,+,+", +"'+'+'+'+'+", +")+)+)+)+)+", +"!+!+!+!+!+", +"~+~+~+~+~+", +"{+{+{+{+{+", +"]+]+]+]+]+", +"^+^+^+^+^+", +"/+/+/+/+/+", +"(+(+(+(+(+", +"_+_+_+_+_+", +":+:+:+:+:+", +"<+<+<+<+<+", +"[+[+[+[+[+", +"}+}+}+}+}+", +"|+|+|+|+|+", +"1+1+1+1+1+", +"2+2+2+2+2+", +"3+3+3+3+3+", +"4+4+4+4+4+", +"5+5+5+5+5+", +"6+6+6+6+6+", +"7+7+7+7+7+", +"8+8+8+8+8+", +"9+9+9+9+9+", +"0+0+0+0+0+", +"a+a+a+a+a+", +"b+b+b+b+b+", +"c+c+c+c+c+", +"d+d+d+d+d+", +"e+e+e+e+e+", +"f+f+f+f+f+", +"g+g+g+g+g+"}; +