Beispiel #1
0
static void ReadJPEGImage( GenericImage<P>& image, JPEGReader* reader, int& readCount )
{
   CheckOpenStream( reader, "ReadImage" );

   /*
    * The readCount thing is a trick to allow reading the same JPEG image
    * multiple times from the same format instance. That does not work with
    * jpeglib. An ugly trick, but hey, works.
    */
   if ( readCount++ )
   {
      AutoPointer<JPEGReader> newReader( new JPEGReader );
      newReader->Open( reader->Path() );
      newReader->ReadImage( image );
   }
   else
      reader->ReadImage( image );
}
Beispiel #2
0
int main(void) {
	FILE *f;
	struct reader_t *r;

	f = fopen("CL_Images", "rb");
	if (f == NULL) {
		fprintf(stderr, "Failed to open CL_Images: %s\n", strerror(errno));
		return 1;
	}

	r = newReader(f);

	unpack(r, unpackCB);

	deleteReader(r);
	fclose(f);

	return 0;
}
Beispiel #3
0
void CDPlayer::comboBoxChanged(ComboBox* comboBoxThatHasChanged)
{
    std::unique_ptr<AudioCDReader> newReader(AudioCDReader::createReaderForCD(comboBoxThatHasChanged->getSelectedItemIndex()));

    // Update UI state.
    const bool cdPresent = newReader && newReader->isCDStillPresent();
    m_playButton.setEnabled(cdPresent);
    m_pauseButton.setEnabled(cdPresent);
    m_stopButton.setEnabled(cdPresent);
    m_skipBackwardButton.setEnabled(cdPresent);
    m_skipForwardButton.setEnabled(cdPresent);
#if JUCE_WINDOWS
    m_ejectButton.setEnabled(comboBoxThatHasChanged->getSelectedItemIndex() != -1);
#endif

    // Clear out objects for previous CD.
    m_tracksTable.setModel(nullptr);
    m_model.release();
    m_source = nullptr;
    m_reader.release();

    // Create new objects if we have a CD.
    if (newReader)
    {
        newReader->refreshTrackLengths();

        m_source = std::make_unique<AudioFormatReaderSource>(newReader.get(), false);

        m_transportSource.setSource(m_source.get(),
                                    32768,     // tells it to buffer this many samples ahead
                                    &m_thread, // this is the background thread to use for reading-ahead
                                    newReader->sampleRate);

        {
            std::unique_ptr<CDTracksModel> model = std::make_unique<CDTracksModel>(*newReader.get());
            m_tracksTable.setModel(model.get());
            m_model = std::move(model);
        }

        m_reader = std::move(newReader);
    }
}
Beispiel #4
0
DataTargetReader DataTargetReader::CreateReaderAt(CORDB_ADDRESS remoteAddressCursor)
{
    DataTargetReader newReader(remoteAddressCursor, m_pDataTarget, m_targetDefines, m_mdStructuresVersion);
    return newReader;
}