reflexion 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.doc/ext/reflex/application.cpp +37 -6
- data/.doc/ext/reflex/capture_event.cpp +1 -1
- data/.doc/ext/reflex/chase_constraint.cpp +1 -1
- data/.doc/ext/reflex/clipboard.cpp +1 -1
- data/.doc/ext/reflex/color_event.cpp +76 -0
- data/.doc/ext/reflex/color_picker.cpp +113 -0
- data/.doc/ext/reflex/constraint.cpp +1 -1
- data/.doc/ext/reflex/contact_event.cpp +1 -1
- data/.doc/ext/reflex/control_change_event.cpp +1 -1
- data/.doc/ext/reflex/device.cpp +1 -1
- data/.doc/ext/reflex/device_event.cpp +1 -1
- data/.doc/ext/reflex/draw_event.cpp +1 -1
- data/.doc/ext/reflex/ellipse_shape.cpp +1 -1
- data/.doc/ext/reflex/event.cpp +1 -1
- data/.doc/ext/reflex/file_dialog.cpp +181 -0
- data/.doc/ext/reflex/file_event.cpp +103 -0
- data/.doc/ext/reflex/filter.cpp +1 -1
- data/.doc/ext/reflex/focus_event.cpp +1 -1
- data/.doc/ext/reflex/frame_event.cpp +1 -1
- data/.doc/ext/reflex/gamepad.cpp +48 -0
- data/.doc/ext/reflex/image_view.cpp +1 -1
- data/.doc/ext/reflex/key_event.cpp +1 -274
- data/.doc/ext/reflex/line_shape.cpp +1 -1
- data/.doc/ext/reflex/link_constraint.cpp +1 -1
- data/.doc/ext/reflex/menu.cpp +6 -5
- data/.doc/ext/reflex/midi.cpp +9 -2
- data/.doc/ext/reflex/midi_event.cpp +1 -1
- data/.doc/ext/reflex/motion_event.cpp +1 -1
- data/.doc/ext/reflex/native.cpp +18 -6
- data/.doc/ext/reflex/note_event.cpp +1 -1
- data/.doc/ext/reflex/pin.cpp +1 -1
- data/.doc/ext/reflex/pointer.cpp +1 -1
- data/.doc/ext/reflex/pointer_event.cpp +2 -2
- data/.doc/ext/reflex/polygon_shape.cpp +1 -1
- data/.doc/ext/reflex/rect_shape.cpp +1 -1
- data/.doc/ext/reflex/reflex.cpp +566 -232
- data/.doc/ext/reflex/screen.cpp +27 -1
- data/.doc/ext/reflex/scroll_event.cpp +1 -1
- data/.doc/ext/reflex/selector.cpp +1 -1
- data/.doc/ext/reflex/shape.cpp +1 -1
- data/.doc/ext/reflex/snap_constraint.cpp +1 -1
- data/.doc/ext/reflex/style.cpp +1 -1
- data/.doc/ext/reflex/style_length.cpp +1 -1
- data/.doc/ext/reflex/text_event.cpp +104 -0
- data/.doc/ext/reflex/timer.cpp +1 -1
- data/.doc/ext/reflex/timer_event.cpp +1 -1
- data/.doc/ext/reflex/update_event.cpp +1 -1
- data/.doc/ext/reflex/view.cpp +110 -56
- data/.doc/ext/reflex/wheel_constraint.cpp +1 -1
- data/.doc/ext/reflex/wheel_event.cpp +1 -1
- data/.doc/ext/reflex/window.cpp +226 -17
- data/.github/workflows/release-gem.yml +2 -49
- data/.github/workflows/tag.yml +5 -28
- data/.github/workflows/test.yml +1 -37
- data/ChangeLog.md +54 -0
- data/Gemfile.lock +13 -8
- data/Rakefile +13 -2
- data/Reflex.podspec +2 -2
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +41 -6
- data/ext/reflex/capture_event.cpp +1 -1
- data/ext/reflex/chase_constraint.cpp +1 -1
- data/ext/reflex/clipboard.cpp +1 -1
- data/ext/reflex/color_event.cpp +80 -0
- data/ext/reflex/color_picker.cpp +121 -0
- data/ext/reflex/constraint.cpp +1 -1
- data/ext/reflex/contact_event.cpp +1 -1
- data/ext/reflex/control_change_event.cpp +1 -1
- data/ext/reflex/device.cpp +1 -1
- data/ext/reflex/device_event.cpp +1 -1
- data/ext/reflex/draw_event.cpp +1 -1
- data/ext/reflex/ellipse_shape.cpp +1 -1
- data/ext/reflex/event.cpp +1 -1
- data/ext/reflex/extconf.rb +4 -2
- data/ext/reflex/file_dialog.cpp +194 -0
- data/ext/reflex/file_event.cpp +108 -0
- data/ext/reflex/filter.cpp +1 -1
- data/ext/reflex/focus_event.cpp +1 -1
- data/ext/reflex/frame_event.cpp +1 -1
- data/ext/reflex/gamepad.cpp +50 -0
- data/ext/reflex/image_view.cpp +1 -1
- data/ext/reflex/key_event.cpp +1 -275
- data/ext/reflex/line_shape.cpp +1 -1
- data/ext/reflex/link_constraint.cpp +1 -1
- data/ext/reflex/menu.cpp +8 -7
- data/ext/reflex/midi.cpp +11 -3
- data/ext/reflex/midi_event.cpp +1 -1
- data/ext/reflex/motion_event.cpp +1 -1
- data/ext/reflex/native.cpp +18 -6
- data/ext/reflex/note_event.cpp +1 -1
- data/ext/reflex/pin.cpp +1 -1
- data/ext/reflex/pointer.cpp +1 -1
- data/ext/reflex/pointer_event.cpp +2 -2
- data/ext/reflex/polygon_shape.cpp +1 -1
- data/ext/reflex/rect_shape.cpp +1 -1
- data/ext/reflex/reflex.cpp +568 -232
- data/ext/reflex/screen.cpp +31 -2
- data/ext/reflex/scroll_event.cpp +1 -1
- data/ext/reflex/selector.cpp +1 -1
- data/ext/reflex/selector.h +9 -9
- data/ext/reflex/shape.cpp +1 -1
- data/ext/reflex/snap_constraint.cpp +1 -1
- data/ext/reflex/style.cpp +1 -1
- data/ext/reflex/style_length.cpp +1 -1
- data/ext/reflex/text_event.cpp +111 -0
- data/ext/reflex/timer.cpp +1 -1
- data/ext/reflex/timer_event.cpp +1 -1
- data/ext/reflex/update_event.cpp +1 -1
- data/ext/reflex/view.cpp +121 -61
- data/ext/reflex/wheel_constraint.cpp +1 -1
- data/ext/reflex/wheel_event.cpp +1 -1
- data/ext/reflex/window.cpp +256 -25
- data/include/reflex/application.h +10 -0
- data/include/reflex/color_picker.h +65 -0
- data/include/reflex/event.h +178 -88
- data/include/reflex/file_dialog.h +73 -0
- data/include/reflex/gamepad.h +3 -0
- data/include/reflex/menu.h +3 -3
- data/include/reflex/midi.h +3 -0
- data/include/reflex/reflex.h +2 -0
- data/include/reflex/ruby/application.h +6 -1
- data/include/reflex/ruby/color_picker.h +89 -0
- data/include/reflex/ruby/event.h +62 -29
- data/include/reflex/ruby/file_dialog.h +89 -0
- data/include/reflex/ruby/gamepad.h +46 -0
- data/include/reflex/ruby/reflex.h +3 -0
- data/include/reflex/ruby/view.h +92 -44
- data/include/reflex/ruby/window.h +60 -1
- data/include/reflex/ruby.h +3 -0
- data/include/reflex/screen.h +11 -2
- data/include/reflex/view.h +28 -16
- data/include/reflex/window.h +40 -8
- data/include/reflex.h +3 -0
- data/lib/reflex/application.rb +5 -5
- data/lib/reflex/autoinit.rb +3 -1
- data/lib/reflex/button.rb +3 -3
- data/lib/reflex/color_event.rb +16 -0
- data/lib/reflex/color_picker.rb +45 -0
- data/lib/reflex/control_change_event.rb +17 -0
- data/lib/reflex/file_dialog.rb +70 -0
- data/lib/reflex/file_event.rb +37 -0
- data/lib/reflex/helper.rb +58 -7
- data/lib/reflex/key_event.rb +9 -4
- data/lib/reflex/menu.rb +17 -1
- data/lib/reflex/model.rb +19 -19
- data/lib/reflex/note_event.rb +1 -1
- data/lib/reflex/pointer.rb +14 -3
- data/lib/reflex/pointer_event.rb +12 -1
- data/lib/reflex/reflex.rb +5 -0
- data/lib/reflex/shape.rb +14 -14
- data/lib/reflex/style.rb +16 -16
- data/lib/reflex/text_event.rb +40 -0
- data/lib/reflex/timer.rb +3 -3
- data/lib/reflex/view.rb +29 -14
- data/lib/reflex/wheel_event.rb +12 -3
- data/lib/reflex/window.rb +25 -13
- data/lib/reflex.rb +8 -2
- data/reflex.gemspec +4 -4
- data/samples/ime.rb +100 -0
- data/samples/ios/hello/hello.xcodeproj/project.pbxproj +236 -224
- data/samples/menu.rb +4 -1
- data/samples/model.rb +3 -3
- data/samples/test/alert.rb +93 -0
- data/samples/test/always_on.rb +76 -0
- data/samples/test/app_background.rb +51 -0
- data/samples/test/boundary.rb +75 -0
- data/samples/test/callback_exception.rb +101 -0
- data/samples/test/cancel.rb +53 -0
- data/samples/test/color_picker.rb +63 -0
- data/samples/test/file_dialog.rb +102 -0
- data/samples/window_style.rb +156 -0
- data/src/application.cpp +159 -18
- data/src/application.h +92 -7
- data/src/color_picker.cpp +113 -0
- data/src/color_picker.h +36 -0
- data/src/event.cpp +410 -252
- data/src/event.h +12 -0
- data/src/file_dialog.cpp +163 -0
- data/src/file_dialog.h +52 -0
- data/src/gamepad.cpp +42 -5
- data/src/gamepad.h +4 -0
- data/src/ios/app_delegate.mm +5 -3
- data/src/ios/application.mm +24 -0
- data/src/ios/color_picker.mm +19 -0
- data/src/ios/file_dialog.mm +21 -0
- data/src/ios/gamepad.mm +4 -4
- data/src/ios/menu.mm +5 -0
- data/src/ios/reflex.mm +8 -0
- data/src/ios/screen.mm +26 -0
- data/src/ios/view_controller.mm +2 -30
- data/src/ios/window.mm +38 -9
- data/src/menu.cpp +66 -4
- data/src/menu.h +17 -1
- data/src/midi.cpp +61 -31
- data/src/osx/app_delegate.h +4 -0
- data/src/osx/app_delegate.mm +102 -22
- data/src/osx/application.mm +88 -6
- data/src/osx/color_picker.mm +112 -0
- data/src/osx/event.h +10 -0
- data/src/osx/event.mm +84 -30
- data/src/osx/file_dialog.mm +168 -0
- data/src/osx/gamepad.mm +2 -2
- data/src/osx/gamepad_hid.mm +1 -1
- data/src/osx/menu.mm +177 -33
- data/src/osx/native_window.h +16 -2
- data/src/osx/native_window.mm +114 -57
- data/src/osx/opengl_view.h +2 -1
- data/src/osx/opengl_view.mm +184 -43
- data/src/osx/reflex.mm +38 -0
- data/src/osx/screen.mm +36 -0
- data/src/osx/window.mm +106 -24
- data/src/pointer.cpp +13 -4
- data/src/pointer.h +4 -0
- data/src/rays.h +46 -0
- data/src/sdl/application.cpp +68 -8
- data/src/sdl/color_picker.cpp +18 -0
- data/src/sdl/event.cpp +24 -3
- data/src/sdl/event.h +12 -0
- data/src/sdl/file_dialog.cpp +20 -0
- data/src/sdl/gamepad.cpp +3 -7
- data/src/sdl/menu.cpp +5 -0
- data/src/sdl/reflex.cpp +20 -0
- data/src/sdl/screen.cpp +36 -0
- data/src/sdl/window.cpp +142 -29
- data/src/shape.cpp +15 -10
- data/src/view.cpp +287 -198
- data/src/view.h +4 -2
- data/src/vk.h +416 -0
- data/src/win32/application.cpp +162 -12
- data/src/win32/application.h +20 -0
- data/src/win32/color_picker.cpp +82 -0
- data/src/win32/event.cpp +114 -12
- data/src/win32/event.h +21 -4
- data/src/win32/file_dialog.cpp +226 -0
- data/src/win32/gamepad.cpp +9 -2
- data/src/win32/menu.cpp +191 -53
- data/src/win32/menu.h +9 -1
- data/src/win32/opengl.cpp +2 -9
- data/src/win32/reflex.cpp +44 -3
- data/src/win32/screen.cpp +164 -3
- data/src/win32/screen.h +8 -0
- data/src/win32/tray.cpp +191 -0
- data/src/win32/tray.h +22 -0
- data/src/win32/vk.cpp +11 -0
- data/src/win32/window.cpp +809 -148
- data/src/win32/window.h +6 -0
- data/src/window.cpp +718 -185
- data/src/window.h +66 -33
- data/src/world.cpp +9 -1
- data/test/helper.rb +17 -0
- data/test/test_application.rb +90 -1
- data/test/test_chase_constraint.rb +1 -3
- data/test/test_color_event.rb +36 -0
- data/test/test_color_picker.rb +62 -0
- data/test/test_constraint.rb +2 -4
- data/test/test_event.rb +1 -1
- data/test/test_file_dialog.rb +48 -0
- data/test/test_file_event.rb +43 -0
- data/test/test_has_text_preedit.rb +54 -0
- data/test/test_key_event.rb +20 -5
- data/test/test_link_constraint.rb +1 -3
- data/test/test_menu.rb +40 -10
- data/test/test_pointer.rb +33 -23
- data/test/test_pointer_event.rb +24 -9
- data/test/test_reflex.rb +36 -0
- data/test/test_screen.rb +24 -2
- data/test/test_snap_constraint.rb +1 -3
- data/test/test_text_event.rb +54 -0
- data/test/test_view.rb +41 -4
- data/test/test_wheel_constraint.rb +1 -3
- data/test/test_wheel_event.rb +13 -5
- data/test/test_window.rb +196 -44
- metadata +80 -10
- data/.github/workflows/utils.rb +0 -127
data/src/event.cpp
CHANGED
|
@@ -626,6 +626,73 @@ namespace Reflex
|
|
|
626
626
|
}
|
|
627
627
|
|
|
628
628
|
|
|
629
|
+
struct TextEvent::Data
|
|
630
|
+
{
|
|
631
|
+
|
|
632
|
+
Action action;
|
|
633
|
+
|
|
634
|
+
String text;
|
|
635
|
+
|
|
636
|
+
int selection_offset, selection_size;
|
|
637
|
+
|
|
638
|
+
Data (
|
|
639
|
+
Action action = ACTION_NONE, const char* text = NULL,
|
|
640
|
+
int selection_offset = -1, int selection_size = 0)
|
|
641
|
+
: action(action), text(text ? text : ""),
|
|
642
|
+
selection_offset(selection_offset), selection_size(selection_size)
|
|
643
|
+
{
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
};// TextEvent::Data
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
TextEvent::TextEvent ()
|
|
650
|
+
{
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
TextEvent::TextEvent (
|
|
654
|
+
Action action, const char* text,
|
|
655
|
+
int selection_offset, int selection_size)
|
|
656
|
+
: self(new Data(action, text, selection_offset, selection_size))
|
|
657
|
+
{
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
TextEvent::TextEvent (const TextEvent* src)
|
|
661
|
+
: Event(src), self(new Data(*src->self))
|
|
662
|
+
{
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
TextEvent
|
|
666
|
+
TextEvent::dup () const
|
|
667
|
+
{
|
|
668
|
+
return TextEvent(this);
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
TextEvent::Action
|
|
672
|
+
TextEvent::action () const
|
|
673
|
+
{
|
|
674
|
+
return self->action;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
const char*
|
|
678
|
+
TextEvent::text () const
|
|
679
|
+
{
|
|
680
|
+
return self->text;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
int
|
|
684
|
+
TextEvent::selection_offset () const
|
|
685
|
+
{
|
|
686
|
+
return self->selection_offset;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
int
|
|
690
|
+
TextEvent::selection_size () const
|
|
691
|
+
{
|
|
692
|
+
return self->selection_size;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
|
|
629
696
|
struct PointerEvent::Data
|
|
630
697
|
{
|
|
631
698
|
|
|
@@ -712,6 +779,8 @@ namespace Reflex
|
|
|
712
779
|
if (!child)
|
|
713
780
|
argument_error(__FILE__, __LINE__);
|
|
714
781
|
|
|
782
|
+
if (pthis->empty()) return;
|
|
783
|
+
|
|
715
784
|
const Bounds& frame = child->frame();
|
|
716
785
|
|
|
717
786
|
std::vector<Pointer> pointers;
|
|
@@ -834,6 +903,12 @@ namespace Reflex
|
|
|
834
903
|
{
|
|
835
904
|
}
|
|
836
905
|
|
|
906
|
+
WheelEvent::WheelEvent (
|
|
907
|
+
const Point& position, const Point& dposition, uint modifiers)
|
|
908
|
+
: self(new Data(position, dposition, modifiers))
|
|
909
|
+
{
|
|
910
|
+
}
|
|
911
|
+
|
|
837
912
|
WheelEvent::WheelEvent (const WheelEvent* src)
|
|
838
913
|
: Event(src), self(new Data(*src->self))
|
|
839
914
|
{
|
|
@@ -876,503 +951,586 @@ namespace Reflex
|
|
|
876
951
|
}
|
|
877
952
|
|
|
878
953
|
|
|
879
|
-
struct
|
|
954
|
+
struct CaptureEvent::Data
|
|
880
955
|
{
|
|
881
956
|
|
|
882
|
-
|
|
957
|
+
uint begin, end;
|
|
883
958
|
|
|
884
|
-
|
|
959
|
+
Data (uint begin = 0, uint end = 0)
|
|
960
|
+
: begin(begin), end(end)
|
|
961
|
+
{
|
|
962
|
+
}
|
|
885
963
|
|
|
886
|
-
|
|
964
|
+
};// CaptureEvent::Data
|
|
887
965
|
|
|
888
|
-
};// MIDIEvent
|
|
889
966
|
|
|
967
|
+
CaptureEvent::CaptureEvent ()
|
|
968
|
+
{
|
|
969
|
+
}
|
|
890
970
|
|
|
891
|
-
|
|
892
|
-
|
|
971
|
+
CaptureEvent::CaptureEvent (uint begin, uint end)
|
|
972
|
+
: self(new Data(begin, end))
|
|
893
973
|
{
|
|
894
|
-
|
|
895
|
-
if (a != MIDIEvent::NOTE_ON && a != MIDIEvent::NOTE_OFF)
|
|
896
|
-
return false;
|
|
974
|
+
}
|
|
897
975
|
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
return true;
|
|
976
|
+
CaptureEvent::CaptureEvent (const CaptureEvent* src)
|
|
977
|
+
: Event(src), self(new Data(*src->self))
|
|
978
|
+
{
|
|
902
979
|
}
|
|
903
980
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
ControlChangeEvent* result, const MIDIEvent& event)
|
|
981
|
+
CaptureEvent
|
|
982
|
+
CaptureEvent::dup () const
|
|
907
983
|
{
|
|
908
|
-
|
|
909
|
-
|
|
984
|
+
return CaptureEvent(this);
|
|
985
|
+
}
|
|
910
986
|
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
987
|
+
uint
|
|
988
|
+
CaptureEvent::begin () const
|
|
989
|
+
{
|
|
990
|
+
return self->begin;
|
|
914
991
|
}
|
|
915
992
|
|
|
916
|
-
|
|
917
|
-
|
|
993
|
+
uint
|
|
994
|
+
CaptureEvent::end () const
|
|
918
995
|
{
|
|
919
|
-
|
|
996
|
+
return self->end;
|
|
920
997
|
}
|
|
921
998
|
|
|
922
999
|
|
|
923
|
-
|
|
1000
|
+
struct TimerEvent::Data
|
|
1001
|
+
{
|
|
1002
|
+
|
|
1003
|
+
Timer::Ref timer;
|
|
1004
|
+
|
|
1005
|
+
Data (Timer* timer = NULL)
|
|
1006
|
+
: timer(timer)
|
|
1007
|
+
{
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
};// TimerEvent::Data
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
TimerEvent::TimerEvent ()
|
|
924
1014
|
{
|
|
925
1015
|
}
|
|
926
1016
|
|
|
927
|
-
|
|
928
|
-
:
|
|
1017
|
+
TimerEvent::TimerEvent (Timer* timer)
|
|
1018
|
+
: self(new Data(timer))
|
|
929
1019
|
{
|
|
930
|
-
self->midi = midi;
|
|
931
|
-
memcpy(self->bytes, bytes, sizeof(uchar) * 3);
|
|
932
1020
|
}
|
|
933
1021
|
|
|
934
|
-
|
|
1022
|
+
TimerEvent::TimerEvent (const TimerEvent* src)
|
|
935
1023
|
: Event(src), self(new Data(*src->self))
|
|
936
1024
|
{
|
|
937
1025
|
}
|
|
938
1026
|
|
|
939
|
-
|
|
940
|
-
|
|
1027
|
+
TimerEvent
|
|
1028
|
+
TimerEvent::dup () const
|
|
941
1029
|
{
|
|
942
|
-
return
|
|
1030
|
+
return TimerEvent(this);
|
|
943
1031
|
}
|
|
944
1032
|
|
|
945
|
-
|
|
946
|
-
|
|
1033
|
+
Timer*
|
|
1034
|
+
TimerEvent::timer ()
|
|
947
1035
|
{
|
|
948
|
-
return self->
|
|
1036
|
+
return self->timer;
|
|
949
1037
|
}
|
|
950
1038
|
|
|
951
|
-
|
|
952
|
-
|
|
1039
|
+
const Timer*
|
|
1040
|
+
TimerEvent::timer () const
|
|
953
1041
|
{
|
|
954
|
-
|
|
955
|
-
{
|
|
956
|
-
case 0x9: return NOTE_ON;
|
|
957
|
-
case 0x8: return NOTE_OFF;
|
|
958
|
-
case 0xA: return KEY_PRESSURE;
|
|
959
|
-
case 0xB: return CONTROL_CHANGE;
|
|
960
|
-
case 0xC: return PROGRAM_CHANGE;
|
|
961
|
-
case 0xD: return CHANNEL_PRESSURE;
|
|
962
|
-
case 0xE: return PITCH_BEND_CHANGE;
|
|
963
|
-
case 0xF: return SYSTEM;
|
|
964
|
-
default: return ACTION_NONE;
|
|
965
|
-
}
|
|
1042
|
+
return const_cast<TimerEvent*>(this)->timer();
|
|
966
1043
|
}
|
|
967
1044
|
|
|
968
|
-
|
|
969
|
-
|
|
1045
|
+
View*
|
|
1046
|
+
TimerEvent::owner () const
|
|
970
1047
|
{
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
return -1;
|
|
1048
|
+
return self->timer ? self->timer->owner() : NULL;
|
|
1049
|
+
}
|
|
974
1050
|
|
|
975
|
-
|
|
1051
|
+
int
|
|
1052
|
+
TimerEvent::id () const
|
|
1053
|
+
{
|
|
1054
|
+
return self->timer ? self->timer->id() : Timer::ID_INVALID;
|
|
976
1055
|
}
|
|
977
1056
|
|
|
978
|
-
|
|
979
|
-
|
|
1057
|
+
float
|
|
1058
|
+
TimerEvent::interval () const
|
|
980
1059
|
{
|
|
981
|
-
return self->
|
|
1060
|
+
return self->timer ? self->timer->interval() : -1;
|
|
982
1061
|
}
|
|
983
1062
|
|
|
984
|
-
|
|
985
|
-
|
|
1063
|
+
int
|
|
1064
|
+
TimerEvent::count () const
|
|
986
1065
|
{
|
|
987
|
-
return self->
|
|
1066
|
+
return self->timer ? self->timer->count() : 0;
|
|
988
1067
|
}
|
|
989
1068
|
|
|
990
1069
|
bool
|
|
991
|
-
|
|
1070
|
+
TimerEvent::is_finished () const
|
|
992
1071
|
{
|
|
993
|
-
return self->
|
|
1072
|
+
return self->timer ? self->timer->is_finished() : true;
|
|
994
1073
|
}
|
|
995
1074
|
|
|
996
1075
|
|
|
997
|
-
struct
|
|
1076
|
+
struct ContactEvent::Data
|
|
998
1077
|
{
|
|
999
1078
|
|
|
1000
|
-
Action action
|
|
1001
|
-
|
|
1002
|
-
int channel = 0;
|
|
1003
|
-
|
|
1004
|
-
int note = 0;
|
|
1005
|
-
|
|
1006
|
-
float velocity = 0;
|
|
1079
|
+
Action action;
|
|
1007
1080
|
|
|
1008
|
-
|
|
1081
|
+
Shape* shape;
|
|
1009
1082
|
|
|
1010
|
-
|
|
1083
|
+
View* view;
|
|
1011
1084
|
|
|
1085
|
+
Data (Action action = ACTION_NONE, Shape* shape = NULL, View* view = NULL)
|
|
1086
|
+
: action(action), shape(shape), view(view)
|
|
1087
|
+
{
|
|
1088
|
+
}
|
|
1012
1089
|
|
|
1013
|
-
|
|
1014
|
-
NoteEvent_set_captured (NoteEvent* pthis, bool captured)
|
|
1015
|
-
{
|
|
1016
|
-
pthis->self->captured = captured;
|
|
1017
|
-
}
|
|
1090
|
+
};// ContactEvent::Data
|
|
1018
1091
|
|
|
1019
1092
|
|
|
1020
|
-
|
|
1093
|
+
ContactEvent::ContactEvent ()
|
|
1021
1094
|
{
|
|
1022
1095
|
}
|
|
1023
1096
|
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
: Event(time)
|
|
1097
|
+
ContactEvent::ContactEvent (Action action, Shape* shape)
|
|
1098
|
+
: self(new Data(action, shape, shape ? shape->owner() : NULL))
|
|
1027
1099
|
{
|
|
1028
|
-
self->action = action;
|
|
1029
|
-
self->channel = channel;
|
|
1030
|
-
self->note = note;
|
|
1031
|
-
self->velocity = velocity;
|
|
1032
1100
|
}
|
|
1033
1101
|
|
|
1034
|
-
|
|
1102
|
+
ContactEvent::ContactEvent (const ContactEvent* src)
|
|
1035
1103
|
: Event(src), self(new Data(*src->self))
|
|
1036
1104
|
{
|
|
1037
1105
|
}
|
|
1038
1106
|
|
|
1039
|
-
|
|
1040
|
-
|
|
1107
|
+
ContactEvent
|
|
1108
|
+
ContactEvent::dup () const
|
|
1041
1109
|
{
|
|
1042
|
-
return
|
|
1110
|
+
return ContactEvent(this);
|
|
1043
1111
|
}
|
|
1044
1112
|
|
|
1045
|
-
|
|
1046
|
-
|
|
1113
|
+
ContactEvent::Action
|
|
1114
|
+
ContactEvent::action () const
|
|
1047
1115
|
{
|
|
1048
1116
|
return self->action;
|
|
1049
1117
|
}
|
|
1050
1118
|
|
|
1051
|
-
|
|
1052
|
-
|
|
1119
|
+
Shape*
|
|
1120
|
+
ContactEvent::shape ()
|
|
1053
1121
|
{
|
|
1054
|
-
return self->
|
|
1122
|
+
return self->shape;
|
|
1055
1123
|
}
|
|
1056
1124
|
|
|
1057
|
-
|
|
1058
|
-
|
|
1125
|
+
const Shape*
|
|
1126
|
+
ContactEvent::shape () const
|
|
1059
1127
|
{
|
|
1060
|
-
return
|
|
1128
|
+
return const_cast<ContactEvent*>(this)->shape();
|
|
1061
1129
|
}
|
|
1062
1130
|
|
|
1063
|
-
|
|
1064
|
-
|
|
1131
|
+
View*
|
|
1132
|
+
ContactEvent::view ()
|
|
1065
1133
|
{
|
|
1066
|
-
|
|
1067
|
-
return 440 * std::pow(2.0, (note() - A4) / 12.0);
|
|
1134
|
+
return self->view;
|
|
1068
1135
|
}
|
|
1069
1136
|
|
|
1070
|
-
|
|
1071
|
-
|
|
1137
|
+
const View*
|
|
1138
|
+
ContactEvent::view () const
|
|
1072
1139
|
{
|
|
1073
|
-
return
|
|
1140
|
+
return const_cast<ContactEvent*>(this)->view();
|
|
1074
1141
|
}
|
|
1075
1142
|
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
{
|
|
1079
|
-
return self->captured;
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
struct ControlChangeEvent::Data
|
|
1143
|
+
|
|
1144
|
+
struct MotionEvent::Data
|
|
1084
1145
|
{
|
|
1085
1146
|
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
int controller = 0;
|
|
1089
|
-
|
|
1090
|
-
float value = 0;
|
|
1147
|
+
Point gravity;
|
|
1091
1148
|
|
|
1092
|
-
|
|
1149
|
+
Data (const Point& gravity)
|
|
1150
|
+
: gravity(gravity)
|
|
1151
|
+
{
|
|
1152
|
+
}
|
|
1093
1153
|
|
|
1094
|
-
};//
|
|
1154
|
+
};// MotionEvent::Data
|
|
1095
1155
|
|
|
1096
1156
|
|
|
1097
|
-
|
|
1098
|
-
|
|
1157
|
+
MotionEvent::MotionEvent (const Point& gravity)
|
|
1158
|
+
: self(new Data(gravity))
|
|
1099
1159
|
{
|
|
1100
|
-
pthis->self->captured = captured;
|
|
1101
1160
|
}
|
|
1102
1161
|
|
|
1162
|
+
MotionEvent::MotionEvent (const MotionEvent* src)
|
|
1163
|
+
: Event(src), self(new Data(*src->self))
|
|
1164
|
+
{
|
|
1165
|
+
}
|
|
1103
1166
|
|
|
1104
|
-
|
|
1167
|
+
MotionEvent
|
|
1168
|
+
MotionEvent::dup () const
|
|
1105
1169
|
{
|
|
1170
|
+
return MotionEvent(this);
|
|
1106
1171
|
}
|
|
1107
1172
|
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
: Event(time)
|
|
1173
|
+
const Point&
|
|
1174
|
+
MotionEvent::gravity () const
|
|
1111
1175
|
{
|
|
1112
|
-
self->
|
|
1113
|
-
self->controller = controller;
|
|
1114
|
-
self->value = value;
|
|
1176
|
+
return self->gravity;
|
|
1115
1177
|
}
|
|
1116
1178
|
|
|
1117
|
-
|
|
1118
|
-
|
|
1179
|
+
|
|
1180
|
+
struct FileEvent::Data
|
|
1181
|
+
{
|
|
1182
|
+
|
|
1183
|
+
Action action;
|
|
1184
|
+
|
|
1185
|
+
StringList paths;
|
|
1186
|
+
|
|
1187
|
+
Data (Action action = ACTION_NONE, const StringList& paths = {})
|
|
1188
|
+
: action(action), paths(paths)
|
|
1189
|
+
{
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
};// FileEvent::Data
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
FileEvent::FileEvent ()
|
|
1119
1196
|
{
|
|
1120
1197
|
}
|
|
1121
1198
|
|
|
1122
|
-
|
|
1123
|
-
|
|
1199
|
+
FileEvent::FileEvent (Action action, const StringList& paths)
|
|
1200
|
+
: self(new Data(action, paths))
|
|
1124
1201
|
{
|
|
1125
|
-
return ControlChangeEvent(this);
|
|
1126
1202
|
}
|
|
1127
1203
|
|
|
1128
|
-
|
|
1129
|
-
|
|
1204
|
+
FileEvent::FileEvent (const FileEvent* src)
|
|
1205
|
+
: Event(src), self(new Data(*src->self))
|
|
1130
1206
|
{
|
|
1131
|
-
return self->channel;
|
|
1132
1207
|
}
|
|
1133
1208
|
|
|
1134
|
-
|
|
1135
|
-
|
|
1209
|
+
FileEvent
|
|
1210
|
+
FileEvent::dup () const
|
|
1136
1211
|
{
|
|
1137
|
-
return
|
|
1212
|
+
return FileEvent(this);
|
|
1138
1213
|
}
|
|
1139
1214
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1215
|
+
FileEvent::Action
|
|
1216
|
+
FileEvent::action () const
|
|
1142
1217
|
{
|
|
1143
|
-
return self->
|
|
1218
|
+
return self->action;
|
|
1144
1219
|
}
|
|
1145
1220
|
|
|
1146
|
-
|
|
1147
|
-
|
|
1221
|
+
const StringList&
|
|
1222
|
+
FileEvent::paths () const
|
|
1148
1223
|
{
|
|
1149
|
-
return self->
|
|
1224
|
+
return self->paths;
|
|
1150
1225
|
}
|
|
1151
1226
|
|
|
1152
1227
|
|
|
1153
|
-
struct
|
|
1228
|
+
struct ColorEvent::Data
|
|
1154
1229
|
{
|
|
1155
1230
|
|
|
1156
|
-
|
|
1231
|
+
Color color;
|
|
1157
1232
|
|
|
1158
|
-
|
|
1159
|
-
: begin(begin), end(end)
|
|
1160
|
-
{
|
|
1161
|
-
}
|
|
1162
|
-
|
|
1163
|
-
};// CaptureEvent::Data
|
|
1233
|
+
};// ColorEvent::Data
|
|
1164
1234
|
|
|
1165
1235
|
|
|
1166
|
-
|
|
1236
|
+
ColorEvent::ColorEvent ()
|
|
1167
1237
|
{
|
|
1168
1238
|
}
|
|
1169
1239
|
|
|
1170
|
-
|
|
1171
|
-
: self(new Data(begin, end))
|
|
1240
|
+
ColorEvent::ColorEvent (const Color& color)
|
|
1172
1241
|
{
|
|
1242
|
+
self->color = color;
|
|
1173
1243
|
}
|
|
1174
1244
|
|
|
1175
|
-
|
|
1245
|
+
ColorEvent::ColorEvent (const ColorEvent* src)
|
|
1176
1246
|
: Event(src), self(new Data(*src->self))
|
|
1177
1247
|
{
|
|
1178
1248
|
}
|
|
1179
1249
|
|
|
1180
|
-
|
|
1181
|
-
|
|
1250
|
+
ColorEvent
|
|
1251
|
+
ColorEvent::dup () const
|
|
1182
1252
|
{
|
|
1183
|
-
return
|
|
1253
|
+
return ColorEvent(this);
|
|
1184
1254
|
}
|
|
1185
1255
|
|
|
1186
|
-
|
|
1187
|
-
|
|
1256
|
+
const Color&
|
|
1257
|
+
ColorEvent::color () const
|
|
1188
1258
|
{
|
|
1189
|
-
return self->
|
|
1259
|
+
return self->color;
|
|
1190
1260
|
}
|
|
1191
1261
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1262
|
+
|
|
1263
|
+
struct MIDIEvent::Data
|
|
1194
1264
|
{
|
|
1195
|
-
return self->end;
|
|
1196
|
-
}
|
|
1197
1265
|
|
|
1266
|
+
MIDI::Ref midi;
|
|
1198
1267
|
|
|
1199
|
-
|
|
1200
|
-
{
|
|
1268
|
+
uchar bytes[3] = {0};
|
|
1201
1269
|
|
|
1202
|
-
|
|
1270
|
+
bool captured = false;
|
|
1203
1271
|
|
|
1204
|
-
|
|
1205
|
-
: timer(timer)
|
|
1206
|
-
{
|
|
1207
|
-
}
|
|
1272
|
+
};// MIDIEvent::Data
|
|
1208
1273
|
|
|
1209
|
-
};// TimerEvent::Data
|
|
1210
1274
|
|
|
1275
|
+
bool
|
|
1276
|
+
MIDIEvent_to_note_event (NoteEvent* result, const MIDIEvent& event)
|
|
1277
|
+
{
|
|
1278
|
+
auto a = event.action();
|
|
1279
|
+
if (a != MIDIEvent::NOTE_ON && a != MIDIEvent::NOTE_OFF)
|
|
1280
|
+
return false;
|
|
1211
1281
|
|
|
1212
|
-
|
|
1282
|
+
*result = NoteEvent(
|
|
1283
|
+
a == MIDIEvent::NOTE_ON ? NoteEvent::ON : NoteEvent::OFF,
|
|
1284
|
+
event.channel(), event.data1(), event.data2() / 127.f, event.time());
|
|
1285
|
+
return true;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
bool
|
|
1289
|
+
MIDIEvent_to_control_change_event (
|
|
1290
|
+
ControlChangeEvent* result, const MIDIEvent& event)
|
|
1213
1291
|
{
|
|
1292
|
+
if (event.action() != MIDIEvent::CONTROL_CHANGE)
|
|
1293
|
+
return false;
|
|
1294
|
+
|
|
1295
|
+
*result = ControlChangeEvent(
|
|
1296
|
+
event.channel(), event.data1(), event.data2() / 127.f, event.time());
|
|
1297
|
+
return true;
|
|
1214
1298
|
}
|
|
1215
1299
|
|
|
1216
|
-
|
|
1217
|
-
|
|
1300
|
+
void
|
|
1301
|
+
MIDIEvent_set_captured (MIDIEvent* pthis, bool captured)
|
|
1218
1302
|
{
|
|
1303
|
+
pthis->self->captured = captured;
|
|
1219
1304
|
}
|
|
1220
1305
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1306
|
+
|
|
1307
|
+
MIDIEvent::MIDIEvent ()
|
|
1223
1308
|
{
|
|
1224
1309
|
}
|
|
1225
1310
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1311
|
+
MIDIEvent::MIDIEvent (MIDI* midi, const uchar* bytes, double time)
|
|
1312
|
+
: Event(time)
|
|
1228
1313
|
{
|
|
1229
|
-
|
|
1314
|
+
self->midi = midi;
|
|
1315
|
+
memcpy(self->bytes, bytes, sizeof(uchar) * 3);
|
|
1230
1316
|
}
|
|
1231
1317
|
|
|
1232
|
-
|
|
1233
|
-
|
|
1318
|
+
MIDIEvent::MIDIEvent (const MIDIEvent* src)
|
|
1319
|
+
: Event(src), self(new Data(*src->self))
|
|
1234
1320
|
{
|
|
1235
|
-
return self->timer;
|
|
1236
1321
|
}
|
|
1237
1322
|
|
|
1238
|
-
|
|
1239
|
-
|
|
1323
|
+
MIDIEvent
|
|
1324
|
+
MIDIEvent::dup () const
|
|
1240
1325
|
{
|
|
1241
|
-
return
|
|
1326
|
+
return MIDIEvent(this);
|
|
1242
1327
|
}
|
|
1243
1328
|
|
|
1244
|
-
|
|
1245
|
-
|
|
1329
|
+
MIDI*
|
|
1330
|
+
MIDIEvent::midi () const
|
|
1246
1331
|
{
|
|
1247
|
-
return self->
|
|
1332
|
+
return self->midi;
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
MIDIEvent::Action
|
|
1336
|
+
MIDIEvent::action () const
|
|
1337
|
+
{
|
|
1338
|
+
switch (self->bytes[0] >> 4)
|
|
1339
|
+
{
|
|
1340
|
+
case 0x9: return NOTE_ON;
|
|
1341
|
+
case 0x8: return NOTE_OFF;
|
|
1342
|
+
case 0xA: return KEY_PRESSURE;
|
|
1343
|
+
case 0xB: return CONTROL_CHANGE;
|
|
1344
|
+
case 0xC: return PROGRAM_CHANGE;
|
|
1345
|
+
case 0xD: return CHANNEL_PRESSURE;
|
|
1346
|
+
case 0xE: return PITCH_BEND_CHANGE;
|
|
1347
|
+
case 0xF: return SYSTEM;
|
|
1348
|
+
default: return ACTION_NONE;
|
|
1349
|
+
}
|
|
1248
1350
|
}
|
|
1249
1351
|
|
|
1250
1352
|
int
|
|
1251
|
-
|
|
1353
|
+
MIDIEvent::channel () const
|
|
1252
1354
|
{
|
|
1253
|
-
|
|
1355
|
+
auto a = action();
|
|
1356
|
+
if (a == ACTION_NONE || a == SYSTEM)
|
|
1357
|
+
return -1;
|
|
1358
|
+
|
|
1359
|
+
return self->bytes[0] & 0xF;
|
|
1254
1360
|
}
|
|
1255
1361
|
|
|
1256
|
-
|
|
1257
|
-
|
|
1362
|
+
uchar
|
|
1363
|
+
MIDIEvent::data1 () const
|
|
1258
1364
|
{
|
|
1259
|
-
return self->
|
|
1365
|
+
return self->bytes[1];
|
|
1260
1366
|
}
|
|
1261
1367
|
|
|
1262
|
-
|
|
1263
|
-
|
|
1368
|
+
uchar
|
|
1369
|
+
MIDIEvent::data2 () const
|
|
1264
1370
|
{
|
|
1265
|
-
return self->
|
|
1371
|
+
return self->bytes[2];
|
|
1266
1372
|
}
|
|
1267
1373
|
|
|
1268
1374
|
bool
|
|
1269
|
-
|
|
1375
|
+
MIDIEvent::is_captured () const
|
|
1270
1376
|
{
|
|
1271
|
-
return self->
|
|
1377
|
+
return self->captured;
|
|
1272
1378
|
}
|
|
1273
1379
|
|
|
1274
1380
|
|
|
1275
|
-
struct
|
|
1381
|
+
struct NoteEvent::Data
|
|
1276
1382
|
{
|
|
1277
1383
|
|
|
1278
|
-
Action action;
|
|
1384
|
+
Action action = ACTION_NONE;
|
|
1279
1385
|
|
|
1280
|
-
|
|
1386
|
+
int channel = 0;
|
|
1281
1387
|
|
|
1282
|
-
|
|
1388
|
+
int note = 0;
|
|
1283
1389
|
|
|
1284
|
-
|
|
1285
|
-
: action(action), shape(shape), view(view)
|
|
1286
|
-
{
|
|
1287
|
-
}
|
|
1390
|
+
float velocity = 0;
|
|
1288
1391
|
|
|
1289
|
-
|
|
1392
|
+
bool captured = false;
|
|
1290
1393
|
|
|
1394
|
+
};// NoteEvent::Data
|
|
1291
1395
|
|
|
1292
|
-
|
|
1396
|
+
|
|
1397
|
+
void
|
|
1398
|
+
NoteEvent_set_captured (NoteEvent* pthis, bool captured)
|
|
1293
1399
|
{
|
|
1400
|
+
pthis->self->captured = captured;
|
|
1294
1401
|
}
|
|
1295
1402
|
|
|
1296
|
-
|
|
1297
|
-
|
|
1403
|
+
|
|
1404
|
+
NoteEvent::NoteEvent ()
|
|
1298
1405
|
{
|
|
1299
1406
|
}
|
|
1300
1407
|
|
|
1301
|
-
|
|
1408
|
+
NoteEvent::NoteEvent (
|
|
1409
|
+
Action action, int channel, int note, float velocity, double time)
|
|
1410
|
+
: Event(time)
|
|
1411
|
+
{
|
|
1412
|
+
self->action = action;
|
|
1413
|
+
self->channel = channel;
|
|
1414
|
+
self->note = note;
|
|
1415
|
+
self->velocity = velocity;
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
NoteEvent::NoteEvent (const NoteEvent* src)
|
|
1302
1419
|
: Event(src), self(new Data(*src->self))
|
|
1303
1420
|
{
|
|
1304
1421
|
}
|
|
1305
1422
|
|
|
1306
|
-
|
|
1307
|
-
|
|
1423
|
+
NoteEvent
|
|
1424
|
+
NoteEvent::dup () const
|
|
1308
1425
|
{
|
|
1309
|
-
return
|
|
1426
|
+
return NoteEvent(this);
|
|
1310
1427
|
}
|
|
1311
1428
|
|
|
1312
|
-
|
|
1313
|
-
|
|
1429
|
+
NoteEvent::Action
|
|
1430
|
+
NoteEvent::action () const
|
|
1314
1431
|
{
|
|
1315
1432
|
return self->action;
|
|
1316
1433
|
}
|
|
1317
1434
|
|
|
1318
|
-
|
|
1319
|
-
|
|
1435
|
+
int
|
|
1436
|
+
NoteEvent::channel () const
|
|
1320
1437
|
{
|
|
1321
|
-
return self->
|
|
1438
|
+
return self->channel;
|
|
1322
1439
|
}
|
|
1323
1440
|
|
|
1324
|
-
|
|
1325
|
-
|
|
1441
|
+
int
|
|
1442
|
+
NoteEvent::note () const
|
|
1326
1443
|
{
|
|
1327
|
-
return
|
|
1444
|
+
return self->note;
|
|
1328
1445
|
}
|
|
1329
1446
|
|
|
1330
|
-
|
|
1331
|
-
|
|
1447
|
+
float
|
|
1448
|
+
NoteEvent::frequency () const
|
|
1332
1449
|
{
|
|
1333
|
-
|
|
1450
|
+
static const int A4 = 69;
|
|
1451
|
+
return 440 * std::pow(2.0, (note() - A4) / 12.0);
|
|
1334
1452
|
}
|
|
1335
1453
|
|
|
1336
|
-
|
|
1337
|
-
|
|
1454
|
+
float
|
|
1455
|
+
NoteEvent::velocity () const
|
|
1338
1456
|
{
|
|
1339
|
-
return
|
|
1457
|
+
return self->velocity;
|
|
1340
1458
|
}
|
|
1341
1459
|
|
|
1460
|
+
bool
|
|
1461
|
+
NoteEvent::is_captured () const
|
|
1462
|
+
{
|
|
1463
|
+
return self->captured;
|
|
1464
|
+
}
|
|
1342
1465
|
|
|
1343
|
-
|
|
1466
|
+
|
|
1467
|
+
struct ControlChangeEvent::Data
|
|
1344
1468
|
{
|
|
1345
1469
|
|
|
1346
|
-
|
|
1470
|
+
int channel = 0;
|
|
1347
1471
|
|
|
1348
|
-
|
|
1349
|
-
: gravity(gravity)
|
|
1350
|
-
{
|
|
1351
|
-
}
|
|
1472
|
+
int controller = 0;
|
|
1352
1473
|
|
|
1353
|
-
|
|
1474
|
+
float value = 0;
|
|
1354
1475
|
|
|
1476
|
+
bool captured = false;
|
|
1355
1477
|
|
|
1356
|
-
|
|
1357
|
-
|
|
1478
|
+
};// ControlChangeEvent::Data
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
void
|
|
1482
|
+
ControlChangeEvent_set_captured (ControlChangeEvent* pthis, bool captured)
|
|
1358
1483
|
{
|
|
1484
|
+
pthis->self->captured = captured;
|
|
1359
1485
|
}
|
|
1360
1486
|
|
|
1361
|
-
|
|
1487
|
+
|
|
1488
|
+
ControlChangeEvent::ControlChangeEvent ()
|
|
1489
|
+
{
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
ControlChangeEvent::ControlChangeEvent (
|
|
1493
|
+
int channel, int controller, float value, double time)
|
|
1494
|
+
: Event(time)
|
|
1495
|
+
{
|
|
1496
|
+
self->channel = channel;
|
|
1497
|
+
self->controller = controller;
|
|
1498
|
+
self->value = value;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
ControlChangeEvent::ControlChangeEvent (const ControlChangeEvent* src)
|
|
1362
1502
|
: Event(src), self(new Data(*src->self))
|
|
1363
1503
|
{
|
|
1364
1504
|
}
|
|
1365
1505
|
|
|
1366
|
-
|
|
1367
|
-
|
|
1506
|
+
ControlChangeEvent
|
|
1507
|
+
ControlChangeEvent::dup () const
|
|
1368
1508
|
{
|
|
1369
|
-
return
|
|
1509
|
+
return ControlChangeEvent(this);
|
|
1370
1510
|
}
|
|
1371
1511
|
|
|
1372
|
-
|
|
1373
|
-
|
|
1512
|
+
int
|
|
1513
|
+
ControlChangeEvent::channel () const
|
|
1374
1514
|
{
|
|
1375
|
-
return self->
|
|
1515
|
+
return self->channel;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
int
|
|
1519
|
+
ControlChangeEvent::controller () const
|
|
1520
|
+
{
|
|
1521
|
+
return self->controller;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
float
|
|
1525
|
+
ControlChangeEvent::value () const
|
|
1526
|
+
{
|
|
1527
|
+
return self->value;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
bool
|
|
1531
|
+
ControlChangeEvent::is_captured () const
|
|
1532
|
+
{
|
|
1533
|
+
return self->captured;
|
|
1376
1534
|
}
|
|
1377
1535
|
|
|
1378
1536
|
|