コード例 #1
0
ファイル: mdx_m2.cpp プロジェクト: Reamer/mangos
bool MDX_M2_file::prepareLoadedData()
{
    memcpy(&header, getData(), sizeof(ModelHeader));
    if(header.nBoundingTriangles > 0)
    {
        seek(0);
        seekRelative(header.ofsBoundingVertices);
        vertices = new Vec3D[header.nBoundingVertices];
        read(vertices,header.nBoundingVertices*12);
        for (uint32 i=0; i<header.nBoundingVertices; i++)
        {
            vertices[i] = fixCoordSystem(vertices[i]);
        }
        seek(0);
        seekRelative(header.ofsBoundingTriangles);
        indices = new uint16[header.nBoundingTriangles];
        read(indices,header.nBoundingTriangles*2);
    }
    return true;
}
コード例 #2
0
ファイル: servicemp3.cpp プロジェクト: ambrosa/test
RESULT eServiceMP3::enableSubtitles(eWidget *parent, ePyObject tuple)
{
	ePyObject entry;
	int tuplesize = PyTuple_Size(tuple);
	int pid;

	if (!PyTuple_Check(tuple))
		goto error_out;
	if (tuplesize < 1)
		goto error_out;
	entry = PyTuple_GET_ITEM(tuple, 1);
	if (!PyInt_Check(entry))
		goto error_out;
	pid = PyInt_AsLong(entry);

	if (m_currentSubtitleStream != pid)
	{
		g_object_set (G_OBJECT (m_gst_playbin), "current-text", -1, NULL);
		m_subtitle_pages.clear();
		m_prev_decoder_time = -1;
		m_decoder_time_valid_state = 0;
		m_currentSubtitleStream = pid;
		g_object_set (G_OBJECT (m_gst_playbin), "current-text", m_currentSubtitleStream, NULL);

		m_subtitle_widget = 0;
		m_subtitle_widget = new eSubtitleWidget(parent);
		m_subtitle_widget->resize(parent->size()); /* full size */

		eDebug ("eServiceMP3::switched to subtitle stream %i", m_currentSubtitleStream);

		m_event((iPlayableService*)this, evUpdatedInfo);

#ifdef GSTREAMER_SUBTITLE_SYNC_MODE_BUG
		/* 
		 * when we're running the subsink in sync=false mode, 
		 * we have to force a seek, before the new subtitle stream will start
		 */
		seekRelative(-1, 90000);
#endif
	}

	return 0;

error_out:
	eDebug("eServiceMP3::enableSubtitles needs a tuple as 2nd argument!\n"
		"for gst subtitles (2, subtitle_stream_count, subtitle_type)");
	return -1;
}
コード例 #3
0
RESULT eServiceMP3::enableSubtitles(iSubtitleUser *user, struct SubtitleTrack &track)
{
	if (m_currentSubtitleStream != track.pid)
	{
		m_subtitle_pages.clear();
		m_currentSubtitleStream = track.pid;
		m_cachedSubtitleStream = m_currentSubtitleStream;
		m_subtitle_widget = user;
		
		eDebug ("eServiceMP3::switched to subtitle stream %i", m_currentSubtitleStream);

		if (player && player->playback)
			player->playback->Command(player, PLAYBACK_SWITCH_SUBTITLE, (void*)&track.pid);

		// we have to force a seek, before the new subtitle stream will start
		seekRelative(-1, 90000);
	}

	return 0;
}
コード例 #4
0
ファイル: UrlImplCurl.cpp プロジェクト: AKS2346/Cinder
void IStreamUrlImplCurl::seekAbsolute( off_t absoluteOffset )
{
	seekRelative( absoluteOffset - ( mBufferFileOffset + mBufferOffset ) );
}
コード例 #5
0
void skip(const RVNGInputStreamPtr &input, unsigned long numBytes)
{
  checkStream(input);

  seekRelative(input, static_cast<long>(numBytes));
}