Revert "[NUI] Dialog and AlertDialog code refactoring with adding DialogPage"
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / CameraViewTest.cs
1
2 using global::System;
3 using Tizen.NUI.BaseComponents;
4 using Tizen.NUI.Components;
5
6 namespace Tizen.NUI.Samples
7 {
8     using tlog = Tizen.Log;
9
10     public class CameraViewTest : IExample
11     {
12
13         Window win;
14         CameraView overlayCameraView;
15         CameraView imageCameraView;
16         Button overlayButton;
17         Button nativeButton;
18         Button sizeButton;
19         Button rotationButton;
20
21         Tizen.Multimedia.Camera overlayCamera;
22         Tizen.Multimedia.Camera imageCamera;
23
24         const string tag = "NUI";
25
26         public void Activate()
27         {
28             win = NUIApplication.GetDefaultWindow();
29             win.BackgroundColor = new Color(1, 1, 1, 0);
30             win.KeyEvent += Win_KeyEvent;
31
32             overlayButton = new Button();
33             overlayButton.Text = "Overlay";
34             overlayButton.Size = new Size(100, 100);
35             overlayButton.Position = new Position( 50, 750);
36             overlayButton.Clicked += OverlayButtonClicked;
37             win.Add(overlayButton);
38
39             nativeButton = new Button();
40             nativeButton.Text = "Image";
41             nativeButton.Size = new Size(100, 100);
42             nativeButton.Position = new Position( 160, 750);
43             nativeButton.Clicked += NativeButtonClicked;
44             win.Add(nativeButton);
45
46             sizeButton = new Button();
47             sizeButton.Text = "Size";
48             sizeButton.Size = new Size(100, 100);
49             sizeButton.Position = new Position(50, 850);
50             sizeButton.Clicked += sizeButtonClicked;
51             win.Add(sizeButton);
52
53
54             rotationButton = new Button();
55             rotationButton.Text = "Rotation";
56             rotationButton.Size = new Size(100, 100);
57             rotationButton.Position = new Position(160, 850);
58             rotationButton.Clicked += rotationButtonClicked;
59             win.Add(rotationButton);
60
61             OverlayCamera();
62             // ImageCamera();
63
64         }
65
66         private int rotationCnt = 0;
67         private void rotationButtonClicked(object sender, ClickedEventArgs e)
68         {
69             int rotation = rotationCnt % 4;
70             Vector3 axis;
71             Degree degree;
72             if(overlayCamera != null) {
73                 switch(rotation)
74                 {
75                     case 0 :
76                         overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate0;
77                         overlayCameraView.Update();
78                         break;
79                     case 1:
80                         overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate90;
81                         overlayCameraView.Update();
82                         break;
83                     case 2:
84                         overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate180;
85                         overlayCameraView.Update();
86                         break;
87                     case 3:
88                         overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate270;
89                         overlayCameraView.Update();
90                         break;
91                     default:
92                         overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate0;
93                         overlayCameraView.Update();
94                         break;
95                 }
96             }
97             rotationCnt++;
98         }
99
100         private void OverlayButtonClicked(object sender, ClickedEventArgs e)
101         {
102             if(imageCamera != null)
103             {
104                 imageCamera.StopPreview();
105                 imageCamera.Dispose();
106                 imageCamera = null;
107                 win.Remove(imageCameraView);
108             }
109             if(overlayCamera == null)
110             {
111                 OverlayCamera();
112             }
113         }
114
115         private void NativeButtonClicked(object sender, ClickedEventArgs e)
116         {
117             if(overlayCamera != null)
118             {
119                 overlayCamera.StopPreview();
120                 overlayCamera.Dispose();
121                 overlayCamera = null;
122                 win.Remove(overlayCameraView);
123             }
124             if(imageCamera == null)
125             {
126                 ImageCamera();
127             }
128         }
129
130         private void OverlayCamera()
131         {
132
133             overlayCamera = new Tizen.Multimedia.Camera(Tizen.Multimedia.CameraDevice.Front);
134             // default display type is Window (Overlay mode)
135             overlayCameraView = new CameraView(overlayCamera.Handle);
136             overlayCameraView.PositionUsesPivotPoint = true;
137             overlayCameraView.ParentOrigin = ParentOrigin.TopLeft;
138             overlayCameraView.PivotPoint = PivotPoint.TopLeft;
139             overlayCameraView.Size = new Size(300, 400);
140             overlayCameraView.Position = new Position(100, 200);
141
142             overlayCamera.StartPreview();
143
144             win.Add(overlayCameraView);
145         }
146
147         private void ImageCamera()
148         {
149
150             imageCamera = new Tizen.Multimedia.Camera(Tizen.Multimedia.CameraDevice.Front);
151             // default display type is Window (Overlay mode)
152             imageCameraView = new CameraView(imageCamera.Handle, CameraView.DisplayType.Image);
153             imageCameraView.PositionUsesPivotPoint = true;
154             imageCameraView.ParentOrigin = ParentOrigin.TopLeft;
155             imageCameraView.PivotPoint = PivotPoint.TopLeft;
156             imageCameraView.Position = new Position(0, 400);
157             imageCameraView.Size = new Size(300, 300);
158
159             imageCamera.StartPreview();
160
161             win.Add(imageCameraView);
162         }
163
164         private int size = 300;
165         private void sizeButtonClicked(object sender, ClickedEventArgs e)
166         {
167             if(overlayCameraView != null)
168                 overlayCameraView.Size = new Size(size, size);
169             if(imageCameraView != null)
170                 imageCameraView.Size = new Size(size, size);
171             size += 20;
172         }
173
174
175         public void Deactivate()
176         {
177             win.KeyEvent -= Win_KeyEvent;
178
179              if(imageCamera != null)
180             {
181
182                 imageCamera.StopPreview();
183                 imageCamera.Dispose();
184                 imageCamera = null;
185
186                 win.Remove(imageCameraView);
187                 imageCameraView.Dispose();
188             }
189
190             if(overlayCamera != null)
191             {
192                 overlayCamera.StopPreview();
193                 overlayCamera.Dispose();
194                 overlayCamera = null;
195                 win.Remove(overlayCameraView);
196                 overlayCameraView.Dispose();
197             }
198
199
200             tlog.Fatal(tag, $"Deactivate()! cameraView disposed");
201         }
202
203
204         private void Win_KeyEvent(object sender, Window.KeyEventArgs e)
205         {
206             if (e.Key.State == Key.StateType.Down)
207             {
208                 tlog.Fatal(tag, $"key pressed name={e.Key.KeyPressedName}");
209                 if (e.Key.KeyPressedName == "XF86Back")
210                 {
211                     Deactivate();
212                 }
213             }
214         }
215
216     }
217 }
218
219
220