コード例 #1
0
Variant BaseAssetObjectItem::getData(int column, ItemRole::Id roleId) const
{
	if (column != 0)
	{
		return Variant();
	}

	if (roleId == ValueRole::roleId_)
	{
		return getDisplayText(0);
	}
	else if (roleId == IndexPathRole::roleId_)
	{
		return getFullPath();
	}
	else if (roleId == ThumbnailRole::roleId_)
	{
		return getThumbnail(0);
	}
	else if (roleId == TypeIconRole::roleId_)
	{
		return getTypeIconResourceString();
	}
	else if (roleId == SizeRole::roleId_)
	{
		return getSize();
	}
	else if (roleId == CreatedTimeRole::roleId_)
	{
		return getCreatedTime();
	}
	else if (roleId == ModifiedTimeRole::roleId_)
	{
		return getModifiedTime();
	}
	else if (roleId == AccessedTimeRole::roleId_)
	{
		return getAccessedTime();
	}
	else if (roleId == IsDirectoryRole::roleId_)
	{
		return isDirectory();
	}
	else if (roleId == IsReadOnlyRole::roleId_)
	{
		return isReadOnly();
	}
	else if (roleId == IsCompressedRole::roleId_)
	{
		return isCompressed();
	}
	else if (roleId == ItemRole::itemIdId)
	{
		return intptr_t(this);
	}

	return Variant();
}
コード例 #2
0
ファイル: zfs.c プロジェクト: jamesyan84/zbase
int createThumbnailPhoto(const char *path, char **attr2)
{
	IXML_Document 	*doc = NULL;
	char 			reqXML[2048] = {0};
	char 			thumbnail[1024] = {0};
	char 			respondBuf[2048] = {0};
	char 			*errNum = NULL;
	char 			*errMsg = NULL;
	int  			respondLen = 2048;

	getThumbnail(path, thumbnail);

	if(fileExists(thumbnail) == 1)
		remove(thumbnail);

	sprintf (reqXML, "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
			"<cmd>"
			"<InputLocation>%s</InputLocation>"
			"<OutputLocation>%s</OutputLocation>"
			"<Size>128</Size>"
			"</cmd>",
			path, thumbnail);
	
	if(processTCPReqRsp(ZAPP_ZSCALE_SOCKET, reqXML, strlen(reqXML), respondBuf, &respondLen, 3) == 0){
		if((doc = ixmlParseBuffer(respondBuf)) != NULL){
			errNum = ixmlGetFirstDocumentItem(doc, "err");
			if(strcmp(errNum, "0") != 0){
				errMsg = ixmlGetFirstDocumentItem(doc, "msg");
				ZError(DBG_MISC, "create thumbnail failed. errNum->%s, errMsg-> %s", errNum, errMsg);
				free(errMsg);
			}
			else
				*attr2 = strdup(thumbnail);

			free(errNum);
			ixmlDocument_free(doc);
		}
		else
			ZError(DBG_MISC, "zscale respond is NULL");
	}
	else
		ZError(DBG_MISC, "call zscale failed.");

	return 0;
}
コード例 #3
0
ファイル: cmaevent.cpp プロジェクト: 173210/qcma
void CmaEvent::vitaEventSendObjectThumb(vita_event_t *event, int eventId)
{
    qDebug("Event recieved in %s, code: 0x%x, id: %d", Q_FUNC_INFO, event->Code, eventId);

    QMutexLocker locker(&m_db->mutex);

    int ohfi = event->Param2;
    metadata_t metadata;

    if(!m_db->getObjectMetadata(ohfi, metadata)) {
        qWarning("Cannot find OHFI %d in database.", ohfi);
        VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_OHFI);
        return;
    }

    QString fullpath = m_db->getAbsolutePath(ohfi);
    QByteArray data = getThumbnail(fullpath, metadata.dataType, &g_thumbmeta);

    if(data.size() == 0) {
        qWarning() << "Cannot find/read thumbnail for" << fullpath;
        VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_Data);
        return;
    }

    //FIXME: remove this after fixing vitamtp

    // workaround for the vitamtp locale bug
    char *locale = strdup(setlocale(LC_ALL, NULL));
    setlocale(LC_ALL, "C");

    if(VitaMTP_SendObjectThumb(device, eventId, (metadata_t *)&g_thumbmeta, (uchar *)data.data(), data.size()) != PTP_RC_OK) {
        qWarning("Error sending thumbnail");
    } else {
        VitaMTP_ReportResult(device, eventId, PTP_RC_OK);
    }

    // restore locale
    setlocale(LC_ALL, locale);
    free(locale);
}
コード例 #4
0
 TImage getThumbnail(const boost::filesystem::path& imagePath)
 {
     KeyType ignoreKey;
     return getThumbnail(ignoreKey, imagePath);
 }
コード例 #5
0
 TImage getThumbnail(const std::string& imagePath) { return getThumbnail(boost::filesystem::path(imagePath)); }
コード例 #6
0
int getFrameAt(int64_t timeUs, int width, int height)
{
    int ret = -1;
    AVFrame* pFrame = NULL;

    ret = avformat_seek_file(m_pFormatContext, -1, INT16_MIN, timeUs, INT16_MAX, 0);

    pFrame = av_frame_alloc();
    m_pThumbFrame = av_frame_alloc();
    ret = openDecoder();
    if (ret != 0)
    {
        av_frame_free(&pFrame);
        av_frame_free(&m_pThumbFrame);
        return ret;
    }
#ifdef DEBUG_SPEND_TIME
#ifdef _WIN32
    DWORD start_time = timeGetTime();
#else
    struct timeval start, end;
    gettimeofday(&start, NULL);
#endif
#endif

    ret = decodeOneFrame(pFrame);
    if (ret < 0)
    {
        av_frame_free(&pFrame);
        av_frame_free(&m_pThumbFrame);
        return ret;
    }
#ifdef DEBUG_SPEND_TIME
#ifdef _WIN32
    DWORD end_time = timeGetTime();
    printf("decodeOneFrame spend time = %d ms\n", end_time - start_time);
#else
    gettimeofday(&end, NULL);
    int spend_time = (end.tv_sec - start.tv_sec) * 1000 + (end.tv_usec - start.tv_usec) / 1000;
    printf("spend_time = %d ms\n", spend_time);
#endif
#endif

    ret = getThumbnail(pFrame, m_pThumbFrame, width, height);
    if (ret < 0)
    {
        av_frame_free(&pFrame);
        av_frame_free(&m_pThumbFrame);
        return ret;
    }

    // save the rgb565
    FILE *pFile = fopen(strThumbFileName, "ab");
    if (pFile)
    {
        fwrite(m_pThumbFrame->data[0], 1, m_pThumbFrame->width * m_pThumbFrame->height * 2, pFile);
        fclose(pFile);
    }

    av_frame_free(&pFrame);
    av_frame_free(&m_pThumbFrame);

    closeDecoder();

    return ret;
}