|
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 |
1.9.0.0 24-Sep-09 Function names harmonized with libmpg123 (mb)
|
|
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 "enum.h"
|
|
Packit |
c32a2d |
#include "error.h"
|
|
Packit |
c32a2d |
|
|
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 (Microsoft) Destructors and Finalizers in Visual C++]
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// C++/CLI
|
|
Packit |
c32a2d |
// A myA;
|
|
Packit |
c32a2d |
// // use myA here
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// Equivalent user code:
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// A ^ myA = gcnew A;
|
|
Packit |
c32a2d |
// try { /* use myA here */ } finally { delete myA; }
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// C# (from wikipedia)
|
|
Packit |
c32a2d |
// using(A myA = new A()) { /* Use myA here */ }
|
|
Packit |
c32a2d |
// Compiler calls myA.Dispose(), in a "finally" of a "try/finally" block
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// Equivalent user code:
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// A myA = new myA();
|
|
Packit |
c32a2d |
// try { /* Use myA here */ } finally { myA.Dispose(); }
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// Otherwise Finalizer will be nondeterministically called by GC
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary> CLR wrapper for mpg123_pars object.</summary>
|
|
Packit |
c32a2d |
public ref class advpars
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
protected public:
|
|
Packit |
c32a2d |
mpg123_pars* mp;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
protected:
|
|
Packit |
c32a2d |
!advpars(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
public:
|
|
Packit |
c32a2d |
///<summary>Constructor.</summary>
|
|
Packit |
c32a2d |
///<param name="error">Returns MPG123_OK or mpg123 error code.</param>
|
|
Packit |
c32a2d |
advpars([Out] int% error);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Destructor.</summary>
|
|
Packit |
c32a2d |
~advpars(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Configure mpg123 parameters to accept no output formats.
|
|
Packit |
c32a2d |
///<para>Use to clear default parameters prior to applying specific settings.</para>
|
|
Packit |
c32a2d |
///<para>Returns MPG123 error codes.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<returns>MPG123 error codes.</returns>
|
|
Packit |
c32a2d |
mpg123clr::mpg::ErrorCode __clrcall mpg123_fmt_none(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Configure mpg123 parameters to accept all formats including custom rate you may set - this is the default.
|
|
Packit |
c32a2d |
///<para>Returns MPG123 error codes.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<returns>MPG123 error codes.</returns>
|
|
Packit |
c32a2d |
mpg123clr::mpg::ErrorCode __clrcall mpg123_fmt_all(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Configure detailed output formats.
|
|
Packit |
c32a2d |
///<para>Returns MPG123 error codes.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<param name="rate">Sample rate (Hertz)</param>
|
|
Packit |
c32a2d |
///<param name="channels">Combination of channelcount.stereo and channelcount.mono</param>
|
|
Packit |
c32a2d |
///<param name="encodings">Combination of accepted encodings for rate and channels e.g. enc.enc_signed16 | enc.enc_ulaw_8 (or 0 for none)</param>
|
|
Packit |
c32a2d |
///<returns>MPG123 error codes.</returns>
|
|
Packit |
c32a2d |
/// VERSION CHECK: long as int for Intellisense
|
|
Packit |
c32a2d |
mpg123clr::mpg::ErrorCode __clrcall mpg123_fmt(int rate, mpg123clr::mpg::channelcount channels, int encodings);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Get available support for supplied rate and encoding.
|
|
Packit |
c32a2d |
///<para>Returns 0 for no support (includes invalid parameters), or combination of channelcount.stereo and channelcount.mono.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<param name="rate">Sample rate (Hertz)</param>
|
|
Packit |
c32a2d |
///<param name="encoding">Combination of accepted encodings for rate and channels e.g. enc.enc_signed16 | enc.enc_ulaw_8 (or 0 for none)</param>
|
|
Packit |
c32a2d |
///<returns>Returns 0 for no support (includes invalid parameters), or combination of channelcount.stereo and channelcount.mono.</returns>
|
|
Packit |
c32a2d |
/// VERSION CHECK: long as int for Intellisense
|
|
Packit |
c32a2d |
mpg123clr::mpg::channelcount __clrcall mpg123_fmt_support(int rate, int encoding);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Set a specific advpars value.
|
|
Packit |
c32a2d |
///<para>Returns MPG123 error codes.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<param name="type">Specifies the advpars parameter to be set.</param>
|
|
Packit |
c32a2d |
///<param name="val">The integer value to be applied.</param>
|
|
Packit |
c32a2d |
///<param name="fval">The real value to be applied.</param>
|
|
Packit |
c32a2d |
///<returns>MPG123 error codes.</returns>
|
|
Packit |
c32a2d |
/// VERSION CHECK: long as int for Intellisense
|
|
Packit |
c32a2d |
mpg123clr::mpg::ErrorCode __clrcall mpg123_par(mpg123clr::mpg::parms type, int val, double fval);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
///<summary>Get a specific advpars value.
|
|
Packit |
c32a2d |
///<para>Returns MPG123 error codes.</para>
|
|
Packit |
c32a2d |
///</summary>
|
|
Packit |
c32a2d |
///<param name="type">Specifies the advpars parameter to be returned.</param>
|
|
Packit |
c32a2d |
///<param name="val">Returns the applicable integer value.</param>
|
|
Packit |
c32a2d |
///<param name="fval">Returns the applicable real value.</param>
|
|
Packit |
c32a2d |
///<returns>MPG123 error codes.</returns>
|
|
Packit |
c32a2d |
/// VERSION CHECK: long as int for Intellisense
|
|
Packit |
c32a2d |
mpg123clr::mpg::ErrorCode __clrcall mpg123_getpar(mpg123clr::mpg::parms type, [Out] int% val, [Out] double% fval);
|
|
Packit |
c32a2d |
};
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
}
|