Esempio n. 1
0
QFileInfo Content::GetRecordingArtwork ( const QString   &sType,
                                         const QString   &sInetref,
                                         int nSeason,
                                         int nWidth,
                                         int nHeight)
{
    ArtworkMap map = GetArtwork(sInetref, nSeason);

    VideoArtworkType type = kArtworkCoverart;
    QString sgroup;

    if (sType.toLower() == "coverart")
    {
        sgroup = "Coverart";
        type = kArtworkCoverart;
    }
    else if (sType.toLower() == "fanart")
    {
        sgroup = "Fanart";
        type = kArtworkFanart;
    }
    else if (sType.toLower() == "banner")
    {
        sgroup = "Banners";
        type = kArtworkBanner;
    }

    QUrl url(map.value(type).url);
    QString sFileName = url.path();

    return GetImageFile( sgroup, sFileName, nWidth, nHeight);
}
Esempio n. 2
0
// NOTE: If you rename this, you must also update upnpcdsvideo.cpp
QFileInfo Content::GetVideoArtwork( const QString &sType,
                                    int nId, int nWidth, int nHeight )
{
    LOG(VB_UPNP, LOG_INFO, QString("GetVideoArtwork ID = %1").arg(nId));

    QString sgroup = "Coverart";
    QString column = "coverfile";

    if (sType.toLower() == "coverart")
    {
        sgroup = "Coverart";
        column = "coverfile";
    }
    else if (sType.toLower() == "fanart")
    {
        sgroup = "Fanart";
        column = "fanart";
    }
    else if (sType.toLower() == "banner")
    {
        sgroup = "Banners";
        column = "banner";
    }
    else if (sType.toLower() == "screenshot")
    {
        sgroup = "Screenshots";
        column = "screenshot";
    }

    // ----------------------------------------------------------------------
    // Read Video artwork file path from database
    // ----------------------------------------------------------------------

    MSqlQuery query(MSqlQuery::InitCon());

    QString querystr = QString("SELECT %1 FROM videometadata WHERE "
                               "intid = :ITEMID").arg(column);

    query.prepare(querystr);
    query.bindValue(":ITEMID", nId);

    if (!query.exec())
        MythDB::DBError("GetVideoArtwork ", query);

    if (!query.next())
        return QFileInfo();

    QString sFileName = query.value(0).toString();

    if (sFileName.isEmpty())
        return QFileInfo();

    return GetImageFile( sgroup, sFileName, nWidth, nHeight );
}
Esempio n. 3
0
unsigned int next_cluster(unsigned int current_cluster){
	unsigned char temp1[4];
      	FILE* ImageFile= GetImageFile();
	

	//the start of the fat table is 4000
        //CHANGE THE HARD CODED NUMBER
        unsigned int temp = FAT_Start() + current_cluster*4;
        //printf("Temp:%d \n",temp);

	
	fseek(ImageFile,temp,SEEK_SET);
        fread(temp1,sizeof(unsigned char),4,ImageFile);

        return little_to_big(temp1,4);
}
Esempio n. 4
0
void FileGrabber::operator ()()
{
  while (initialised_) {
    if (frame_grabber_->IsFrameBufferFull()==false) {
      if (files_vec_.size() > (unsigned int)frame_id_) {
        Frame frame;
        string  file_full_path = files_vec_.at(frame_id_);

        frame.frame_id = frame_id_;
        frame.data = GetImageFile(file_full_path);
        ++frame_id_;

        frame_grabber_->SetFrame(frame);
      }
    }
    else {
      boost::this_thread::sleep(boost::posix_time::milliseconds(1));
    }
  }
}
Esempio n. 5
0
struct DirectoryEntry* GetDirectoryContents(unsigned int clusterNum)
{
	FILE* inFile = GetImageFile();

	// maximum entries is 2048
	static struct DirectoryEntry returnArray[2048];
	unsigned int index = 0;

	// raw data read
	char rawData[32];

	// next cluster
	unsigned int nextClusterIndex = clusterNum;

	do
	{
		unsigned int byteIndex = FindFirstSectorOfCluster(nextClusterIndex);
		//printf("Byte index: %x\n", byteIndex);
	
		unsigned int byteIndexOffset = 0;
		do
		{
			fseek(inFile, byteIndex + byteIndexOffset, SEEK_SET);
			fread(rawData, sizeof(char), 32, inFile);
		
			// if first byte 0x00 or 0xE5 (slide 10 of Slides_Week12.ppt)
			// then end of directory
			if (rawData[0] == 0x00 || (unsigned char)rawData[0] == 0xE5)
			{
				byteIndexOffset += 32;
				continue;
			}
			else
			{
				// long name do nothing
				if (rawData[11] & 0x0F)
				{
		
				}
				else
				{
					int i;
					//printf("DIR_Name: ");
					// assign DIR_Name
					for (i = 0; i < 11; i++)
					{
						returnArray[index].DIR_Name[i] = rawData[i];
						//printf("%c", returnArray[index].DIR_Name[i]);
					}
					// null terminate DIR_Name
					returnArray[index].DIR_Name[11] = '\0';
					// assign DIR_Attr
					returnArray[index].DIR_Attr = rawData[11];
					// assign DIR_FstClus
					unsigned char tempArray[4];
					tempArray[0] = rawData[26];
					tempArray[1] = rawData[27];
					tempArray[2] = rawData[20];
					tempArray[3] = rawData[21];
					returnArray[index].DIR_FstClus = little_to_big(tempArray, 4);
					// assign DIR_FileSize
					returnArray[index].DIR_FileSize = little_to_big(rawData+28, 4);
					/*printf("\nDIR_Attr: %x\n", returnArray[index].DIR_Attr);
					printf("DIR_FstClus: %x\n", returnArray[index].DIR_FstClus);
					printf("DIR_ByteOffset: %x\n", FindFirstSectorOfCluster(returnArray[index].DIR_FstClus));
					printf("DIR_FileSize: %x\n", returnArray[index].DIR_FileSize);
					printf("\n");*/
					returnArray[index].DIR_EntryByteAddress = byteIndex+byteIndexOffset;
					returnArray[index++].END_OF_ARRAY = 0;
				}
			}
			byteIndexOffset += 32;
		} while (rawData[0] != 0x00 /*&& rawData[0] != 0xE5*/ && byteIndexOffset < GetBytesPerSec()*GetSecPerClus());
		nextClusterIndex = next_cluster(nextClusterIndex);
	} while (nextClusterIndex < 0x0FFFFFF8);
	returnArray[index].END_OF_ARRAY = 1;
	return returnArray;
}