SDL_endian.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.     You should have received a copy of the GNU Library General Public
  13.     License along with this library; if not, write to the Free
  14.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  15.     Sam Lantinga
  16.     slouken@libsdl.org
  17. */
  18. #ifdef SAVE_RCSID
  19. static char rcsid =
  20.  "@(#) $Id: SDL_endian.c,v 1.4 2002/04/22 21:38:02 wmay Exp $";
  21. #endif
  22. /* Functions for dynamically reading and writing endian-specific values */
  23. #include "SDL_endian.h"
  24. Uint16 SDL_ReadLE16 (SDL_RWops *src)
  25. {
  26. Uint16 value;
  27. SDL_RWread(src, &value, (sizeof value), 1);
  28. return(SDL_SwapLE16(value));
  29. }
  30. Uint16 SDL_ReadBE16 (SDL_RWops *src)
  31. {
  32. Uint16 value;
  33. SDL_RWread(src, &value, (sizeof value), 1);
  34. return(SDL_SwapBE16(value));
  35. }
  36. Uint32 SDL_ReadLE32 (SDL_RWops *src)
  37. {
  38. Uint32 value;
  39. SDL_RWread(src, &value, (sizeof value), 1);
  40. return(SDL_SwapLE32(value));
  41. }
  42. Uint32 SDL_ReadBE32 (SDL_RWops *src)
  43. {
  44. Uint32 value;
  45. SDL_RWread(src, &value, (sizeof value), 1);
  46. return(SDL_SwapBE32(value));
  47. }
  48. Uint64 SDL_ReadLE64 (SDL_RWops *src)
  49. {
  50. Uint64 value;
  51. SDL_RWread(src, &value, (sizeof value), 1);
  52. return(SDL_SwapLE64(value));
  53. }
  54. Uint64 SDL_ReadBE64 (SDL_RWops *src)
  55. {
  56. Uint64 value;
  57. SDL_RWread(src, &value, (sizeof value), 1);
  58. return(SDL_SwapBE64(value));
  59. }
  60. int SDL_WriteLE16 (SDL_RWops *dst, Uint16 value)
  61. {
  62. value = SDL_SwapLE16(value);
  63. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  64. }
  65. int SDL_WriteBE16 (SDL_RWops *dst, Uint16 value)
  66. {
  67. value = SDL_SwapBE16(value);
  68. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  69. }
  70. int SDL_WriteLE32 (SDL_RWops *dst, Uint32 value)
  71. {
  72. value = SDL_SwapLE32(value);
  73. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  74. }
  75. int SDL_WriteBE32 (SDL_RWops *dst, Uint32 value)
  76. {
  77. value = SDL_SwapBE32(value);
  78. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  79. }
  80. int SDL_WriteLE64 (SDL_RWops *dst, Uint64 value)
  81. {
  82. value = SDL_SwapLE64(value);
  83. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  84. }
  85. int SDL_WriteBE64 (SDL_RWops *dst, Uint64 value)
  86. {
  87. value = SDL_SwapBE64(value);
  88. return(SDL_RWwrite(dst, &value, (sizeof value), 1));
  89. }