示例#1
0
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);
    }
}
示例#2
0
/***
  * 功能:
        窗体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;
}
示例#3
0
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);
}