id3v1.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. mpg123clr: MPEG Audio Decoder library Common Language Runtime version.
  3. copyright 2009 by Malcolm Boczek - free software under the terms of the LGPL 2.1
  4. mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply.
  5. All rights to this work freely assigned to the mpg123 project.
  6. */
  7. /*
  8. libmpg123: MPEG Audio Decoder library
  9. copyright 1995-2008 by the mpg123 project - free software under the terms of the LGPL 2.1
  10. see COPYING and AUTHORS files in distribution or http://mpg123.org
  11. */
  12. /*
  13. 1.8.1.0 04-Aug-09 Initial release.
  14. 1.9.0.0 01-Oct-09 Technical cleanup - subst nullptr for NULL (mb)
  15. */
  16. #include "StdAfx.h"
  17. #include "id3v1.h"
  18. mpg123clr::id3::mpg123id3v1::mpg123id3v1(void)
  19. {
  20. }
  21. mpg123clr::id3::mpg123id3v1::mpg123id3v1(mpg123_id3v1* sb)
  22. {
  23. this->sb = sb;
  24. }
  25. // Destructor
  26. mpg123clr::id3::mpg123id3v1::~mpg123id3v1(void)
  27. {
  28. // clean up code to release managed resources
  29. // ...
  30. // call Finalizer to clean up unmanaged resources
  31. this->!mpg123id3v1();
  32. }
  33. // Finalizer
  34. mpg123clr::id3::mpg123id3v1::!mpg123id3v1(void)
  35. {
  36. // we do not create the underlying structure, so shouldn't dispose it either...
  37. }
  38. String^ mpg123clr::id3::mpg123id3v1::tag::get()
  39. {
  40. if (sb == nullptr || sb->tag == nullptr) return gcnew String("");
  41. return Marshal::PtrToStringAnsi((IntPtr)sb->tag, (int)strnlen(sb->tag, 3));
  42. }
  43. String^ mpg123clr::id3::mpg123id3v1::title::get()
  44. {
  45. if (sb == nullptr || sb->title == nullptr) return gcnew String("");
  46. return Marshal::PtrToStringAnsi((IntPtr)sb->title, (int)strnlen(sb->title, 30));
  47. }
  48. String^ mpg123clr::id3::mpg123id3v1::artist::get()
  49. {
  50. if (sb == nullptr || sb->artist == nullptr) return gcnew String("");
  51. return Marshal::PtrToStringAnsi((IntPtr)sb->artist, (int)strnlen(sb->artist, 30));
  52. }
  53. String^ mpg123clr::id3::mpg123id3v1::album::get()
  54. {
  55. if (sb == nullptr || sb->album == nullptr) return gcnew String("");
  56. return Marshal::PtrToStringAnsi((IntPtr)sb->album, (int)strnlen(sb->album, 30));
  57. }
  58. String^ mpg123clr::id3::mpg123id3v1::comment::get()
  59. {
  60. if (sb == nullptr || sb->comment == nullptr) return gcnew String("");
  61. return Marshal::PtrToStringAnsi((IntPtr)sb->comment, (int)strnlen(sb->comment, 30));
  62. }
  63. int mpg123clr::id3::mpg123id3v1::genre::get()
  64. {
  65. if (sb == nullptr) return 0;
  66. return sb->genre;
  67. }