ui3Activity.cpp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. /***********************************************
  2. /gen auto by zuitools
  3. ***********************************************/
  4. #include "ui3Activity.h"
  5. /*TAG:GlobalVariable全局变量*/
  6. static ZKTextView* mTestErrorTextViewPtr;
  7. static ZKButton* mTestConfirmButtonPtr;
  8. static ZKTextView* mTestPasswordTextViewPtr;
  9. static ZKEditText* mTestPasswordEditTextPtr;
  10. static ZKWindow* mTestPasswordWindowPtr;
  11. static ZKButton* mTestButtonPtr;
  12. static ZKPainter* mUi3PainterPtr;
  13. static ZKButton* msys_backPtr;
  14. static ZKTextView* mVoiceDomainPtr;
  15. static ZKButton* mBtnSoftVerPtr;
  16. static ZKButton* mBtnNetSettingPtr;
  17. static ZKTextView* mServerIPPtr;
  18. static ZKTextView* mTextView7Ptr;
  19. static ZKTextView* mTextView10Ptr;
  20. static ZKTextView* mDeviceCodePtr;
  21. static ZKTextView* mTextPwdInfoPtr;
  22. static ZKButton* mBtnRestartPtr;
  23. static ZKTextView* mTextView12Ptr;
  24. static ZKTextView* mGatewayPtr;
  25. static ZKTextView* mTextView8Ptr;
  26. static ZKTextView* mNetMaskPtr;
  27. static ZKTextView* mServerIPMsgPtr;
  28. static ZKButton* mBtnServerIPConfirmPtr;
  29. static ZKTextView* mTextView6Ptr;
  30. static ZKEditText* mEditTextServerIPPtr;
  31. static ZKWindow* mWindowServerIPPtr;
  32. static ZKWindow* mWindowPwdPtr;
  33. static ZKButton* mBtnPwdConfirmPtr;
  34. static ZKTextView* mTextView2Ptr;
  35. static ZKEditText* mEditTextPwdPtr;
  36. static ZKButton* mSettingPtr;
  37. static ZKTextView* mTextView4Ptr;
  38. static ZKTextView* mDeviceIpPtr;
  39. static ZKQRCode* mQRCode1Ptr;
  40. static ZKTextView* mTextView11Ptr;
  41. static ZKTextView* mVersionPtr;
  42. static ZKTextView* mTextView9Ptr;
  43. static ZKTextView* mVoiceIdPtr;
  44. static ZKTextView* mTextView5Ptr;
  45. static ZKTextView* mDeviceMacPtr;
  46. static ZKTextView* mTextView3Ptr;
  47. static ZKTextView* mDeviceIdPtr;
  48. static ZKTextView* mTextView1Ptr;
  49. static ui3Activity* mActivityPtr;
  50. /*register activity*/
  51. REGISTER_ACTIVITY(ui3Activity);
  52. typedef struct {
  53. int id; // 定时器ID , 不能重复
  54. int time; // 定时器 时间间隔 单位 毫秒
  55. }S_ACTIVITY_TIMEER;
  56. #include "logic/ui3Logic.cc"
  57. /***********/
  58. typedef struct {
  59. int id;
  60. const char *pApp;
  61. } SAppInfo;
  62. /**
  63. *点击跳转window
  64. */
  65. static SAppInfo sAppInfoTab[] = {
  66. // { ID_MAIN_TEXT, "TextViewActivity" },
  67. };
  68. /***************/
  69. typedef bool (*ButtonCallback)(ZKButton *pButton);
  70. /**
  71. * button onclick表
  72. */
  73. typedef struct {
  74. int id;
  75. ButtonCallback callback;
  76. }S_ButtonCallback;
  77. /*TAG:ButtonCallbackTab按键映射表*/
  78. static S_ButtonCallback sButtonCallbackTab[] = {
  79. ID_UI3_TestConfirmButton, onButtonClick_TestConfirmButton,
  80. ID_UI3_TestButton, onButtonClick_TestButton,
  81. ID_UI3_sys_back, onButtonClick_sys_back,
  82. ID_UI3_BtnSoftVer, onButtonClick_BtnSoftVer,
  83. ID_UI3_BtnNetSetting, onButtonClick_BtnNetSetting,
  84. ID_UI3_BtnRestart, onButtonClick_BtnRestart,
  85. ID_UI3_BtnServerIPConfirm, onButtonClick_BtnServerIPConfirm,
  86. ID_UI3_BtnPwdConfirm, onButtonClick_BtnPwdConfirm,
  87. ID_UI3_Setting, onButtonClick_Setting,
  88. };
  89. /***************/
  90. typedef void (*SeekBarCallback)(ZKSeekBar *pSeekBar, int progress);
  91. typedef struct {
  92. int id;
  93. SeekBarCallback callback;
  94. }S_ZKSeekBarCallback;
  95. /*TAG:SeekBarCallbackTab*/
  96. static S_ZKSeekBarCallback SZKSeekBarCallbackTab[] = {
  97. };
  98. typedef int (*ListViewGetItemCountCallback)(const ZKListView *pListView);
  99. typedef void (*ListViewobtainListItemDataCallback)(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index);
  100. typedef void (*ListViewonItemClickCallback)(ZKListView *pListView, int index, int id);
  101. typedef struct {
  102. int id;
  103. ListViewGetItemCountCallback getListItemCountCallback;
  104. ListViewobtainListItemDataCallback obtainListItemDataCallback;
  105. ListViewonItemClickCallback onItemClickCallback;
  106. }S_ListViewFunctionsCallback;
  107. /*TAG:ListViewFunctionsCallback*/
  108. static S_ListViewFunctionsCallback SListViewFunctionsCallbackTab[] = {
  109. };
  110. typedef void (*SlideWindowItemClickCallback)(ZKSlideWindow *pSlideWindow, int index);
  111. typedef struct {
  112. int id;
  113. SlideWindowItemClickCallback onSlideItemClickCallback;
  114. }S_SlideWindowItemClickCallback;
  115. /*TAG:SlideWindowFunctionsCallbackTab*/
  116. static S_SlideWindowItemClickCallback SSlideWindowItemClickCallbackTab[] = {
  117. };
  118. typedef void (*EditTextInputCallback)(const std::string &text);
  119. typedef struct {
  120. int id;
  121. EditTextInputCallback onEditTextChangedCallback;
  122. }S_EditTextInputCallback;
  123. /*TAG:EditTextInputCallback*/
  124. static S_EditTextInputCallback SEditTextInputCallbackTab[] = {
  125. ID_UI3_TestPasswordEditText, onEditTextChanged_TestPasswordEditText,
  126. ID_UI3_EditTextServerIP, onEditTextChanged_EditTextServerIP,
  127. ID_UI3_EditTextPwd, onEditTextChanged_EditTextPwd,
  128. };
  129. typedef void (*VideoViewCallback)(ZKVideoView *pVideoView, int msg);
  130. typedef struct {
  131. int id; //VideoView ID
  132. bool loop; // 是否是轮播类型
  133. int defaultvolume;//轮播类型时,默认视频音量
  134. VideoViewCallback onVideoViewCallback;
  135. }S_VideoViewCallback;
  136. /*TAG:VideoViewCallback*/
  137. static S_VideoViewCallback SVideoViewCallbackTab[] = {
  138. };
  139. ui3Activity::ui3Activity() {
  140. //todo add init code here
  141. mVideoLoopIndex = -1;
  142. mVideoLoopErrorCount = 0;
  143. }
  144. ui3Activity::~ui3Activity() {
  145. //todo add init file here
  146. // 退出应用时需要反注册
  147. EASYUICONTEXT->unregisterGlobalTouchListener(this);
  148. onUI_quit();
  149. unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
  150. mTestErrorTextViewPtr = NULL;
  151. mTestConfirmButtonPtr = NULL;
  152. mTestPasswordTextViewPtr = NULL;
  153. mTestPasswordEditTextPtr = NULL;
  154. mTestPasswordWindowPtr = NULL;
  155. mTestButtonPtr = NULL;
  156. mUi3PainterPtr = NULL;
  157. msys_backPtr = NULL;
  158. mVoiceDomainPtr = NULL;
  159. mBtnSoftVerPtr = NULL;
  160. mBtnNetSettingPtr = NULL;
  161. mServerIPPtr = NULL;
  162. mTextView7Ptr = NULL;
  163. mTextView10Ptr = NULL;
  164. mDeviceCodePtr = NULL;
  165. mTextPwdInfoPtr = NULL;
  166. mBtnRestartPtr = NULL;
  167. mTextView12Ptr = NULL;
  168. mGatewayPtr = NULL;
  169. mTextView8Ptr = NULL;
  170. mNetMaskPtr = NULL;
  171. mServerIPMsgPtr = NULL;
  172. mBtnServerIPConfirmPtr = NULL;
  173. mTextView6Ptr = NULL;
  174. mEditTextServerIPPtr = NULL;
  175. mWindowServerIPPtr = NULL;
  176. mWindowPwdPtr = NULL;
  177. mBtnPwdConfirmPtr = NULL;
  178. mTextView2Ptr = NULL;
  179. mEditTextPwdPtr = NULL;
  180. mSettingPtr = NULL;
  181. mTextView4Ptr = NULL;
  182. mDeviceIpPtr = NULL;
  183. mQRCode1Ptr = NULL;
  184. mTextView11Ptr = NULL;
  185. mVersionPtr = NULL;
  186. mTextView9Ptr = NULL;
  187. mVoiceIdPtr = NULL;
  188. mTextView5Ptr = NULL;
  189. mDeviceMacPtr = NULL;
  190. mTextView3Ptr = NULL;
  191. mDeviceIdPtr = NULL;
  192. mTextView1Ptr = NULL;
  193. mActivityPtr = NULL;
  194. }
  195. const char* ui3Activity::getAppName() const{
  196. return "ui3.ftu";
  197. }
  198. //TAG:onCreate
  199. void ui3Activity::onCreate() {
  200. Activity::onCreate();
  201. mTestErrorTextViewPtr = (ZKTextView*)findControlByID(ID_UI3_TestErrorTextView);
  202. mTestConfirmButtonPtr = (ZKButton*)findControlByID(ID_UI3_TestConfirmButton);
  203. mTestPasswordTextViewPtr = (ZKTextView*)findControlByID(ID_UI3_TestPasswordTextView);
  204. mTestPasswordEditTextPtr = (ZKEditText*)findControlByID(ID_UI3_TestPasswordEditText);if(mTestPasswordEditTextPtr!= NULL){mTestPasswordEditTextPtr->setTextChangeListener(this);}
  205. mTestPasswordWindowPtr = (ZKWindow*)findControlByID(ID_UI3_TestPasswordWindow);
  206. mTestButtonPtr = (ZKButton*)findControlByID(ID_UI3_TestButton);
  207. mUi3PainterPtr = (ZKPainter*)findControlByID(ID_UI3_Ui3Painter);
  208. msys_backPtr = (ZKButton*)findControlByID(ID_UI3_sys_back);
  209. mVoiceDomainPtr = (ZKTextView*)findControlByID(ID_UI3_VoiceDomain);
  210. mBtnSoftVerPtr = (ZKButton*)findControlByID(ID_UI3_BtnSoftVer);
  211. mBtnNetSettingPtr = (ZKButton*)findControlByID(ID_UI3_BtnNetSetting);
  212. mServerIPPtr = (ZKTextView*)findControlByID(ID_UI3_ServerIP);
  213. mTextView7Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView7);
  214. mTextView10Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView10);
  215. mDeviceCodePtr = (ZKTextView*)findControlByID(ID_UI3_DeviceCode);
  216. mTextPwdInfoPtr = (ZKTextView*)findControlByID(ID_UI3_TextPwdInfo);
  217. mBtnRestartPtr = (ZKButton*)findControlByID(ID_UI3_BtnRestart);
  218. mTextView12Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView12);
  219. mGatewayPtr = (ZKTextView*)findControlByID(ID_UI3_Gateway);
  220. mTextView8Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView8);
  221. mNetMaskPtr = (ZKTextView*)findControlByID(ID_UI3_NetMask);
  222. mServerIPMsgPtr = (ZKTextView*)findControlByID(ID_UI3_ServerIPMsg);
  223. mBtnServerIPConfirmPtr = (ZKButton*)findControlByID(ID_UI3_BtnServerIPConfirm);
  224. mTextView6Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView6);
  225. mEditTextServerIPPtr = (ZKEditText*)findControlByID(ID_UI3_EditTextServerIP);if(mEditTextServerIPPtr!= NULL){mEditTextServerIPPtr->setTextChangeListener(this);}
  226. mWindowServerIPPtr = (ZKWindow*)findControlByID(ID_UI3_WindowServerIP);
  227. mWindowPwdPtr = (ZKWindow*)findControlByID(ID_UI3_WindowPwd);
  228. mBtnPwdConfirmPtr = (ZKButton*)findControlByID(ID_UI3_BtnPwdConfirm);
  229. mTextView2Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView2);
  230. mEditTextPwdPtr = (ZKEditText*)findControlByID(ID_UI3_EditTextPwd);if(mEditTextPwdPtr!= NULL){mEditTextPwdPtr->setTextChangeListener(this);}
  231. mSettingPtr = (ZKButton*)findControlByID(ID_UI3_Setting);
  232. mTextView4Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView4);
  233. mDeviceIpPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceIp);
  234. mQRCode1Ptr = (ZKQRCode*)findControlByID(ID_UI3_QRCode1);
  235. mTextView11Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView11);
  236. mVersionPtr = (ZKTextView*)findControlByID(ID_UI3_Version);
  237. mTextView9Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView9);
  238. mVoiceIdPtr = (ZKTextView*)findControlByID(ID_UI3_VoiceId);
  239. mTextView5Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView5);
  240. mDeviceMacPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceMac);
  241. mTextView3Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView3);
  242. mDeviceIdPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceId);
  243. mTextView1Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView1);
  244. mActivityPtr = this;
  245. onUI_init();
  246. registerProtocolDataUpdateListener(onProtocolDataUpdate);
  247. rigesterActivityTimer();
  248. }
  249. void ui3Activity::onClick(ZKBase *pBase) {
  250. //TODO: add widget onClik code
  251. int buttonTablen = sizeof(sButtonCallbackTab) / sizeof(S_ButtonCallback);
  252. for (int i = 0; i < buttonTablen; ++i) {
  253. if (sButtonCallbackTab[i].id == pBase->getID()) {
  254. if (sButtonCallbackTab[i].callback((ZKButton*)pBase)) {
  255. return;
  256. }
  257. break;
  258. }
  259. }
  260. int len = sizeof(sAppInfoTab) / sizeof(sAppInfoTab[0]);
  261. for (int i = 0; i < len; ++i) {
  262. if (sAppInfoTab[i].id == pBase->getID()) {
  263. EASYUICONTEXT->openActivity(sAppInfoTab[i].pApp);
  264. return;
  265. }
  266. }
  267. Activity::onClick(pBase);
  268. }
  269. void ui3Activity::onResume() {
  270. Activity::onResume();
  271. EASYUICONTEXT->registerGlobalTouchListener(this);
  272. startVideoLoopPlayback();
  273. onUI_show();
  274. }
  275. void ui3Activity::onPause() {
  276. Activity::onPause();
  277. EASYUICONTEXT->unregisterGlobalTouchListener(this);
  278. stopVideoLoopPlayback();
  279. onUI_hide();
  280. }
  281. void ui3Activity::onIntent(const Intent *intentPtr) {
  282. Activity::onIntent(intentPtr);
  283. onUI_intent(intentPtr);
  284. }
  285. bool ui3Activity::onTimer(int id) {
  286. return onUI_Timer(id);
  287. }
  288. void ui3Activity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
  289. int seekBarTablen = sizeof(SZKSeekBarCallbackTab) / sizeof(S_ZKSeekBarCallback);
  290. for (int i = 0; i < seekBarTablen; ++i) {
  291. if (SZKSeekBarCallbackTab[i].id == pSeekBar->getID()) {
  292. SZKSeekBarCallbackTab[i].callback(pSeekBar, progress);
  293. break;
  294. }
  295. }
  296. }
  297. int ui3Activity::getListItemCount(const ZKListView *pListView) const{
  298. int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
  299. for (int i = 0; i < tablen; ++i) {
  300. if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
  301. return SListViewFunctionsCallbackTab[i].getListItemCountCallback(pListView);
  302. break;
  303. }
  304. }
  305. return 0;
  306. }
  307. void ui3Activity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
  308. int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
  309. for (int i = 0; i < tablen; ++i) {
  310. if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
  311. SListViewFunctionsCallbackTab[i].obtainListItemDataCallback(pListView, pListItem, index);
  312. break;
  313. }
  314. }
  315. }
  316. void ui3Activity::onItemClick(ZKListView *pListView, int index, int id){
  317. int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
  318. for (int i = 0; i < tablen; ++i) {
  319. if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
  320. SListViewFunctionsCallbackTab[i].onItemClickCallback(pListView, index, id);
  321. break;
  322. }
  323. }
  324. }
  325. void ui3Activity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
  326. int tablen = sizeof(SSlideWindowItemClickCallbackTab) / sizeof(S_SlideWindowItemClickCallback);
  327. for (int i = 0; i < tablen; ++i) {
  328. if (SSlideWindowItemClickCallbackTab[i].id == pSlideWindow->getID()) {
  329. SSlideWindowItemClickCallbackTab[i].onSlideItemClickCallback(pSlideWindow, index);
  330. break;
  331. }
  332. }
  333. }
  334. bool ui3Activity::onTouchEvent(const MotionEvent &ev) {
  335. return onui3ActivityTouchEvent(ev);
  336. }
  337. void ui3Activity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
  338. int tablen = sizeof(SEditTextInputCallbackTab) / sizeof(S_EditTextInputCallback);
  339. for (int i = 0; i < tablen; ++i) {
  340. if (SEditTextInputCallbackTab[i].id == pTextView->getID()) {
  341. SEditTextInputCallbackTab[i].onEditTextChangedCallback(text);
  342. break;
  343. }
  344. }
  345. }
  346. void ui3Activity::rigesterActivityTimer() {
  347. int tablen = sizeof(REGISTER_ACTIVITY_TIMER_TAB) / sizeof(S_ACTIVITY_TIMEER);
  348. for (int i = 0; i < tablen; ++i) {
  349. S_ACTIVITY_TIMEER temp = REGISTER_ACTIVITY_TIMER_TAB[i];
  350. registerTimer(temp.id, temp.time);
  351. }
  352. }
  353. void ui3Activity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
  354. int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
  355. for (int i = 0; i < tablen; ++i) {
  356. if (SVideoViewCallbackTab[i].id == pVideoView->getID()) {
  357. if (SVideoViewCallbackTab[i].loop) {
  358. //循环播放
  359. videoLoopPlayback(pVideoView, msg, i);
  360. } else if (SVideoViewCallbackTab[i].onVideoViewCallback != NULL){
  361. SVideoViewCallbackTab[i].onVideoViewCallback(pVideoView, msg);
  362. }
  363. break;
  364. }
  365. }
  366. }
  367. void ui3Activity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
  368. switch (msg) {
  369. case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED:
  370. LOGD("ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED\n");
  371. if (callbackTabIndex >= (sizeof(SVideoViewCallbackTab)/sizeof(S_VideoViewCallback))) {
  372. break;
  373. }
  374. pVideoView->setVolume(SVideoViewCallbackTab[callbackTabIndex].defaultvolume / 10.0);
  375. mVideoLoopErrorCount = 0;
  376. break;
  377. case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_ERROR:
  378. /**错误处理 */
  379. ++mVideoLoopErrorCount;
  380. if (mVideoLoopErrorCount > 100) {
  381. LOGD("video loop error counts > 100, quit loop playback !");
  382. break;
  383. } //不用break, 继续尝试播放下一个
  384. case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_COMPLETED:
  385. LOGD("ZKVideoView::E_MSGTYPE_VIDEO_PLAY_COMPLETED\n");
  386. std::vector<std::string> videolist;
  387. std::string fileName(getAppName());
  388. if (fileName.size() < 4) {
  389. LOGD("getAppName size < 4, ignore!");
  390. break;
  391. }
  392. fileName = fileName.substr(0, fileName.length() - 4) + "_video_list.txt";
  393. fileName = "/mnt/extsd/" + fileName;
  394. if (!parseVideoFileList(fileName.c_str(), videolist)) {
  395. LOGD("parseVideoFileList failed !");
  396. break;
  397. }
  398. if (pVideoView && !videolist.empty()) {
  399. mVideoLoopIndex = (mVideoLoopIndex + 1) % videolist.size();
  400. pVideoView->play(videolist[mVideoLoopIndex].c_str());
  401. }
  402. break;
  403. }
  404. }
  405. void ui3Activity::startVideoLoopPlayback() {
  406. int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
  407. for (int i = 0; i < tablen; ++i) {
  408. if (SVideoViewCallbackTab[i].loop) {
  409. ZKVideoView* videoView = (ZKVideoView*)findControlByID(SVideoViewCallbackTab[i].id);
  410. if (!videoView) {
  411. return;
  412. }
  413. //循环播放
  414. videoLoopPlayback(videoView, ZKVideoView::E_MSGTYPE_VIDEO_PLAY_COMPLETED, i);
  415. return;
  416. }
  417. }
  418. }
  419. void ui3Activity::stopVideoLoopPlayback() {
  420. int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
  421. for (int i = 0; i < tablen; ++i) {
  422. if (SVideoViewCallbackTab[i].loop) {
  423. ZKVideoView* videoView = (ZKVideoView*)findControlByID(SVideoViewCallbackTab[i].id);
  424. if (!videoView) {
  425. return;
  426. }
  427. if (videoView->isPlaying()) {
  428. videoView->stop();
  429. }
  430. return;
  431. }
  432. }
  433. }
  434. bool ui3Activity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
  435. mediaFileList.clear();
  436. if (NULL == pFileListPath || 0 == strlen(pFileListPath)) {
  437. LOGD("video file list is null!");
  438. return false;
  439. }
  440. ifstream is(pFileListPath, ios_base::in);
  441. if (!is.is_open()) {
  442. LOGD("cann't open file %s \n", pFileListPath);
  443. return false;
  444. }
  445. char tmp[1024] = {0};
  446. while (is.getline(tmp, sizeof(tmp))) {
  447. string str = tmp;
  448. removeCharFromString(str, '\"');
  449. removeCharFromString(str, '\r');
  450. removeCharFromString(str, '\n');
  451. if (str.size() > 1) {
  452. mediaFileList.push_back(str.c_str());
  453. }
  454. }
  455. LOGD("(f:%s, l:%d) parse fileList[%s], get [%d]files", __FUNCTION__,
  456. __LINE__, pFileListPath, int(mediaFileList.size()));
  457. for (std::vector<string>::size_type i = 0; i < mediaFileList.size(); i++) {
  458. LOGD("file[%u]:[%s]", ::size_t(i), mediaFileList[i].c_str());
  459. }
  460. is.close();
  461. return true;
  462. }
  463. int ui3Activity::removeCharFromString(string& nString, char c) {
  464. string::size_type pos;
  465. while(1) {
  466. pos = nString.find(c);
  467. if(pos != string::npos) {
  468. nString.erase(pos, 1);
  469. } else {
  470. break;
  471. }
  472. }
  473. return (int)nString.size();
  474. }
  475. void ui3Activity::registerUserTimer(int id, int time) {
  476. registerTimer(id, time);
  477. }
  478. void ui3Activity::unregisterUserTimer(int id) {
  479. unregisterTimer(id);
  480. }
  481. void ui3Activity::resetUserTimer(int id, int time) {
  482. resetTimer(id, time);
  483. }