Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Added SDL_ReadU8() and SDL_WriteU8() for consistency with the rest of…
Browse files Browse the repository at this point in the history
… the API.
  • Loading branch information
slouken committed Nov 5, 2012
1 parent b1485e3 commit 41805f5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
2 changes: 2 additions & 0 deletions include/SDL_rwops.h
Expand Up @@ -186,6 +186,7 @@ extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area);
* Read an item of the specified endianness and return in native format.
*/
/*@{*/
extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src);
extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src);
extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src);
extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src);
Expand All @@ -200,6 +201,7 @@ extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src);
* Write an item of native format to the specified endianness.
*/
/*@{*/
extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value);
extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value);
extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value);
extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value);
Expand Down
27 changes: 21 additions & 6 deletions src/file/SDL_rwops.c
Expand Up @@ -640,10 +640,19 @@ SDL_FreeRW(SDL_RWops * area)

/* Functions for dynamically reading and writing endian-specific values */

Uint8
SDL_ReadU8(SDL_RWops * src)
{
Uint8 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return value;
}

Uint16
SDL_ReadLE16(SDL_RWops * src)
{
Uint16 value;
Uint16 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE16(value));
Expand All @@ -652,7 +661,7 @@ SDL_ReadLE16(SDL_RWops * src)
Uint16
SDL_ReadBE16(SDL_RWops * src)
{
Uint16 value;
Uint16 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE16(value));
Expand All @@ -661,7 +670,7 @@ SDL_ReadBE16(SDL_RWops * src)
Uint32
SDL_ReadLE32(SDL_RWops * src)
{
Uint32 value;
Uint32 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE32(value));
Expand All @@ -670,7 +679,7 @@ SDL_ReadLE32(SDL_RWops * src)
Uint32
SDL_ReadBE32(SDL_RWops * src)
{
Uint32 value;
Uint32 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE32(value));
Expand All @@ -679,7 +688,7 @@ SDL_ReadBE32(SDL_RWops * src)
Uint64
SDL_ReadLE64(SDL_RWops * src)
{
Uint64 value;
Uint64 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE64(value));
Expand All @@ -688,12 +697,18 @@ SDL_ReadLE64(SDL_RWops * src)
Uint64
SDL_ReadBE64(SDL_RWops * src)
{
Uint64 value;
Uint64 value = 0;

SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE64(value));
}

size_t
SDL_WriteU8(SDL_RWops * dst, Uint8 value)
{
return (SDL_RWwrite(dst, &value, (sizeof value), 1));
}

size_t
SDL_WriteLE16(SDL_RWops * dst, Uint16 value)
{
Expand Down

0 comments on commit 41805f5

Please sign in to comment.