66 const size_t packetlen = _packetlen ? _packetlen : 1024;
67 const size_t wantpackets = (initialslack + (packetlen - 1)) / packetlen;
73 for (i = 0; i < wantpackets; i++) {
100 const size_t packet_size = queue ? queue->
packet_size : 1;
101 const size_t slackpackets = (slack + (packet_size-1)) / packet_size;
110 packet = queue->
head;
116 packet = queue->
pool;
123 queue->
pool = packet;
126 for (i = 0; packet && (i < slackpackets); i++) {
128 packet = packet->
next;
147 packet = queue->
pool;
148 if (packet !=
NULL) {
154 if (packet ==
NULL) {
165 queue->
head = packet;
169 queue->
tail = packet;
179 const size_t packet_size = queue ? queue->
packet_size : 0;
189 orighead = queue->
head;
190 origtail = queue->
tail;
191 origlen = origtail ? origtail->
datalen : 0;
196 if (!packet || (packet->
datalen >= packet_size)) {
202 packet = queue->
head;
204 packet = origtail->
next;
208 queue->
head = orighead;
209 queue->
tail = origtail;
240 for (packet = queue->
head; len && packet; packet = packet->
next) {
242 const size_t cpy =
SDL_min(len, avail);
250 return (
size_t) (ptr -
buf);
265 while ((len > 0) && ((packet = queue->
head) !=
NULL)) {
267 const size_t cpy =
SDL_min(len, avail);
280 queue->
pool = packet;
290 return (
size_t) (ptr -
buf);
307 }
else if (len == 0) {
315 packet = queue->
head;
SDL_DataQueuePacket * head
int SDL_WriteToDataQueue(SDL_DataQueue *queue, const void *_data, const size_t _len)
SDL_DataQueuePacket * pool
SDL_DataQueue * SDL_NewDataQueue(const size_t _packetlen, const size_t initialslack)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static void SDL_FreeDataQueueList(SDL_DataQueuePacket *packet)
#define SDL_InvalidParamError(param)
Uint8 data[SDL_VARIABLE_LENGTH_ARRAY]
struct SDL_DataQueuePacket * next
size_t SDL_PeekIntoDataQueue(SDL_DataQueue *queue, void *_buf, const size_t _len)
void * SDL_ReserveSpaceInDataQueue(SDL_DataQueue *queue, const size_t len)
SDL_DataQueuePacket * tail
size_t SDL_ReadFromDataQueue(SDL_DataQueue *queue, void *_buf, const size_t _len)
static SDL_DataQueuePacket * AllocateDataQueuePacket(SDL_DataQueue *queue)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define SDL_VARIABLE_LENGTH_ARRAY
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
#define SDL_assert(condition)
#define SDL_OutOfMemory()
void SDL_ClearDataQueue(SDL_DataQueue *queue, const size_t slack)
size_t SDL_CountDataQueue(SDL_DataQueue *queue)
void SDL_FreeDataQueue(SDL_DataQueue *queue)