Added SDL_ReadU8() and SDL_WriteU8() for consistency with the rest of the API.

This commit is contained in:
Sam Lantinga 2012-11-04 23:44:13 -08:00
parent e7b4458d8b
commit caf0404b85
2 changed files with 23 additions and 6 deletions

View file

@ -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. * 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_ReadLE16(SDL_RWops * src);
extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src);
extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src);
@ -200,6 +201,7 @@ extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src);
* Write an item of native format to the specified endianness. * 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_WriteLE16(SDL_RWops * dst, Uint16 value);
extern DECLSPEC size_t SDLCALL SDL_WriteBE16(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); extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value);

View file

@ -640,10 +640,19 @@ SDL_FreeRW(SDL_RWops * area)
/* Functions for dynamically reading and writing endian-specific values */ /* 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 Uint16
SDL_ReadLE16(SDL_RWops * src) SDL_ReadLE16(SDL_RWops * src)
{ {
Uint16 value; Uint16 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE16(value)); return (SDL_SwapLE16(value));
@ -652,7 +661,7 @@ SDL_ReadLE16(SDL_RWops * src)
Uint16 Uint16
SDL_ReadBE16(SDL_RWops * src) SDL_ReadBE16(SDL_RWops * src)
{ {
Uint16 value; Uint16 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE16(value)); return (SDL_SwapBE16(value));
@ -661,7 +670,7 @@ SDL_ReadBE16(SDL_RWops * src)
Uint32 Uint32
SDL_ReadLE32(SDL_RWops * src) SDL_ReadLE32(SDL_RWops * src)
{ {
Uint32 value; Uint32 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE32(value)); return (SDL_SwapLE32(value));
@ -670,7 +679,7 @@ SDL_ReadLE32(SDL_RWops * src)
Uint32 Uint32
SDL_ReadBE32(SDL_RWops * src) SDL_ReadBE32(SDL_RWops * src)
{ {
Uint32 value; Uint32 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE32(value)); return (SDL_SwapBE32(value));
@ -679,7 +688,7 @@ SDL_ReadBE32(SDL_RWops * src)
Uint64 Uint64
SDL_ReadLE64(SDL_RWops * src) SDL_ReadLE64(SDL_RWops * src)
{ {
Uint64 value; Uint64 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapLE64(value)); return (SDL_SwapLE64(value));
@ -688,12 +697,18 @@ SDL_ReadLE64(SDL_RWops * src)
Uint64 Uint64
SDL_ReadBE64(SDL_RWops * src) SDL_ReadBE64(SDL_RWops * src)
{ {
Uint64 value; Uint64 value = 0;
SDL_RWread(src, &value, (sizeof value), 1); SDL_RWread(src, &value, (sizeof value), 1);
return (SDL_SwapBE64(value)); return (SDL_SwapBE64(value));
} }
size_t
SDL_WriteU8(SDL_RWops * dst, Uint8 value)
{
return (SDL_RWwrite(dst, &value, (sizeof value), 1));
}
size_t size_t
SDL_WriteLE16(SDL_RWops * dst, Uint16 value) SDL_WriteLE16(SDL_RWops * dst, Uint16 value)
{ {