コード例 #1
0
ファイル: BStream.c プロジェクト: IceAssassin/skipdbv2
BStream *BStream_clone(BStream *self)
{
	BStream *child = BStream_new();
	UArray_copy_(child->ba, self->ba);
	child->index = self->index;
	return child;
}
コード例 #2
0
ファイル: Image.c プロジェクト: iamaleksey/io
void Image_makeRGBA(Image *self)
{
	if (self->componentCount == 3)
	{
		//Image_addAlpha(self);
		//printf("converted component count from 3 to 4\n");
	} 
	else if (self->componentCount == 1)
	{
		UArray *outUArray = UArray_new();
		UArray_setSize_(outUArray, 4 * self->width * self->height);
		uint8_t *outData = (uint8_t *)UArray_bytes(outUArray);
		uint8_t *inData  = (uint8_t *)UArray_bytes(self->byteArray);
		size_t numPixels = self->width * self->height;
		size_t p1;
		size_t p2 = 0;
		
		for (p1 = 0; p1 < numPixels; p1 ++)
		{
			outData[p2] = inData[p1]; p2 ++;
			outData[p2] = inData[p1]; p2 ++;
			outData[p2] = inData[p1]; p2 ++;
			outData[p2] = 255; p2 ++;
		}
		
		UArray_copy_(self->byteArray, outUArray);
		UArray_free(outUArray);

		self->componentCount = 4;
		//printf("converted component count from 1 to 4\n");
	}
}
コード例 #3
0
ファイル: IoSeq_immutable.c プロジェクト: doublec/io
IO_METHOD(IoSeq, asFixedSizeType)
{
	/*doc Sequence asFixedSizeType
	Returns a new sequence with the receiver encoded in the 
	minimal fixed width text encoding that it's characters can fit 
	into (either, ascii, utf8, utf16 or utf32). 
	*/
	
	UArray *out = UArray_new();
	UArray_copy_(out, DATA(self));
	UArray_convertToFixedSizeType(out);	
	return IoSeq_newWithUArray_copy_(IOSTATE, out, 0);
}
コード例 #4
0
ファイル: IoSeq.c プロジェクト: asymmetric/io
IoSymbol *IoSeq_newSymbolWithUArray_copy_(void *state, UArray *ba, int copy)
{
	IoObject *self = IoSeq_new(state);

	if (copy)
	{
		UArray_copy_(DATA(self), ba);
	}
	else
	{
		UArray_free(DATA(self));
		IoObject_setDataPointer_(self, ba);
	}

	return self;
}
コード例 #5
0
ファイル: IoAudioDevice.c プロジェクト: Akiyah/io
IoObject *IoAudioDevice_read(IoAudioDevice *self, IoObject *locals, IoMessage *m)
{
	/*doc AudioDevice asyncRead
	Returns the audio read buffer.
	*/

	AudioDevice *device = DATA(self)->audioDevice;
	UArray *rba = IoSeq_rawUArray(DATA(self)->readBuffer);
	UArray *ba;

	while (device->locked)
	{
		AudioDevice_nanoSleep(device);
	}

	ba = AudioDevice_read(device);
	UArray_copy_(rba, ba);

	return DATA(self)->readBuffer;
}
コード例 #6
0
ファイル: IoSeq_mutable.c プロジェクト: Alessandroo/io
void IoSeq_rawCopy_(IoSeq *self, IoSeq *other)
{
	UArray_copy_(DATA(self), DATA(other));
}
コード例 #7
0
ファイル: Image.c プロジェクト: iamaleksey/io
void Image_copyUArray_(Image *self, UArray *ba) /* private */
{
	UArray_copy_(self->byteArray, ba);
}
コード例 #8
0
ファイル: UArray.c プロジェクト: bomma/io
UArray *UArray_clone(const UArray *self)
{
	UArray *out = UArray_new();
	UArray_copy_(out, self);
	return out;
}