/* mpg123clr: MPEG Audio Decoder library Common Language Runtime version. copyright 2009 by Malcolm Boczek - free software under the terms of the LGPL 2.1 mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply. All rights to this work freely assigned to the mpg123 project. */ /* libmpg123: MPEG Audio Decoder library copyright 1995-2008 by the mpg123 project - free software under the terms of the LGPL 2.1 see COPYING and AUTHORS files in distribution or http://mpg123.org */ /* 1.8.1.0 04-Aug-09 Initial release. 1.9.0.0 01-Oct-09 Technical cleanup - subst nullptr for NULL (mb) */ #include "StdAfx.h" #include "id3v1.h" mpg123clr::id3::mpg123id3v1::mpg123id3v1(void) { } mpg123clr::id3::mpg123id3v1::mpg123id3v1(mpg123_id3v1* sb) { this->sb = sb; } // Destructor mpg123clr::id3::mpg123id3v1::~mpg123id3v1(void) { // clean up code to release managed resources // ... // call Finalizer to clean up unmanaged resources this->!mpg123id3v1(); } // Finalizer mpg123clr::id3::mpg123id3v1::!mpg123id3v1(void) { // we do not create the underlying structure, so shouldn't dispose it either... } String^ mpg123clr::id3::mpg123id3v1::tag::get() { if (sb == nullptr || sb->tag == nullptr) return gcnew String(""); return Marshal::PtrToStringAnsi((IntPtr)sb->tag, (int)strnlen(sb->tag, 3)); } String^ mpg123clr::id3::mpg123id3v1::title::get() { if (sb == nullptr || sb->title == nullptr) return gcnew String(""); return Marshal::PtrToStringAnsi((IntPtr)sb->title, (int)strnlen(sb->title, 30)); } String^ mpg123clr::id3::mpg123id3v1::artist::get() { if (sb == nullptr || sb->artist == nullptr) return gcnew String(""); return Marshal::PtrToStringAnsi((IntPtr)sb->artist, (int)strnlen(sb->artist, 30)); } String^ mpg123clr::id3::mpg123id3v1::album::get() { if (sb == nullptr || sb->album == nullptr) return gcnew String(""); return Marshal::PtrToStringAnsi((IntPtr)sb->album, (int)strnlen(sb->album, 30)); } String^ mpg123clr::id3::mpg123id3v1::comment::get() { if (sb == nullptr || sb->comment == nullptr) return gcnew String(""); return Marshal::PtrToStringAnsi((IntPtr)sb->comment, (int)strnlen(sb->comment, 30)); } int mpg123clr::id3::mpg123id3v1::genre::get() { if (sb == nullptr) return 0; return sb->genre; }