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.

401 lines
11KB

  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 {522 141 1024 768} type Double resizable xclass {Non-DAW} visible
  38. } {
  39. Fl_Menu_Bar menubar {
  40. label {capture:\\nfoo}
  41. xywh {0 0 1024 25}
  42. } {
  43. Submenu {} {
  44. label {&Session} open
  45. xywh {0 0 74 25}
  46. } {
  47. MenuItem {} {
  48. label {&New}
  49. xywh {0 0 40 25}
  50. }
  51. MenuItem {} {
  52. label {&Open}
  53. xywh {10 10 40 25}
  54. }
  55. MenuItem {} {
  56. label {&Compact}
  57. 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" );
  58. if ( n != 2 )
  59. return;
  60. Loggable::compact();}
  61. xywh {20 20 40 25}
  62. }
  63. Submenu {} {
  64. label Export open
  65. xywh {0 0 74 25}
  66. } {
  67. MenuItem {} {
  68. label Session
  69. xywh {0 0 40 25}
  70. }
  71. MenuItem {} {
  72. label Range
  73. xywh {10 10 40 25}
  74. }
  75. }
  76. MenuItem {} {
  77. label {&Quit}
  78. callback {exit( 0 );}
  79. xywh {40 40 40 25} shortcut 0x40071
  80. }
  81. }
  82. Submenu {} {
  83. label {&Edit} open
  84. xywh {0 0 74 25}
  85. } {
  86. MenuItem {} {
  87. label Preferences
  88. xywh {0 0 40 25}
  89. }
  90. MenuItem {} {
  91. label Undo
  92. xywh {0 0 40 25} shortcut 0x4007a
  93. }
  94. }
  95. Submenu {} {
  96. label Transport open
  97. xywh {0 0 74 25}
  98. } {
  99. MenuItem {} {
  100. label Home
  101. callback {transport->locate( 0 );}
  102. xywh {0 0 40 25} shortcut 0xff50
  103. }
  104. MenuItem {} {
  105. label End
  106. callback {transport->locate( timeline->length() );}
  107. xywh {10 10 40 25} shortcut 0xff57
  108. }
  109. MenuItem {} {
  110. label Stop
  111. callback {transport->stop();}
  112. xywh {20 20 40 25} shortcut 0x50073
  113. }
  114. MenuItem {} {
  115. label Play
  116. callback {transport->start();}
  117. xywh {30 30 40 25} shortcut 0x50070
  118. }
  119. MenuItem {} {
  120. label Record
  121. xywh {40 40 40 25} shortcut 0x50072
  122. }
  123. }
  124. Submenu {} {
  125. label {&View} open
  126. xywh {0 0 74 25}
  127. } {
  128. Submenu {} {
  129. label {&Zoom} open
  130. xywh {0 0 74 25}
  131. } {
  132. MenuItem {} {
  133. label {&In}
  134. callback {timeline->zoom_in();}
  135. xywh {20 20 40 25}
  136. }
  137. MenuItem {} {
  138. label {&Out}
  139. callback {timeline->zoom_out();}
  140. xywh {30 30 40 25}
  141. }
  142. MenuItem {} {
  143. label {&Fit}
  144. xywh {10 10 40 25} divider
  145. }
  146. MenuItem {} {
  147. label {1 sec.}
  148. callback {timeline->zoom( 1 );}
  149. xywh {10 10 40 25} shortcut 0x31
  150. }
  151. MenuItem {} {
  152. label {1 min.}
  153. callback {timeline->zoom( 60 );}
  154. xywh {20 20 40 25} shortcut 0x32
  155. }
  156. MenuItem {} {
  157. label {1 hour.}
  158. callback {timeline->zoom( 60 * 60 );}
  159. xywh {30 30 40 25} shortcut 0x33
  160. }
  161. }
  162. }
  163. Submenu {} {
  164. label {&Options} open
  165. xywh {0 0 74 25} divider
  166. } {
  167. Submenu {} {
  168. label {&Display} open
  169. xywh {0 0 74 25}
  170. } {
  171. Submenu {} {
  172. label {&Waveforms} open
  173. xywh {0 0 74 25}
  174. } {
  175. MenuItem {} {
  176. label Fill
  177. callback {Waveform::fill = menu_picked_value( o );
  178. timeline->redraw();}
  179. xywh {10 10 40 25} type Toggle value 1
  180. }
  181. MenuItem {} {
  182. label Outline
  183. callback {Waveform::outline = menu_picked_value( o );
  184. timeline->redraw();}
  185. xywh {30 30 40 25} type Toggle value 1
  186. }
  187. MenuItem {} {
  188. label {Vary color}
  189. callback {Waveform::vary_color = menu_picked_value( o );
  190. timeline->redraw();}
  191. xywh {20 20 40 25} type Toggle value 1
  192. }
  193. }
  194. Submenu {} {
  195. label {&Region} open
  196. xywh {0 0 74 25}
  197. } {
  198. MenuItem {} {
  199. label {Filled fades}
  200. xywh {30 30 40 25} type Toggle value 1
  201. }
  202. }
  203. Submenu {} {
  204. label {&Control Sequence} open
  205. xywh {0 0 74 25}
  206. } {
  207. MenuItem {} {
  208. label Polygon
  209. callback {Control_Sequence::draw_with_polygon = menu_picked_value( o );
  210. timeline->redraw();}
  211. xywh {20 20 40 25} type Toggle value 1
  212. }
  213. MenuItem {} {
  214. label Graded
  215. callback {Control_Sequence::draw_with_gradient = menu_picked_value( o );
  216. timeline->redraw();}
  217. xywh {30 30 40 25} type Toggle value 1
  218. }
  219. MenuItem {} {
  220. label Ruled
  221. callback {Control_Sequence::draw_with_grid = menu_picked_value( o );
  222. timeline->redraw();}
  223. xywh {40 40 40 25} type Toggle value 1
  224. }
  225. }
  226. Submenu {} {
  227. label {&Style} open
  228. xywh {0 0 74 25}
  229. } {
  230. MenuItem {} {
  231. label Default
  232. callback {Fl::scheme( "plastic" );}
  233. xywh {0 0 40 25} type Radio value 1
  234. }
  235. MenuItem {} {
  236. label Flat
  237. callback {Fl::scheme( "gtk+" );}
  238. xywh {10 10 40 25} type Radio
  239. }
  240. }
  241. Submenu {} {
  242. label {C&olors} open
  243. xywh {0 0 74 25}
  244. } {
  245. MenuItem {} {
  246. label System
  247. callback {Fl::get_system_colors();
  248. Fl::scheme( Fl::scheme() );}
  249. xywh {0 0 40 25} type Radio
  250. }
  251. MenuItem {} {
  252. label Dark
  253. callback {Fl::background2( 100, 100, 100 );
  254. Fl::background( 50, 50, 50 );
  255. Fl::foreground( 255, 255, 255 );
  256. Fl::scheme( Fl::scheme() );}
  257. xywh {10 10 40 25} type Radio value 1
  258. }
  259. MenuItem {} {
  260. label Light
  261. callback {Fl::background2( 255, 255, 255 );
  262. Fl::background( 172, 172, 172 );
  263. Fl::foreground( 0, 0, 0 );
  264. Fl::scheme( Fl::scheme() );}
  265. xywh {20 20 40 25} type Radio
  266. }
  267. }
  268. }
  269. }
  270. MenuItem {} {
  271. label {&Help}
  272. xywh {0 0 40 25}
  273. }
  274. }
  275. Fl_Group {} {open
  276. xywh {0 23 1024 48}
  277. } {
  278. Fl_Pack {} {open selected
  279. xywh {0 23 473 46} type HORIZONTAL
  280. code0 {o->spacing( 10 );}
  281. } {
  282. Fl_Box {} {
  283. label {<Transport>}
  284. xywh {0 23 184 46} color 30
  285. code0 {transport = o;}
  286. code1 {o->labeltype( FL_NO_LABEL );}
  287. class Transport
  288. }
  289. Fl_Pack clocks_pack {
  290. xywh {185 23 288 46} type HORIZONTAL
  291. code0 {o->spacing( 2 );}
  292. } {
  293. Fl_Box playhead_clock {
  294. label PLAYHEAD
  295. xywh {185 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 {325 29 142 40} box BORDER_BOX color 46
  303. code0 {o->type( Clock::BBT );}
  304. class Clock
  305. }
  306. }
  307. }
  308. Fl_Box {} {
  309. label {<empty>}
  310. xywh {477 27 387 42} resizable
  311. code0 {o->labeltype( FL_NO_LABEL );}
  312. }
  313. Fl_Group {} {
  314. xywh {869 25 155 44}
  315. } {
  316. Fl_Box {} {
  317. label {capture:}
  318. xywh {869 25 56 14} labelsize 10 align 24
  319. }
  320. Fl_Box {} {
  321. label {playback:}
  322. xywh {869 41 56 14} labelsize 10 align 24
  323. }
  324. Fl_Box {} {
  325. label {DSP:}
  326. xywh {869 55 56 14} labelsize 10 align 24
  327. }
  328. Fl_Progress capture_buffer_progress {
  329. label {50%}
  330. xywh {925 25 99 14} labelsize 10
  331. }
  332. Fl_Progress cpu_load_progress {
  333. label {50%}
  334. xywh {925 55 99 14} labelsize 9
  335. }
  336. Fl_Progress playback_buffer_progress {
  337. label {50%}
  338. xywh {925 40 99 14} labelsize 10
  339. }
  340. }
  341. }
  342. Fl_Box {} {
  343. label {<Timeline>}
  344. xywh {0 72 1024 695} box FLAT_BOX color 47 labelsize 100 resizable
  345. code0 {timeline = o;}
  346. class Timeline
  347. }
  348. }
  349. }
  350. Function {update_progress( Fl_Progress *p, char *s, float v )} {open private return_type {static void}
  351. } {
  352. code {p->value( v );
  353. snprintf( s, 5, "%d%%", (int)v );
  354. p->label( s );} {}
  355. }
  356. Function {update_status()} {open
  357. } {
  358. code {static char cbp[5], pbp[5], clp[5];
  359. update_progress( capture_buffer_progress, cbp, timeline->total_input_buffer_percent() );
  360. update_progress( playback_buffer_progress, pbp, timeline->total_output_buffer_percent() );
  361. update_progress( cpu_load_progress, clp, engine->cpu_load() );} {}
  362. }
  363. Function {update_cb( void *v )} {open return_type {static void}
  364. } {
  365. code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v );
  366. ((TLE*)v)->update_status();} {}
  367. }
  368. }
  369. Function {make_window()} {open
  370. } {}