xref: /OK3568_Linux_fs/app/forlinx/flapp/src/plugins/allwinner/camera/CameraUI/src/main_desktop.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef MAIN_DESKTOP_H
2 #define MAIN_DESKTOP_H
3 
4 #include <QWidget>
5 #include <QDebug>
6 #include <QPixmap>
7 #include <QDateTime>
8 #include <QString>
9 #include <QTimer>
10 #include <QPalette>
11 #include <QPixmap>
12 #include <QDir>
13 #include <QFileDialog>
14 #include <QMessageBox>
15 #include <QScreen>
16 #include "setfirst.h"
17 #include "dashboard.h"
18 #include "reverselinewidget.h"
19 #define os_test Q_OS_LINUX
20 
21 #if defined(Q_OS_LINUX)
22 #define PATH_SDCARD  "/mnt/sdcard/mmcblk1p1/"
23 #define PATH_SD_DEV  "/dev/mmcblk1p1"
24 #define HAVA_TWO_CAMERA 1  //While move to cfg
25 #define CAMERA_FONT 0  //While move to cfg
26 #define CAMERA_BACK 1 //While move to cfg
27 #define LOG_BUF_SIZE	1024
28 #define VIEW_WEITH 1024
29 #define VIEW_HEIGHT 600
30 #define TEST_CAMERA_ID 0
31 //#define CAMERA_TEST 1
32 #define  Double_Camera_Test 0;
33 
34 #include <linux/videodev2.h>
35 #include <sys/ioctl.h>
36 #include <sys/mman.h>
37 #include <fcntl.h>
38 #include <unistd.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42 #include <stdio.h>
43 #include <linux/fb.h>
44 
45 #include "hwdisp2.h"
46 #include "aw_ini_parser.h"
47 #include <sdklog.h>
48 #include "CameraDebug.h"
49 #include "hwdisp2.h"
50 
51 #include "V4L2CameraDevice2.h"
52 #include "CallbackNotifier.h"
53 #include "PreviewWindow.h"
54 #include "CameraHardware2.h"
55 #include "audio_hal.h"
56 #ifdef REC_ENCODE
57 #include "awrecorder.h"
58 #endif
59 #include <stdio.h>
60 #include <stdlib.h>
61 #include <string.h>
62 #include <unistd.h>
63 #include <signal.h>
64 #include <sys/types.h>
65 #include <sys/ipc.h>
66 #include <sys/msg.h>
67 #include <errno.h>
68 #include <sys/time.h>
69 #ifndef CDX_V27
70 #include "log.h"
71 #endif
72 #include <stdio.h>
73 #include <stdlib.h>
74 #include <string.h>
75 #include "vencoder.h"
76 #include "CdxMuxer.h"
77 #include <time.h>
78 
79 #include "Rtc.h"
80 #include "StorageManager.h"
81 #include "DvrFactory.h"
82 #include "CameraFileCfg.h"
83 #include <sys/socket.h>
84 #include <sys/un.h>
85 #include "Fat.h"
86 #include "DebugLevelThread.h"
87 #include "DvrRecordManager.h"
88 using namespace android;
89 
90 #define RECORD_TEST 1
91 //#define AUDIO_TEST
92 #define MAX_TEST_CAMERA 8
93 #define MAX_RED_VIDEOS 6
94 
95 
96 #include "NetlinkManager.h"
97 #include "NetlinkHandler.h"
98 #include "NetlinkEvent.h"
99 #include "cameraseldlg.h"
100 #include "recordseldlg.h"
101 #include "iwidget.h"
102 
103 void testaut_event_cb_func(NetlinkEvent *evt,void *usrdata);
104 extern "C" int aut_adb_main(int argc, char **argv);
105 
106 #endif
107 namespace Ui {
108 class main_desktop;
109 }
110 
111 class main_desktop : public IWidget
112 {
113     Q_OBJECT
114    Q_PLUGIN_METADATA(IID PLUGIN_INTERFACE_iid FILE "cameraui.json")
115 public:
116     explicit main_desktop(QWidget *parent = 0);
117     ~main_desktop();
118 
119     QString id();
120 protected:
121     void paintEvent(QPaintEvent *event);
122 private://用于检测是否有动作
123     void mouseMoveEvent(QMouseEvent *event);
124     void mouseDoubleClickEvent(QMouseEvent *event);
125     void mousePressEvent(QMouseEvent *event);
126     void mouseReleaseEvent(QMouseEvent *event) ;
127 
128     void on_mouse_active();
129 private:
130     Ui::main_desktop *ui;
131     bool m_bCameraState;//camera state:true=front,false=rear
132     bool isRecording;
133     QTimer *mouseMoveTime;
134     QPixmap screenshot_pic;
135     void accept();
136 public slots:
137     void timerUpdate(void);
138 //    void cameraChange();
139 public slots:
140     void on_mouse_no_active_10_second();
141     void on_main_desktop_disvisible();
142     void on_main_desktop_visible();
143 
144 public slots:
145     void on_recordButton_clicked();
146 
147     void on_camera_change_Button_clicked();
148 
149     void on_setFirstButton_clicked();
150 
151     void on_movieButton_clicked();
152 
153     void on_cameraButton_clicked();
154 
155     void on_reverseLine_repaint();
156 
157     void on_sdcard_delete();
158 
159     void on_sdcard_insert();
160 
161 private:
162     SetFirst *m_pSettingDesktop;
163     CameraSelDlg *m_pCamSelDlg;
164     RecordSelDlg *m_pRedselDlg;
165     dvr_factory *m_pDvrs[MAX_TEST_CAMERA];
166     int m_iVideoStateCfg[MAX_TEST_CAMERA];
167     bool m_bPreview;
168 //    dashBoard *dashboards;
169     reverseLineWidget* reverseLinewidget;
170 
171 private:
172     void setButtonVisible();
173     void setButtonDisvisible();
174     void FormInCenter();
175 public:
176 
177 
178     int  startAllCameraWithPreview(int camera_no /* nouse now*/);
179     int m_iCurCamera;
videoshow()180     void videoshow()
181     {
182         startAllCameraWithPreview(0);
183     }
184     void CameraSwitch(int iCameraId);
185     void RecordCamSel(int *piCameras);
186     int m_iRedCameraState[MAX_TEST_CAMERA];//save the record state for cameras[0:stop 1:start 0xff: invalid value]
187 #ifdef AUTEVENT
188 signals:
189     void usb_is_mount();
190     void usb_is_umount();
191 //    static void  testaut_event_cb_func1(NetlinkEvent *evt,void *usrdata);
192 #endif
193     #if defined(Q_OS_LINUX)
194     Mutex                           mObjectLock;
195     #endif
196 private slots:
197     void on_pushButtonHome_clicked();
198     void on_pushButton_clicked();
199 };
200 
201 #endif // MAIN_DESKTOP_H
202 
203