BsScriptAudioClip.cpp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptAudioClip.h"
  4. #include "BsScriptResourceManager.h"
  5. #include "BsScriptMeta.h"
  6. #include "BsScriptMeshData.h"
  7. #include "BsMonoClass.h"
  8. namespace BansheeEngine
  9. {
  10. ScriptAudioClip::ScriptAudioClip(MonoObject* instance, const HAudioClip& audioClip)
  11. :TScriptResource(instance, audioClip)
  12. {
  13. }
  14. void ScriptAudioClip::initRuntimeData()
  15. {
  16. metaData.scriptClass->addInternalCall("Internal_GetBitDepth", &ScriptAudioClip::internal_GetBitDepth);
  17. metaData.scriptClass->addInternalCall("Internal_GetSampleRate", &ScriptAudioClip::internal_GetSampleRate);
  18. metaData.scriptClass->addInternalCall("Internal_GetNumChannels", &ScriptAudioClip::internal_GetNumChannels);
  19. metaData.scriptClass->addInternalCall("Internal_GetAudioFormat", &ScriptAudioClip::internal_GetAudioFormat);
  20. metaData.scriptClass->addInternalCall("Internal_GetReadMode", &ScriptAudioClip::internal_GetReadMode);
  21. metaData.scriptClass->addInternalCall("Internal_GetNumSamples", &ScriptAudioClip::internal_GetNumSamples);
  22. metaData.scriptClass->addInternalCall("Internal_GetDuration", &ScriptAudioClip::internal_GetDuration);
  23. metaData.scriptClass->addInternalCall("Internal_GetIs3D", &ScriptAudioClip::internal_GetIs3D);
  24. }
  25. UINT32 ScriptAudioClip::internal_GetBitDepth(ScriptAudioClip* thisPtr)
  26. {
  27. HAudioClip audioClip = thisPtr->getHandle();
  28. return audioClip->getBitDepth();
  29. }
  30. UINT32 ScriptAudioClip::internal_GetSampleRate(ScriptAudioClip* thisPtr)
  31. {
  32. HAudioClip audioClip = thisPtr->getHandle();
  33. return audioClip->getFrequency();
  34. }
  35. UINT32 ScriptAudioClip::internal_GetNumChannels(ScriptAudioClip* thisPtr)
  36. {
  37. HAudioClip audioClip = thisPtr->getHandle();
  38. return audioClip->getNumChannels();
  39. }
  40. AudioFormat ScriptAudioClip::internal_GetAudioFormat(ScriptAudioClip* thisPtr)
  41. {
  42. HAudioClip audioClip = thisPtr->getHandle();
  43. return audioClip->getFormat();
  44. }
  45. AudioReadMode ScriptAudioClip::internal_GetReadMode(ScriptAudioClip* thisPtr)
  46. {
  47. HAudioClip audioClip = thisPtr->getHandle();
  48. return audioClip->getReadMode();
  49. }
  50. UINT32 ScriptAudioClip::internal_GetNumSamples(ScriptAudioClip* thisPtr)
  51. {
  52. HAudioClip audioClip = thisPtr->getHandle();
  53. return audioClip->getNumSamples();
  54. }
  55. float ScriptAudioClip::internal_GetDuration(ScriptAudioClip* thisPtr)
  56. {
  57. HAudioClip audioClip = thisPtr->getHandle();
  58. return audioClip->getLength();
  59. }
  60. bool ScriptAudioClip::internal_GetIs3D(ScriptAudioClip* thisPtr)
  61. {
  62. HAudioClip audioClip = thisPtr->getHandle();
  63. return audioClip->is3D();
  64. }
  65. MonoObject* ScriptAudioClip::createInstance()
  66. {
  67. return metaData.scriptClass->createInstance();
  68. }
  69. }