Advertisement
GeeckoDev

SceMp3 reverse WIP0

Nov 4th, 2011
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.19 KB | None | 0 0
  1. // Reverse of the sceMp3 library (from 5.50 firmware), by Geecko
  2. //
  3.  
  4. #include "sceMp3.h"
  5.  
  6. /* Typedefs */
  7.  
  8. typedef struct
  9. {
  10.   SceUInt32 used; // 0 (boolean)
  11.   SceUInt32 unk[47];
  12. } SceMp3Handle;
  13.  
  14. /* Global variables */
  15.  
  16. static SceUInt32 unk0_struct[16]; // 0-63
  17. static SceUInt32 mp3_codec_struct[32]; // 64-191 FIXME size 65 ?
  18. static SceMp3Handle handle_struct[2]; // 192-575
  19.  
  20. /* Internal functions */
  21.  
  22. SceInt32 sub_00000000()
  23. {
  24.   SceInt32 ret, v0;
  25.  
  26.   ret = sceAudiocodecCheckNeedMem(mp3_codec_struct, PSP_CODEC_MP3);
  27.   if (ret < 0)
  28.   {
  29.     return ret;
  30.   }
  31.  
  32.   v0 = (mp3_codec_struct[4] + 63) & 0xFFFFFFC0;
  33.   unk0_struct[5] = v0;
  34.   mp3_codec_struct[4] = 2*v0;
  35.  
  36.   ret = sceAudiocodecGetEDRAM(mp3_codec_struct, PSP_CODEC_MP3);
  37.   if (ret < 0)
  38.   {
  39.     return ret;
  40.   }
  41.  
  42.   mp3_codec_struct[4] = unk0_struct[3];
  43.  
  44.   return 0;
  45. }
  46.  
  47.  
  48. void sub_0000007C(void) // TODO
  49. {
  50. }
  51.  
  52.  
  53. void sub_0000014C(void) // TODO
  54. {
  55. }
  56.  
  57.  
  58. void sub_00000F04(int a0) // FIXME
  59. {
  60. }
  61.  
  62.  
  63. void sub_0000105C(void) // TODO
  64. {
  65. }
  66.  
  67.  
  68. void sub_00001108(void) // TODO
  69. {
  70. }
  71.  
  72.  
  73. void sub_0000118C(void) // TODO
  74. {
  75. }
  76.  
  77. /* Main functions */
  78.  
  79. SceInt32 sceMp3ReserveMp3Handle(SceMp3InitArg* args) // TODO
  80. {
  81.   return 0;
  82. }
  83.  
  84.  
  85. SceInt32 sceMp3ReleaseMp3Handle(SceUInt32 handle)
  86. {
  87.   SceInt32 intr_state;
  88.  
  89.   if (handle >= 2)
  90.   {
  91.     return 0x80671001;
  92.   }
  93.  
  94.   intr_state = sceKernelCpuSuspendIntr();
  95.  
  96.   if (handle_struct[handle].used > 0)
  97.   {
  98.     handle_struct[handle].used = 0;
  99.   }
  100.  
  101.   sceKernelCpuResumeIntr(intr_state);
  102.  
  103.   return 0;
  104. }
  105.  
  106.  
  107. SceInt32 sceMp3InitResource() // TODO
  108. {
  109.   return 0;
  110. }
  111.  
  112.  
  113. SceInt32 sceMp3TermResource()
  114. {
  115.   SceInt32 i, ret;
  116.  
  117.   for (i=0; i<2; i++)
  118.   {
  119.     ret = sceMp3ReleaseMp3Handle(i);
  120.     if (ret < 0)
  121.     {
  122.       return ret;
  123.     }
  124.   }
  125.  
  126.   ret = sub_00000F04(0);
  127.   if (ret < 0)
  128.   {
  129.     return ret;
  130.   }
  131.  
  132.   return 0;
  133. }
  134.  
  135.  
  136. SceInt32 sceMp3Init(SceUInt32 handle) // TODO
  137. {
  138.   return 0;
  139. }
  140.  
  141.  
  142. SceInt32 sceMp3Decode(SceUInt32 handle, SceShort16** dst) // TODO
  143. {
  144.   return 0;
  145. }
  146.  
  147.  
  148. SceInt32 sceMp3GetInfoToAddStreamData
  149.   (SceUInt32 handle, SceUChar8** dst, SceInt32* size, SceInt32* pos) // TODO
  150. {
  151.   return 0;
  152. }
  153.  
  154.  
  155. SceInt32 sceMp3NotifyAddStreamData(SceUInt32 handle, SceInt32 size) // TODO
  156. {
  157.   return 0;
  158. }
  159.  
  160.  
  161. SceInt32 sceMp3CheckStreamDataNeeded(SceUInt32 handle) // TODO
  162. {
  163.   return 0;
  164. }
  165.  
  166.  
  167. SceInt32 sceMp3SetLoopNum(SceUInt32 handle, SceInt32 num) // TODO
  168. {
  169.   return 0;
  170. }
  171.  
  172.  
  173. SceInt32 sceMp3GetLoopNum(SceUInt32 handle) // TODO
  174. {
  175.   return 0;
  176. }
  177.  
  178.  
  179. SceInt32 sceMp3GetSumDecodedSample(SceUInt32 handle) // TODO
  180. {
  181.   return 0;
  182. }
  183.  
  184.  
  185. SceInt32 sceMp3GetMaxOutputSample(SceUInt32 handle) // TODO
  186. {
  187.   return 0;
  188. }
  189.  
  190.  
  191. SceInt32 sceMp3GetSamplingRate(SceUInt32 handle) // TODO
  192. {
  193.   return 0;
  194. }
  195.  
  196.  
  197. SceInt32 sceMp3GetBitRate(SceUInt32 handle) // TODO
  198. {
  199.   return 0;
  200. }
  201.  
  202.  
  203. SceInt32 sceMp3GetMp3ChannelNum(SceUInt32 handle) // TODO
  204. {
  205.   return 0;
  206. }
  207.  
  208.  
  209. SceInt32 sceMp3ResetPlayPosition(SceUInt32 handle) // TODO
  210. {
  211.   return 0;
  212. }
  213.  
  214. /* Module functions */
  215.  
  216. void module_start(void) // FIXME
  217. {
  218. }
  219.  
  220.  
  221. int module_stop()
  222. {
  223.   SceInt32 ret = sceMp3TermResource();
  224.  
  225.   if (ret < 0)
  226.   {
  227.     return ret;
  228.   }
  229.  
  230.   return 0;
  231. }
  232.  
  233. // EOF
  234.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement