4#ifndef __ACTIONS_TRACKLIST_SELECTIONS_ACTION_H__
5#define __ACTIONS_TRACKLIST_SELECTIONS_ACTION_H__
20enum class TracklistSelectionsActionType
22 TRACKLIST_SELECTIONS_ACTION_COPY,
23 TRACKLIST_SELECTIONS_ACTION_COPY_INSIDE,
24 TRACKLIST_SELECTIONS_ACTION_CREATE,
25 TRACKLIST_SELECTIONS_ACTION_DELETE,
26 TRACKLIST_SELECTIONS_ACTION_EDIT,
27 TRACKLIST_SELECTIONS_ACTION_MOVE,
28 TRACKLIST_SELECTIONS_ACTION_MOVE_INSIDE,
29 TRACKLIST_SELECTIONS_ACTION_PIN,
30 TRACKLIST_SELECTIONS_ACTION_UNPIN,
38 EDIT_TRACK_ACTION_TYPE_SOLO,
39 EDIT_TRACK_ACTION_TYPE_SOLO_LANE,
40 EDIT_TRACK_ACTION_TYPE_MUTE,
41 EDIT_TRACK_ACTION_TYPE_MUTE_LANE,
42 EDIT_TRACK_ACTION_TYPE_LISTEN,
43 EDIT_TRACK_ACTION_TYPE_ENABLE,
44 EDIT_TRACK_ACTION_TYPE_FOLD,
45 EDIT_TRACK_ACTION_TYPE_VOLUME,
46 EDIT_TRACK_ACTION_TYPE_PAN,
57 EDIT_TRACK_ACTION_TYPE_COLOR,
58 EDIT_TRACK_ACTION_TYPE_COMMENT,
59 EDIT_TRACK_ACTION_TYPE_ICON,
61 EDIT_TRACK_ACTION_TYPE_MIDI_FADER_MODE,
72 TracklistSelectionsActionType
type;
135 size_t src_sends_size;
162 int tracks_after[600];
199 GdkRGBA * colors_before;
231 TracklistSelectionsActionType type,
245 const GdkRGBA * color_new,
248 const char * new_txt,
256#define tracklist_selections_action_new_create( \
257 track_type, pl_setting, file_descr, track_pos, pos, num_tracks, \
258 disable_track_pos, err) \
259 tracklist_selections_action_new ( \
260 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_CREATE, NULL, \
261 NULL, NULL, NULL, track_type, pl_setting, file_descr, track_pos, -1, pos, \
262 num_tracks, ENUM_INT_TO_VALUE (EditTrackActionType, 0), disable_track_pos, \
263 NULL, 0.f, 0.f, NULL, false, err)
269#define tracklist_selections_action_new_create_audio_fx( \
270 pl_setting, track_pos, num_tracks, err) \
271 tracklist_selections_action_new_create ( \
272 TRACK_TYPE_AUDIO_BUS, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
279#define tracklist_selections_action_new_create_midi_fx( \
280 pl_setting, track_pos, num_tracks, err) \
281 tracklist_selections_action_new_create ( \
282 TRACK_TYPE_MIDI_BUS, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
289#define tracklist_selections_action_new_create_instrument( \
290 pl_setting, track_pos, num_tracks, err) \
291 tracklist_selections_action_new_create ( \
292 TRACK_TYPE_INSTRUMENT, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
299#define tracklist_selections_action_new_create_audio_group( \
300 track_pos, num_tracks, err) \
301 tracklist_selections_action_new_create ( \
302 TRACK_TYPE_AUDIO_GROUP, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
308#define tracklist_selections_action_new_create_midi_group( \
309 track_pos, num_tracks, err) \
310 tracklist_selections_action_new_create ( \
311 TRACK_TYPE_MIDI_GROUP, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
317#define tracklist_selections_action_new_create_midi(track_pos, num_tracks, err) \
318 tracklist_selections_action_new_create ( \
319 TRACK_TYPE_MIDI, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
317#define tracklist_selections_action_new_create_midi(track_pos, num_tracks, err) \ …
325#define tracklist_selections_action_new_create_folder( \
326 track_pos, num_tracks, err) \
327 tracklist_selections_action_new_create ( \
328 TRACK_TYPE_FOLDER, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
333#define tracklist_selections_action_new_edit_generic( \
334 type, tls_before, tls_after, already_edited, err) \
335 tracklist_selections_action_new ( \
336 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
337 tls_before, tls_after, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, type, \
338 false, NULL, 0.f, 0.f, NULL, already_edited, err)
345#define tracklist_selections_action_new_edit_single_float( \
346 type, track, val_before, val_after, already_edited, err) \
347 tracklist_selections_action_new ( \
348 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
349 NULL, NULL, track, (TrackType) 0, NULL, NULL, -1, -1, NULL, -1, type, \
350 false, NULL, val_before, val_after, NULL, already_edited, err)
357#define tracklist_selections_action_new_edit_single_int( \
358 type, track, val_after, already_edited, err) \
359 tracklist_selections_action_new ( \
360 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
361 NULL, NULL, track, 0, NULL, NULL, -1, -1, NULL, -1, type, val_after, NULL, \
362 0.f, 0.f, NULL, already_edited, err)
364#define tracklist_selections_action_new_edit_mute(tls_before, mute_new, err) \
365 tracklist_selections_action_new ( \
366 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
367 tls_before, NULL, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
368 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_MUTE, mute_new, NULL, 0.f, \
369 0.f, NULL, false, err)
371#define tracklist_selections_action_new_edit_mute_lane( \
372 track_lane, mute_new, err) \
373 tracklist_selections_action_new ( \
374 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
375 NULL, NULL, track_lane_get_track (track_lane), 0, NULL, NULL, -1, \
376 track_lane->pos, NULL, -1, \
377 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_MUTE_LANE, mute_new, NULL, \
378 0.f, 0.f, NULL, false, err)
380#define tracklist_selections_action_new_edit_solo(tls_before, solo_new, err) \
381 tracklist_selections_action_new ( \
382 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
383 tls_before, NULL, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
384 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_SOLO, solo_new, NULL, 0.f, \
385 0.f, NULL, false, err)
387#define tracklist_selections_action_new_edit_solo_lane( \
388 track_lane, solo_new, err) \
389 tracklist_selections_action_new ( \
390 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
391 NULL, NULL, track_lane_get_track (track_lane), 0, NULL, NULL, -1, \
392 track_lane->pos, NULL, -1, \
393 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_SOLO_LANE, solo_new, NULL, \
394 0.f, 0.f, NULL, false, err)
396#define tracklist_selections_action_new_edit_listen(tls_before, solo_new, err) \
397 tracklist_selections_action_new ( \
398 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
399 tls_before, NULL, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
400 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_LISTEN, solo_new, NULL, 0.f, \
401 0.f, NULL, false, err)
403#define tracklist_selections_action_new_edit_enable( \
404 tls_before, enable_new, err) \
405 tracklist_selections_action_new ( \
406 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
407 tls_before, NULL, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
408 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_ENABLE, enable_new, NULL, 0.f, \
409 0.f, NULL, false, err)
411#define tracklist_selections_action_new_edit_fold(tls_before, fold_new, err) \
412 tracklist_selections_action_new ( \
413 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
414 tls_before, NULL, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
415 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_FOLD, fold_new, NULL, 0.f, \
416 0.f, NULL, false, err)
418#define tracklist_selections_action_new_edit_direct_out( \
419 tls, port_connections_mgr, direct_out, err) \
420 tracklist_selections_action_new ( \
421 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, NULL, \
422 port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
423 -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_DIRECT_OUT, \
424 (direct_out)->pos, NULL, 0.f, 0.f, NULL, false, err)
426#define tracklist_selections_action_new_edit_remove_direct_out( \
427 tls, port_connections_mgr, err) \
428 tracklist_selections_action_new ( \
429 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, NULL, \
430 port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
431 -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_DIRECT_OUT, \
432 -1, NULL, 0.f, 0.f, NULL, false, err)
434#define tracklist_selections_action_new_edit_color(tls, color, err) \
435 tracklist_selections_action_new ( \
436 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
437 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
438 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_COLOR, false, color, \
439 0.f, 0.f, NULL, false, err)
441#define tracklist_selections_action_new_edit_icon(tls, icon, err) \
442 tracklist_selections_action_new ( \
443 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
444 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
445 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_ICON, false, NULL, \
446 0.f, 0.f, icon, false, err)
448#define tracklist_selections_action_new_edit_comment(tls, comment, err) \
449 tracklist_selections_action_new ( \
450 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
451 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
452 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_COMMENT, false, \
453 NULL, 0.f, 0.f, comment, false, err)
455#define tracklist_selections_action_new_edit_rename( \
456 track, port_connections_mgr, name, err) \
457 tracklist_selections_action_new ( \
458 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
459 NULL, port_connections_mgr, track, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
460 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_RENAME, \
461 false, NULL, 0.f, 0.f, name, false, err)
463#define tracklist_selections_action_new_edit_rename_lane(track_lane, name, err) \
464 tracklist_selections_action_new ( \
465 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
466 NULL, NULL, track_lane_get_track (track_lane), \
467 ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, track_lane->pos, NULL, \
468 -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_RENAME_LANE, false, NULL, \
469 0.f, 0.f, name, false, err)
482#define tracklist_selections_action_new_move( \
483 tls, port_connections_mgr, track_pos, err) \
484 tracklist_selections_action_new ( \
485 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_MOVE, tls, \
486 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, track_pos, \
487 -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
489#define tracklist_selections_action_new_copy( \
490 tls, port_connections_mgr, track_pos, err) \
491 tracklist_selections_action_new ( \
492 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_COPY, tls, \
493 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
494 NULL, track_pos, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
509#define tracklist_selections_action_new_move_inside( \
510 tls, port_connections_mgr, track_pos, err) \
511 tracklist_selections_action_new ( \
512 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_MOVE_INSIDE, \
513 tls, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
514 track_pos, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
516#define tracklist_selections_action_new_copy_inside( \
517 tls, port_connections_mgr, track_pos, err) \
518 tracklist_selections_action_new ( \
519 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_COPY_INSIDE, \
520 tls, NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), \
521 NULL, NULL, track_pos, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, \
524#define tracklist_selections_action_new_delete(tls, port_connections_mgr, err) \
525 tracklist_selections_action_new ( \
526 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_DELETE, tls, \
527 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
528 NULL, -1, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
533#define tracklist_selections_action_new_pin(tls, port_connections_mgr, err) \
534 tracklist_selections_action_new ( \
535 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_PIN, tls, NULL, \
536 port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
537 -1, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
533#define tracklist_selections_action_new_pin(tls, port_connections_mgr, err) \ …
542#define tracklist_selections_action_new_unpin(tls, port_connections_mgr, err) \
543 tracklist_selections_action_new ( \
544 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_UNPIN, tls, \
545 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
546 NULL, -1, -1, NULL, -1, 0, false, NULL, 0.f, 0.f, NULL, false, err)
542#define tracklist_selections_action_new_unpin(tls, port_connections_mgr, err) \ …
552tracklist_selections_action_perform (
553 TracklistSelectionsActionType type,
567 const GdkRGBA * color_new,
570 const char * new_txt,
578#define tracklist_selections_action_perform_create( \
579 track_type, pl_setting, file_descr, track_pos, pos, num_tracks, \
580 disable_track_pos, err) \
581 tracklist_selections_action_perform ( \
582 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_CREATE, NULL, \
583 NULL, NULL, NULL, track_type, pl_setting, file_descr, track_pos, -1, pos, \
584 num_tracks, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_MUTE, \
585 disable_track_pos, NULL, 0.f, 0.f, NULL, false, err)
591#define tracklist_selections_action_perform_create_audio_fx( \
592 pl_setting, track_pos, num_tracks, err) \
593 tracklist_selections_action_perform_create ( \
594 TRACK_TYPE_AUDIO_BUS, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
601#define tracklist_selections_action_perform_create_midi_fx( \
602 pl_setting, track_pos, num_tracks, err) \
603 tracklist_selections_action_perform_create ( \
604 TRACK_TYPE_MIDI_BUS, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
611#define tracklist_selections_action_perform_create_instrument( \
612 pl_setting, track_pos, num_tracks, err) \
613 tracklist_selections_action_perform_create ( \
614 TRACK_TYPE_INSTRUMENT, pl_setting, NULL, track_pos, NULL, num_tracks, -1, \
621#define tracklist_selections_action_perform_create_audio_group( \
622 track_pos, num_tracks, err) \
623 tracklist_selections_action_perform_create ( \
624 TRACK_TYPE_AUDIO_GROUP, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
630#define tracklist_selections_action_perform_create_midi_group( \
631 track_pos, num_tracks, err) \
632 tracklist_selections_action_perform_create ( \
633 TRACK_TYPE_MIDI_GROUP, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
639#define tracklist_selections_action_perform_create_midi( \
640 track_pos, num_tracks, err) \
641 tracklist_selections_action_perform_create ( \
642 TrackType::TRACK_TYPE_MIDI, NULL, NULL, track_pos, NULL, num_tracks, -1, \
649#define tracklist_selections_action_perform_create_folder( \
650 track_pos, num_tracks, err) \
651 tracklist_selections_action_perform_create ( \
652 TRACK_TYPE_FOLDER, NULL, NULL, track_pos, NULL, num_tracks, -1, err)
657#define tracklist_selections_action_perform_edit_generic( \
658 type, tls_before, tls_after, already_edited, err) \
659 tracklist_selections_action_perform ( \
660 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
661 tls_before, tls_after, NULL, NULL, 0, NULL, NULL, -1, -1, NULL, -1, type, \
662 false, NULL, 0.f, 0.f, NULL, already_edited, err)
669#define tracklist_selections_action_perform_edit_single_float( \
670 type, track, val_before, val_after, already_edited, err) \
671 tracklist_selections_action_perform ( \
672 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
673 NULL, NULL, track, TrackType::TRACK_TYPE_MASTER, NULL, NULL, -1, -1, NULL, \
674 -1, type, false, NULL, val_before, val_after, NULL, already_edited, err)
681#define tracklist_selections_action_perform_edit_single_int( \
682 type, track, val_after, already_edited, err) \
683 tracklist_selections_action_perform ( \
684 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
685 NULL, NULL, track, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
686 NULL, -1, type, val_after, NULL, 0.f, 0.f, NULL, already_edited, err)
688#define tracklist_selections_action_perform_edit_mute( \
689 tls_before, mute_new, err) \
690 tracklist_selections_action_perform ( \
691 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
692 tls_before, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
693 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_MUTE, \
694 mute_new, NULL, 0.f, 0.f, NULL, false, err)
696#define tracklist_selections_action_perform_edit_mute_lane( \
697 track_lane, mute_new, err) \
698 tracklist_selections_action_perform ( \
699 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
700 NULL, NULL, track_lane_get_track (track_lane), \
701 ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, track_lane->pos, NULL, \
702 -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_MUTE_LANE, mute_new, NULL, \
703 0.f, 0.f, NULL, false, err)
705#define tracklist_selections_action_perform_edit_solo( \
706 tls_before, solo_new, err) \
707 tracklist_selections_action_perform ( \
708 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
709 tls_before, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
710 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_SOLO, \
711 solo_new, NULL, 0.f, 0.f, NULL, false, err)
713#define tracklist_selections_action_perform_edit_solo_lane( \
714 track_lane, solo_new, err) \
715 tracklist_selections_action_perform ( \
716 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
717 NULL, NULL, track_lane_get_track (track_lane), \
718 ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, track_lane->pos, NULL, \
719 -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_SOLO_LANE, solo_new, NULL, \
720 0.f, 0.f, NULL, false, err)
722#define tracklist_selections_action_perform_edit_listen( \
723 tls_before, solo_new, err) \
724 tracklist_selections_action_perform ( \
725 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
726 tls_before, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
727 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_LISTEN, \
728 solo_new, NULL, 0.f, 0.f, NULL, false, err)
730#define tracklist_selections_action_perform_edit_enable( \
731 tls_before, enable_new, err) \
732 tracklist_selections_action_perform ( \
733 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
734 tls_before, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
735 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_ENABLE, \
736 enable_new, NULL, 0.f, 0.f, NULL, false, err)
738#define tracklist_selections_action_perform_edit_fold( \
739 tls_before, fold_new, err) \
740 tracklist_selections_action_perform ( \
741 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, \
742 tls_before, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
743 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_FOLD, \
744 fold_new, NULL, 0.f, 0.f, NULL, false, err)
746#define tracklist_selections_action_perform_edit_direct_out( \
747 tls, port_connections_mgr, direct_out, err) \
748 tracklist_selections_action_perform ( \
749 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
750 NULL, port_connections_mgr, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
751 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_DIRECT_OUT, (direct_out)->pos, \
752 NULL, 0.f, 0.f, NULL, false, err)
754#define tracklist_selections_action_perform_edit_remove_direct_out( \
755 tls, port_connections_mgr, err) \
756 tracklist_selections_action_perform ( \
757 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
758 NULL, port_connections_mgr, NULL, 0, NULL, NULL, -1, -1, NULL, -1, \
759 EditTrackActionType::EDIT_TRACK_ACTION_TYPE_DIRECT_OUT, -1, NULL, 0.f, \
760 0.f, NULL, false, err)
762#define tracklist_selections_action_perform_edit_color(tls, color, err) \
763 tracklist_selections_action_perform ( \
764 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
765 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
766 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_COLOR, false, color, \
767 0.f, 0.f, NULL, false, err)
769#define tracklist_selections_action_perform_edit_icon(tls, icon, err) \
770 tracklist_selections_action_perform ( \
771 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
772 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
773 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_ICON, false, NULL, \
774 0.f, 0.f, icon, false, err)
776#define tracklist_selections_action_perform_edit_comment(tls, comment, err) \
777 tracklist_selections_action_perform ( \
778 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, tls, \
779 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, -1, \
780 NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_COMMENT, false, \
781 NULL, 0.f, 0.f, comment, false, err)
783#define tracklist_selections_action_perform_edit_rename( \
784 track, port_connections_mgr, name, err) \
785 tracklist_selections_action_perform ( \
786 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
787 NULL, port_connections_mgr, track, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
788 NULL, -1, -1, NULL, -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_RENAME, \
789 false, NULL, 0.f, 0.f, name, false, err)
791#define tracklist_selections_action_perform_edit_rename_lane( \
792 track_lane, name, err) \
793 tracklist_selections_action_perform ( \
794 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_EDIT, NULL, \
795 NULL, NULL, track_lane_get_track (track_lane), \
796 ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, -1, track_lane->pos, NULL, \
797 -1, EditTrackActionType::EDIT_TRACK_ACTION_TYPE_RENAME_LANE, false, NULL, \
798 0.f, 0.f, name, false, err)
811#define tracklist_selections_action_perform_move( \
812 tls, port_connections_mgr, track_pos, err) \
813 tracklist_selections_action_perform ( \
814 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_MOVE, tls, \
815 NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, track_pos, \
816 -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), false, NULL, \
817 0.f, 0.f, NULL, false, err)
819#define tracklist_selections_action_perform_copy( \
820 tls, port_connections_mgr, track_pos, err) \
821 tracklist_selections_action_perform ( \
822 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_COPY, tls, \
823 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
824 NULL, track_pos, -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), \
825 false, NULL, 0.f, 0.f, NULL, false, err)
840#define tracklist_selections_action_perform_move_inside( \
841 tls, port_connections_mgr, track_pos, err) \
842 tracklist_selections_action_perform ( \
843 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_MOVE_INSIDE, \
844 tls, NULL, NULL, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
845 track_pos, -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), \
846 false, NULL, 0.f, 0.f, NULL, false, err)
848#define tracklist_selections_action_perform_copy_inside( \
849 tls, port_connections_mgr, track_pos, err) \
850 tracklist_selections_action_perform ( \
851 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_COPY_INSIDE, \
852 tls, NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), \
853 NULL, NULL, track_pos, -1, NULL, -1, \
854 ENUM_INT_TO_VALUE (EditTrackActionType, 0), false, NULL, 0.f, 0.f, NULL, \
857#define tracklist_selections_action_perform_delete( \
858 tls, port_connections_mgr, err) \
859 tracklist_selections_action_perform ( \
860 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_DELETE, tls, \
861 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
862 NULL, -1, -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), false, \
863 NULL, 0.f, 0.f, NULL, false, err)
868#define tracklist_selections_action_perform_pin(tls, port_connections_mgr, err) \
869 tracklist_selections_action_perform ( \
870 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_PIN, tls, NULL, \
871 port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, NULL, \
872 -1, -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), false, NULL, \
873 0.f, 0.f, NULL, false, err)
868#define tracklist_selections_action_perform_pin(tls, port_connections_mgr, err) \ …
878#define tracklist_selections_action_perform_unpin( \
879 tls, port_connections_mgr, err) \
880 tracklist_selections_action_perform ( \
881 TracklistSelectionsActionType::TRACKLIST_SELECTIONS_ACTION_UNPIN, tls, \
882 NULL, port_connections_mgr, NULL, ENUM_INT_TO_VALUE (TrackType, 0), NULL, \
883 NULL, -1, -1, NULL, -1, ENUM_INT_TO_VALUE (EditTrackActionType, 0), false, \
884 NULL, 0.f, 0.f, NULL, false, err)
902tracklist_selections_action_do (
907tracklist_selections_action_undo (
The backend for a timeline track.
EditTrackActionType
Action type.
WARN_UNUSED_RESULT UndoableAction * tracklist_selections_action_new(TracklistSelectionsActionType type, TracklistSelections *tls_before, TracklistSelections *tls_after, const PortConnectionsManager *port_connections_mgr, Track *track, TrackType track_type, const PluginSetting *pl_setting, const SupportedFile *file_descr, int track_pos, int lane_pos, const Position *pos, int num_tracks, EditTrackActionType edit_type, int ival_after, const GdkRGBA *color_new, float val_before, float val_after, const char *new_txt, bool already_edited, GError **error)
Creates a new TracklistSelectionsAction.
bool tracklist_selections_action_perform_set_direct_out(TracklistSelections *self, PortConnectionsManager *port_connections_mgr, Track *direct_out, GError **error)
Edit or remove direct out.
@ EDIT_TRACK_ACTION_TYPE_RENAME
Rename track.
@ EDIT_TRACK_ACTION_TYPE_RENAME_LANE
Rename lane.
@ EDIT_TRACK_ACTION_TYPE_DIRECT_OUT
Direct out change.
TrackType
The Track's type.
Port connections manager.
A setting for a specific plugin descriptor.
Port connections manager.
A Position is made up of bars.beats.sixteenths.ticks.
Metadata for a supported file.
Track to be inserted into the Project's Tracklist.
Tracklist selections (tracks) action.
float val_before
Float values.
PortConnectionsManager * connections_mgr_before
A clone of the port connections at the start of the action.
TrackType track_type
Track type.
int lane_pos
Lane position, if editing lane.
int pool_id
If this is an action to create an Audio track from an audio file, this is the pool ID of the audio fi...
TracklistSelections * tls_after
Clone of the TracklistSelections, if applicable.
char * file_basename
The basename of the file, if any.
int tracks_before[600]
Track positions.
TracklistSelectionsActionType type
Type of action.
PortConnectionsManager * connections_mgr_after
A clone of the port connections after applying the action.
int is_empty
Flag to know if we are making an empty track.
int track_pos
Position to make the tracks at.
ChannelSend ** src_sends
Source sends that need to be deleted/ recreated on do/undo.
PluginSetting * pl_setting
PluginSetting, if making an instrument or bus track from a plugin.
bool already_edited
Skip do if true.
TracklistSelections * foldable_tls_before
Foldable tracks before the change, used when undoing to set the correct sizes.
int * ival_before
Int value.
TracklistSelections * tls_before
Clone of the TracklistSelections, if applicable.
Position pos
Position to add the audio region to, if applicable.
unsigned int * out_tracks
Direct out tracks of the original tracks.
int num_fold_change_tracks
Number of tracks under folder affected.
char * base64_midi
If this is an action to create a MIDI track from a MIDI file, this is the base64 representation so th...
Selections to be used for the tracklist's current selections, copying, undoing, etc.
Base struct to be inherited by implementing undoable actions.