void MainDisplayFunction() { unsigned int album_traveler=0; unsigned int minpicture=MinPictureThatIsVisible(),maxpicture=MaxPictureThatIsVisible(); if (frame.try_for_best_render_quality) { glEnable(GL_NORMALIZE); glEnable(GL_LINE_SMOOTH); //glEnable (GL_POLYGON_SMOOTH); this causes diagonal lines.. glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); } //If we are over only one visible picture we dont have to draw background //and we dont have to draw anything else.. just this one picture! if ( CameraSeesOnlyOnePicture() ) { minpicture=frame.active_image_place; maxpicture=frame.active_image_place+1; } else { DrawLayoutBackground(); } for ( album_traveler=minpicture; album_traveler<=maxpicture; album_traveler++ ) { DisplayPicture( album[album_traveler], album_traveler , album[album_traveler]->position.x, album[album_traveler]->position.y, album[album_traveler]->position.z, album[album_traveler]->position.size_x, album[album_traveler]->position.size_y, album[album_traveler]->position.heading, album[album_traveler]->position.pitch, album[album_traveler]->position.roll + album[album_traveler]->rotate ); } if (frame.try_for_best_render_quality) { glDisable(GL_ALPHA_TEST); glDisable(GL_BLEND); glDisable(GL_LINE_SMOOTH); glDisable (GL_POLYGON_SMOOTH); glDisable(GL_NORMALIZE); } }
/*** * 功能: 窗体FrmWiFi的绘制函数,绘制整个窗体 * 参数: 1.void *pWndObj: 指向当前窗体对象 * 返回: 成功返回零,失败返回非零值 * 备注: ***/ int FrmWiFiPaint(void *pWndObj) { //错误标志、返回值定义 int iReturn = 0; int i = 0; //得到当前窗体对象 pFrmWiFi = (GUIWINDOW *) pWndObj; //显示桌面背景图片 DisplayPicture(pWiFiBtnLeftBg); //显示菜单 DisplayPicture(pWiFiMenuBg); for(i = 0; i < 5; i++) { DisplayPicture(pWiFiMenu[i]); DisplayLabel(pWiFiLblMenu[i]); } //显示状态栏上的图片 DisplayPicture(pWiFiBtnOnOffBg); //显示窗体左上角窗体Label DisplayLabel(pWiFiLblFrmName); DisplayLabel(pWiFiLblOnOffInfo); //DisplayLabel(pWiFiLblConnecting);//victor SetPictureBitmap(BmpFileDirectory"btn_wifi_on_unpress.bmp", pWiFiBtnREnableOn); SetPictureBitmap(BmpFileDirectory"btn_wifi_off_press.bmp", pWiFiBtnREnableOff); SetPictureBitmap(BmpFileDirectory"btn_wifi_ssid_press.bmp", pWiFiBtnConnect);//victor DisplayPicture(pWiFiBtnREnableOn); DisplayPicture(pWiFiBtnREnableOff); DisplayPicture(pWiFiBtnConnect);//victor DisplayLabel(pWiFiLblConnecting);//victor for(i = 0; i < WIFIITEM; i++) { DisplayPicture(pWiFiItem[i]); DisplayLabel(pWiFiLblItem[i]); } //初始化wifi,创建wifi线程 InitMutex(&pWifiMutex, NULL); InitWifiQueue(10); ThreadCreate(&thdWifi, NULL, DefaultWifiThread, NULL); return iReturn; }
static void WifiScan_r() { FILE *fstream; char buffer[512] = {0}; char buffer1[512] = {0}; vsystem("wpa_cli scan_r > /mnt/sdcard/wifi/list.txt"); MsecSleep(1000); vsystem("awk '{print $5}' /mnt/sdcard/wifi/list.txt | tail -n +3 > /mnt/sdcard/scan"); MutexLock(&pWifiMutex); if (NULL == (fstream = fopen("/mnt/sdcard/scan", "r"))) { perror("fopen"); return; } int index = 0; while (NULL != mfgets(buffer, sizeof(buffer), fstream)) { if (index >= MAX_SIGNUM) { break; } strncpy(stWifi[index].ssid, buffer, sizeof(stWifi[index].ssid) - 1); index++; } fclose(fstream); vsystem("awk '{print $3}' /mnt/sdcard/wifi/list.txt | tail -n +3 > /mnt/sdcard/scan"); if (NULL == (fstream = fopen("/mnt/sdcard/scan", "r"))) { perror("fopen"); return; } index = 0; while (NULL != mfgets(buffer, sizeof(buffer), fstream)) { if (index >= MAX_SIGNUM) { break; } stWifi[index].iLevel = atoi(buffer); stWifi[index].iCell = CalcWifiCell(stWifi[index].iLevel); index++; } fclose(fstream); SortByLevel(index); int i; for(i = 0; i < index; i++) { if(i < WIFIITEM) { snprintf(buffer1, sizeof(buffer1), "%s", stWifi[i].ssid); if(NULL == pWiFiStrItem[i]) { free(pWiFiStrItem[i]); pWiFiStrItem[i] = NULL; } pWiFiStrItem[i] = TransString(buffer1); SetLabelText(pWiFiStrItem[i], pWiFiLblItem[i]); DisplayPicture(pWiFiItem[i]); DisplayLabel(pWiFiLblItem[i]); } printf("sig%d %s %d %d\n", i, stWifi[i].ssid, stWifi[i].iCell, stWifi[i].iLevel); } MutexUnlock(&pWifiMutex); WriteWifiMsgQueue(ENUM_SCAN); }