BASS.NET API for the Un4seen BASS Audio LibraryBassBASS_ChannelGetAttribute Method (Int32, BASSAttribute, IntPtr, Int32)BASS.NET API for the Un4seen BASS Audio Library
Retrieves the value of a channel's attribute.

Namespace: Un4seen.Bass
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.12.0
Syntax

[DllImportAttribute("bass.dll", EntryPoint = "BASS_ChannelGetAttributeEx", 
	CharSet = CharSet.Unicode)]
public static int BASS_ChannelGetAttribute(
	int handle,
	BASSAttribute attrib,
	IntPtr value,
	int size
)

Parameters

handle
Type: SystemInt32
The channel handle... a HCHANNEL, HMUSIC, HSTREAM or HRECORD.
attrib
Type: Un4seen.BassBASSAttribute
The attribute to get the value of (one of the following, see BASSAttribute):
BASS_ATTRIB_SCANINFOScanned info. (HSTREAM only).
Other attributes may be supported by add-ons, see the documentation
value
Type: SystemIntPtr
Pointer to a buffer to receive the attribute data.
size
Type: SystemInt32
The size of the attribute data... 0 = get the size of the attribute without getting the data.

Return Value

Type: Int32
If successful, the size of the attribute data is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code.
Remarks

This function also supports the floating-point attributes supported by BASS_ChannelGetAttribute(Int32, BASSAttribute, Single).

ERROR CODEDescription
BASS_ERROR_HANDLEhandle is not a valid channel.
BASS_ERROR_NOTAVAILThe attrib is not available.
BASS_ERROR_ILLTYPEattrib is not valid.
BASS_ERROR_ILLPARAMThe value content or size is not valid.
Some attributes may have additional error codes, see the documentation

Examples

Transfer scanned info from one stream to another stream of the same file:
VB
' get the size
Dim size As Integer = Bass.BASS_ChannelGetAttribute(stream1, BASSAttribute.BASS_ATTRIB_SCANINFO, IntPtr.Zero, 0)
Dim hglobal As IntPtr = Marshal.AllocHGlobal(size)
' get the data
Bass.BASS_ChannelGetAttribute(stream1, BASSAttribute.BASS_ATTRIB_SCANINFO, scaninfo, size)
' apply it to the other stream
Bass.BASS_ChannelSetAttribute(stream2, BASSAttribute.BASS_ATTRIB_SCANINFO, scaninfo, size)
Marshal.FreeHGlobal(hglobal)
// get the size
int size = Bass.BASS_ChannelGetAttribute(stream1, BASSAttribute.BASS_ATTRIB_SCANINFO, IntPtr.Zero, 0);
IntPtr hglobal = Marshal.AllocHGlobal(size);
// get the data
Bass.BASS_ChannelGetAttribute(stream1, BASSAttribute.BASS_ATTRIB_SCANINFO, scaninfo, size);
// apply it to the other stream
Bass.BASS_ChannelSetAttribute(stream2, BASSAttribute.BASS_ATTRIB_SCANINFO, scaninfo, size);
Marshal.FreeHGlobal(hglobal);
See Also

Reference