Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

369 lines
9.9KB

  1. # data file for the Fltk User Interface Designer (fluid)
  2. version 1.0108
  3. header_name {.H}
  4. code_name {.C}
  5. decl {const float STATUS_UPDATE_FREQ = 0.5f;} {}
  6. decl {\#include "Timeline.H"} {}
  7. decl {\#include "Engine.H"} {}
  8. decl {\#include "Transport.H"} {}
  9. decl {\#include "Loggable.H"} {}
  10. decl {\#include "Clock.H"} {public
  11. }
  12. decl {\#include "Waveform.H" // for options} {}
  13. decl {\#include "Control_Sequence.H" // for options} {}
  14. decl {\#include <FL/fl_ask.H>} {}
  15. decl {\#include <FL/Fl.H>} {}
  16. class TLE {open
  17. } {
  18. decl {static void menubar_cb ( void *v )} {}
  19. decl {void menubar_cb ( void )} {}
  20. Function {menu_picked_value( const Fl_Menu_ *m )} {open return_type {static int}
  21. } {
  22. code {return m->menu()[ m->value() ].flags & FL_MENU_VALUE;} {}
  23. }
  24. Function {TLE()} {open
  25. } {
  26. code {make_window();
  27. // Fl::visual( RGB8 );
  28. Fl::visible_focus( 0 );
  29. Fl::get_system_colors();
  30. Fl::scheme( "plastic" );
  31. Fl::add_timeout( STATUS_UPDATE_FREQ, update_cb, this );} {}
  32. }
  33. Function {make_window()} {open
  34. } {
  35. Fl_Window main_window {
  36. label {Non-DAW - Timeline} open
  37. xywh {581 446 1024 768} type Double resizable xclass {Non-DAW} visible
  38. } {
  39. Fl_Group {} {open
  40. xywh {0 0 1024 25}
  41. } {}
  42. Fl_Menu_Bar menubar {open
  43. xywh {0 0 1024 25}
  44. } {
  45. Submenu {} {
  46. label {&Session} open
  47. xywh {0 0 74 25}
  48. } {
  49. MenuItem {} {
  50. label {&New}
  51. xywh {0 0 40 25}
  52. }
  53. MenuItem {} {
  54. label {&Open}
  55. xywh {10 10 40 25}
  56. }
  57. MenuItem {} {
  58. label {&Compact}
  59. callback {int n = fl_choice( "Compacting will replace the session history with a snapshot of the current state.\\n You will not be able to use Undo to go back beyond this point.\\n This operation is irreversible!", NULL, "Abort", "Procede with compaction" );
  60. if ( n != 2 )
  61. return;
  62. Loggable::compact();} selected
  63. xywh {20 20 40 25}
  64. }
  65. Submenu {} {
  66. label Export open
  67. xywh {0 0 74 25}
  68. } {
  69. MenuItem {} {
  70. label Session
  71. xywh {0 0 40 25}
  72. }
  73. MenuItem {} {
  74. label Range
  75. xywh {10 10 40 25}
  76. }
  77. }
  78. MenuItem {} {
  79. label {&Quit}
  80. callback {exit( 0 );}
  81. xywh {40 40 40 25} shortcut 0x40071
  82. }
  83. }
  84. Submenu {} {
  85. label {&Edit} open
  86. xywh {0 0 74 25}
  87. } {
  88. MenuItem {} {
  89. label Preferences
  90. xywh {0 0 40 25}
  91. }
  92. MenuItem {} {
  93. label Undo
  94. xywh {0 0 40 25} shortcut 0x4007a
  95. }
  96. }
  97. Submenu {} {
  98. label Transport open
  99. xywh {0 0 74 25}
  100. } {
  101. MenuItem {} {
  102. label Home
  103. callback {transport->locate( 0 );}
  104. xywh {0 0 40 25} shortcut 0xff50
  105. }
  106. MenuItem {} {
  107. label End
  108. callback {transport->locate( timeline->length() );}
  109. xywh {10 10 40 25} shortcut 0xff57
  110. }
  111. MenuItem {} {
  112. label Stop
  113. callback {transport->stop();}
  114. xywh {20 20 40 25} shortcut 0x50073
  115. }
  116. MenuItem {} {
  117. label Play
  118. callback {transport->start();}
  119. xywh {30 30 40 25} shortcut 0x50070
  120. }
  121. MenuItem {} {
  122. label Record
  123. xywh {40 40 40 25} shortcut 0x50072
  124. }
  125. }
  126. Submenu {} {
  127. label {&View} open
  128. xywh {0 0 74 25}
  129. } {
  130. Submenu {} {
  131. label {&Zoom} open
  132. xywh {0 0 74 25}
  133. } {
  134. MenuItem {} {
  135. label {&In}
  136. callback {timeline->zoom_in();}
  137. xywh {20 20 40 25}
  138. }
  139. MenuItem {} {
  140. label {&Out}
  141. callback {timeline->zoom_out();}
  142. xywh {30 30 40 25}
  143. }
  144. MenuItem {} {
  145. label {&Fit}
  146. xywh {10 10 40 25} divider
  147. }
  148. MenuItem {} {
  149. label {1 sec.}
  150. callback {timeline->zoom( 1 );}
  151. xywh {10 10 40 25} shortcut 0x31
  152. }
  153. MenuItem {} {
  154. label {1 min.}
  155. callback {timeline->zoom( 60 );}
  156. xywh {20 20 40 25} shortcut 0x32
  157. }
  158. MenuItem {} {
  159. label {1 hour.}
  160. callback {timeline->zoom( 60 * 60 );}
  161. xywh {30 30 40 25} shortcut 0x33
  162. }
  163. }
  164. }
  165. Submenu {} {
  166. label {&Options} open
  167. xywh {0 0 74 25} divider
  168. } {
  169. Submenu {} {
  170. label {&Display} open
  171. xywh {0 0 74 25}
  172. } {
  173. Submenu {} {
  174. label {&Waveforms} open
  175. xywh {0 0 74 25}
  176. } {
  177. MenuItem {} {
  178. label Fill
  179. callback {Waveform::fill = menu_picked_value( o );
  180. timeline->redraw();}
  181. xywh {10 10 40 25} type Toggle value 1
  182. }
  183. MenuItem {} {
  184. label Outline
  185. callback {Waveform::outline = menu_picked_value( o );
  186. timeline->redraw();}
  187. xywh {30 30 40 25} type Toggle value 1
  188. }
  189. MenuItem {} {
  190. label {Vary color}
  191. callback {Waveform::vary_color = menu_picked_value( o );
  192. timeline->redraw();}
  193. xywh {20 20 40 25} type Toggle value 1
  194. }
  195. }
  196. Submenu {} {
  197. label {&Region} open
  198. xywh {0 0 74 25}
  199. } {
  200. MenuItem {} {
  201. label {Filled fades}
  202. xywh {30 30 40 25} type Toggle value 1
  203. }
  204. }
  205. Submenu {} {
  206. label {&Control Sequence} open
  207. xywh {0 0 74 25}
  208. } {
  209. MenuItem {} {
  210. label Polygon
  211. callback {Control_Sequence::draw_with_polygon = menu_picked_value( o );
  212. timeline->redraw();}
  213. xywh {20 20 40 25} type Toggle value 1
  214. }
  215. MenuItem {} {
  216. label Graded
  217. callback {Control_Sequence::draw_with_gradient = menu_picked_value( o );
  218. timeline->redraw();}
  219. xywh {30 30 40 25} type Toggle value 1
  220. }
  221. MenuItem {} {
  222. label Ruled
  223. callback {Control_Sequence::draw_with_grid = menu_picked_value( o );
  224. timeline->redraw();}
  225. xywh {40 40 40 25} type Toggle value 1
  226. }
  227. }
  228. Submenu {} {
  229. label {&Style} open
  230. xywh {0 0 74 25}
  231. } {
  232. MenuItem {} {
  233. label Default
  234. callback {Fl::scheme( "plastic" );}
  235. xywh {0 0 40 25} type Radio value 1
  236. }
  237. MenuItem {} {
  238. label Flat
  239. callback {Fl::scheme( "gtk+" );}
  240. xywh {10 10 40 25} type Radio
  241. }
  242. }
  243. Submenu {} {
  244. label {C&olors} open
  245. xywh {0 0 74 25}
  246. } {
  247. MenuItem {} {
  248. label System
  249. callback {Fl::get_system_colors();
  250. Fl::scheme( Fl::scheme() );}
  251. xywh {0 0 40 25} type Radio
  252. }
  253. MenuItem {} {
  254. label Dark
  255. callback {Fl::background2( 100, 100, 100 );
  256. Fl::background( 50, 50, 50 );
  257. Fl::foreground( 255, 255, 255 );
  258. Fl::scheme( Fl::scheme() );}
  259. xywh {10 10 40 25} type Radio value 1
  260. }
  261. MenuItem {} {
  262. label Light
  263. callback {Fl::background2( 255, 255, 255 );
  264. Fl::background( 172, 172, 172 );
  265. Fl::foreground( 0, 0, 0 );
  266. Fl::scheme( Fl::scheme() );}
  267. xywh {20 20 40 25} type Radio
  268. }
  269. }
  270. }
  271. }
  272. MenuItem {} {
  273. label {&Help}
  274. xywh {0 0 40 25}
  275. }
  276. }
  277. Fl_Box {} {
  278. label {<Timeline>}
  279. xywh {0 74 1024 695} box FLAT_BOX color 47 labelsize 100
  280. code0 {timeline = o;}
  281. class Timeline
  282. }
  283. Fl_Box {} {
  284. label {<Transport>}
  285. xywh {0 25 137 46} color 30
  286. code0 {transport = o;}
  287. code1 {o->labeltype( FL_NO_LABEL );}
  288. class Transport
  289. }
  290. Fl_Pack clocks_pack {open
  291. xywh {139 25 285 46} type HORIZONTAL
  292. } {
  293. Fl_Box playhead_clock {
  294. label PLAYHEAD
  295. xywh {139 29 137 40} box BORDER_BOX color 46
  296. code0 {o->type( Clock::HMS );}
  297. code1 {o->run( &transport->frame );}
  298. class Clock
  299. }
  300. Fl_Box {} {
  301. label PLAYHEAD
  302. xywh {278 29 142 40} box BORDER_BOX color 46
  303. code0 {o->type( Clock::BBT );}
  304. class Clock
  305. }
  306. }
  307. Fl_Progress capture_buffer_progress {
  308. label {capture:}
  309. xywh {925 26 99 14} labelsize 10 align 4
  310. }
  311. Fl_Progress cpu_load_progress {
  312. label {DSP:}
  313. xywh {925 55 99 16} labelsize 9 align 4
  314. }
  315. Fl_Progress playback_buffer_progress {
  316. label {playback:}
  317. xywh {925 40 99 14} labelsize 10 align 4
  318. }
  319. Fl_Box {} {
  320. label {<empty>}
  321. xywh {427 29 469 42}
  322. code0 {o->labeltype( FL_NO_LABEL );}
  323. }
  324. }
  325. }
  326. Function {update_status()} {open
  327. } {
  328. code {capture_buffer_progress->value( timeline->total_input_buffer_percent() );
  329. playback_buffer_progress->value( timeline->total_output_buffer_percent() );
  330. cpu_load_progress->value( engine->cpu_load() );
  331. // TODO: dsp} {}
  332. }
  333. Function {update_cb( void *v )} {open return_type {static void}
  334. } {
  335. code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v );
  336. ((TLE*)v)->update_status();} {}
  337. }
  338. }
  339. Function {make_window()} {open
  340. } {}