Exemple #1
0
bool BlurayMetadata::ParseDisc(void)
{
    if (!m_bdnav && !OpenDisc())
        return false;

    m_metadata = bd_get_meta(m_bdnav);

    if (!m_metadata)
        return false;

    m_title = QString(m_metadata->di_name);
    m_alttitle = QString(m_metadata->di_alternative);
    m_language = QString(m_metadata->language_code);
    m_discnumber = m_metadata->di_set_number;
    m_disctotal = m_metadata->di_num_sets;

    for (unsigned i = 0; i < m_metadata->toc_count; i++)
    {
        uint num = m_metadata->toc_entries[i].title_number;
        QString title = QString(m_metadata->toc_entries[i].title_name);
        QPair<uint,QString> ret(num,title);
        m_titles.append(ret);
    }

    for (unsigned i = 0; i < m_metadata->thumb_count; i++)
    {
        QString filepath = QString("%1/BDMV/META/DL/%2")
                           .arg(m_path)
                           .arg(m_metadata->thumbnails[i].path);
        m_images.append(filepath);
    }

    return true;
}
Exemple #2
0
bool BlurayMetadata::ParseDisc(void)
{
    if (!OpenDisc() && !m_bdnav)
        return false;

    const meta_dl *metadata = bd_get_meta(m_bdnav);

    if (metadata)
    {
        m_title = QString(metadata->di_name);
        m_alttitle = QString(metadata->di_alternative);
        m_language = QString(metadata->language_code);
        m_discnumber = metadata->di_set_number;
        m_disctotal = metadata->di_num_sets;

        for (unsigned i = 0; i < metadata->toc_count; i++)
        {
            uint num = metadata->toc_entries[i].title_number;
            QString title = QString(metadata->toc_entries[i].title_name);
            QPair<uint,QString> ret(num,title); 
            m_titles.append(ret);
        }

        for (unsigned i = 0; i < metadata->thumb_count; i++)
        {
            QString filepath = QString("%1/BDMV/META/DL/%2")
                                   .arg(m_path)
                                   .arg(metadata->thumbnails[i].path);
            m_images.append(filepath);
        }
    }

    const BLURAY_DISC_INFO *discinfo = bd_get_disc_info(m_bdnav);
    if (discinfo)
    {
        m_topMenuSupported   = discinfo->top_menu_supported;
        m_firstPlaySupported = discinfo->first_play_supported;
        m_numHDMVTitles = discinfo->num_hdmv_titles;
        m_numBDJTitles = discinfo->num_bdj_titles;
        m_numUnsupportedTitles = discinfo->num_unsupported_titles;
        m_aacsDetected = discinfo->aacs_detected;
        m_libaacsDetected = discinfo->libaacs_detected;
        m_aacsHandled = discinfo->aacs_handled;
        m_bdplusDetected = discinfo->bdplus_detected;
        m_libbdplusDetected = discinfo->libbdplus_detected;
        m_bdplusHandled = discinfo->bdplus_handled;
    }

    return true;
}
bool InitDrive_(wchar* fn)
{
	TermDrive();

	//try all drivers
	disc = OpenDisc(fn);

	if (disc != NULL)
	{
		printf("gdrom: Opened image \"%s\"\n",fn);
		NullDriveDiscType = Busy;
	}
	else
	{
		printf("gdrom: Failed to open image \"%s\"\n",fn);
		NullDriveDiscType = NoDisk; //no disc :)
	}
	libCore_gdrom_disc_change();

	return disc != NULL;
}
Exemple #4
0
bool process_image(FILE* w, bool& first, const string& image) {
	Disc* d = OpenDisc(image.c_str());

	if (!d) {
		printf("Invalid image, %s\n", image.c_str());
		return false;
	}

	auto l = image.find_last_of('\\');
	if (l == image.npos)
		l = image.find_last_of('/');
	if (l == image.npos)
		l = -1;


	string basename = image.substr(l + 1, image.find_last_of('.') - l-1);
	exec_cmd(w, first, d, basename);

	delete d;

	first = false;

	return true;
}