Blame ports/MSVC++/2008clr/mpg123clr/text.h

Packit c32a2d
/*
Packit c32a2d
	mpg123clr: MPEG Audio Decoder library Common Language Runtime version.
Packit c32a2d

Packit c32a2d
	copyright 2009 by Malcolm Boczek - free software under the terms of the LGPL 2.1
Packit c32a2d
	mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply.
Packit c32a2d

Packit c32a2d
	All rights to this work freely assigned to the mpg123 project.
Packit c32a2d
*/
Packit c32a2d
/*
Packit c32a2d
	libmpg123: MPEG Audio Decoder library
Packit c32a2d

Packit c32a2d
	copyright 1995-2008 by the mpg123 project - free software under the terms of the LGPL 2.1
Packit c32a2d
	see COPYING and AUTHORS files in distribution or http://mpg123.org
Packit c32a2d

Packit c32a2d
*/
Packit c32a2d
/*
Packit c32a2d
	1.8.1.0	04-Aug-09	Initial release.
Packit c32a2d
*/
Packit c32a2d

Packit c32a2d
#pragma once
Packit c32a2d

Packit c32a2d
#pragma warning(disable : 4635)
Packit c32a2d
#include "mpg123.h"
Packit c32a2d
#pragma warning(default : 4635)
Packit c32a2d

Packit c32a2d
#include "string.h"
Packit c32a2d

Packit c32a2d
#include <string>
Packit c32a2d
#include <iostream>
Packit c32a2d

Packit c32a2d
#include <vcclr.h>
Packit c32a2d
using namespace std;
Packit c32a2d
using namespace System;
Packit c32a2d
using namespace System::Runtime::InteropServices;
Packit c32a2d

Packit c32a2d
namespace mpg123clr
Packit c32a2d
{
Packit c32a2d
	// Recommended usage when creating reference type on the managed heap (not using stack semantics 
Packit c32a2d
	//  for reference types...) [see Destructors and Finalizers in Visual C++]
Packit c32a2d
	//
Packit c32a2d
	// A ^ myA = gcnew A;
Packit c32a2d
	// try
Packit c32a2d
	// {
Packit c32a2d
	//     use myA
Packit c32a2d
	// }
Packit c32a2d
	// finally
Packit c32a2d
	// {
Packit c32a2d
	//     delete myA;
Packit c32a2d
	// }
Packit c32a2d

Packit c32a2d

Packit c32a2d
	///<summary>Wrapper for mpg123_text.</summary>
Packit c32a2d
	[StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
Packit c32a2d
	public ref struct mpg123text
Packit c32a2d
	{
Packit c32a2d
	private:
Packit c32a2d
		mpg123_text* sb;
Packit c32a2d

Packit c32a2d
	internal:
Packit c32a2d
		///<summary>Constructor.
Packit c32a2d
		///<para>Recommended usage: only as tracking marker to existing mpg123_text objects.</para></summary>
Packit c32a2d
		mpg123text(void);
Packit c32a2d

Packit c32a2d
		///<summary>Reference Constructor.
Packit c32a2d
		///<para>Recommended usage: only as tracking marker to existing mpg123_text objects.</para></summary>
Packit c32a2d
		mpg123text(mpg123_text* sb);
Packit c32a2d

Packit c32a2d
	protected:
Packit c32a2d
		///<summary>Finalizer.
Packit c32a2d
		///<para>Does nothing. mpg123text can only be instanced as a reference to an existing mpg123_text object (which is responsible for its own disposal.</para></summary>
Packit c32a2d
		/// Implementation of CLR Finalize().
Packit c32a2d
		!mpg123text(void);
Packit c32a2d

Packit c32a2d
	public:
Packit c32a2d
		///<summary>Destructor. Used for final object deletion.
Packit c32a2d
		///<para>Calls finalizer.</para>
Packit c32a2d
		///</summary>
Packit c32a2d
		/// Implementation of CLR Dispose().
Packit c32a2d
		/// ~Destructor and !Finalizer are the prescribed implementation of Dispose() and Finalize().
Packit c32a2d
		/// See Destructors and Finalizers in Visual C++
Packit c32a2d
		~mpg123text(void);
Packit c32a2d

Packit c32a2d
		///<summary>Get a string representation of the 3-letter language code.
Packit c32a2d
		///<para>Only COMM and USLT have a language element.</para>
Packit c32a2d
		///<para>Property returns string representation of the 3-letter language code.</para>
Packit c32a2d
		///</summary>
Packit c32a2d
		///<value>String representation of the 3-letter language code.</value>
Packit c32a2d
		property String^ lang{String^ __clrcall get();}
Packit c32a2d

Packit c32a2d
		///<summary>Get a string representation of the ID3v2 field id. (i.e. TALB, TPE2 etc.)
Packit c32a2d
		///<para>Property returns string representation of the ID3v2 field id. (i.e. TALB, TPE2 etc.)</para>
Packit c32a2d
		///</summary>
Packit c32a2d
		///<value>String representation of the ID3v2 field id. (i.e. TALB, TPE2 etc.)</value>
Packit c32a2d
		property String^ id{String^ __clrcall get();}
Packit c32a2d

Packit c32a2d
		///<summary>Get a string representation of the description field.
Packit c32a2d
		///<para>Only COMM and TXXX have a description element.</para>
Packit c32a2d
		///<para>Property returns string representation of the description field.</para>
Packit c32a2d
		///</summary>
Packit c32a2d
		///<value>String representation of the description field.</value>
Packit c32a2d
		property String^ description{String^ __clrcall get();}
Packit c32a2d

Packit c32a2d
		///<summary>Get a string representation of the ID3 tag text.
Packit c32a2d
		///<para>This is for COMM, TXXX and all the other text fields.</para>
Packit c32a2d
		///<para>Property returns string representation of the ID3 tag text.</para>
Packit c32a2d
		///</summary>
Packit c32a2d
		///<value>String representation of the ID3 tag text.</value>
Packit c32a2d
		property String^ text{String^ __clrcall get();}
Packit c32a2d

Packit c32a2d
	};
Packit c32a2d
}