Esempio n. 1
0
int GenerateList(HWND hList, HWND hStatus)
{
	TFlashHeader *headers;
	uint32_t i;
	int side = 0, empty = 0;
	char str[128];

	ListView_DeleteAllItems(hList);
	EnableWindow(hList, FALSE);
	SetWindowText(hStatus, "Reading disk headers...");
	CheckMessages();

	fdsemu->dev->FlashUtil->ReadHeaders();
	headers = fdsemu->dev->FlashUtil->GetHeaders();
	if (headers == 0) {
		return(-1);
	}

	for (i = 0; i < fdsemu->dev->Slots; i++) {
		TFlashHeader *header = &headers[i];
		uint8_t *buf = headers[i].filename;

		//empty slot
		if (buf[0] == 0xFF) {
			empty++;
			continue;
		}

		//this slot has valid ownerid/nextid
		if (header->flags & 0x20) {

			//first disk image of a set
			if (header->ownerid == i) {
				InsertListViewItem(hList, (char*)buf, i);
			}
		}

		else {
			//filename is here
			if (buf[0] != 0) {
				InsertListViewItem(hList, (char*)buf, i);
			}
		}
	}

	ListView_SortItems(hList, CompareFunc, 0);
	EnableWindow(hList, TRUE);

	//update teh status bar
	if (empty >= 0) {
		sprintf(str, "%d slots used, %d remaining.", fdsemu->dev->Slots - empty, empty);
	}
	else {
		sprintf(str, "Error reading flash headers.");
	}
	SetWindowText(hStatus, str);


	return(empty);
}
Esempio n. 2
0
int CDlgQueryLog::QueryNext()
{
    NET_IN_QUERYNEXTLOG stuIn = {sizeof(stuIn)};
    stuIn.nGetCount = m_nMaxPageSize;

    NET_OUT_QUERYNEXTLOG stuOut = {sizeof(stuOut)};
    stuOut.nMaxCount = m_nMaxPageSize;
    stuOut.pstuLogInfo = new NET_LOG_INFO[m_nMaxPageSize];
    if (NULL == stuOut.pstuLogInfo)
    {
        return -1;
    }
    memset(stuOut.pstuLogInfo, 0, sizeof(NET_LOG_INFO) * m_nMaxPageSize);
    int i = 0;
    for (i = 0; i < m_nMaxPageSize; i++)
    {
        stuOut.pstuLogInfo[i].dwSize = sizeof(NET_LOG_INFO);
        stuOut.pstuLogInfo[i].stuLogMsg.dwSize = sizeof(NET_LOG_MESSAGE);
    }
    if (CLIENT_QueryNextLog(m_lLogID, &stuIn, &stuOut, SDK_API_WAITTIME))
    {
        if (stuOut.nRetCount > 0)
        {
            m_logList.DeleteAllItems();
        }

        for (i = 0; i < __min(stuOut.nMaxCount, stuOut.nRetCount); i++)
        {
            NET_TIME& stuTime = stuOut.pstuLogInfo[i].stuTime;

            char szTime[64] = {0};
            _snprintf(szTime, sizeof(szTime) - 1, "%04d-%02d-%02d %02d:%02d:%02d",
                stuTime.dwYear, stuTime.dwMonth, stuTime.dwDay,
                stuTime.dwHour, stuTime.dwMinute, stuTime.dwSecond);

            InsertListViewItem(m_nStartNo++, 
                stuOut.pstuLogInfo[i].szLogType,
                szTime,
                stuOut.pstuLogInfo[i].stuLogMsg.szLogMessage);
        }
        delete []stuOut.pstuLogInfo;
        stuOut.pstuLogInfo = NULL;
        return stuOut.nRetCount;
    }
    delete []stuOut.pstuLogInfo;
    stuOut.pstuLogInfo = NULL;
    return 0;
}