Description:
The value returned in name is allocated with strdup and should be freed when no longer used.
Perhaps long name not available or card index is wrong
Code: Select all
PrototypeC.l Prototype_snd_card_get_longname(card.l, *pName)
PrototypeC.l Prototype_snd_card_get_name(card.l, *pName)
Global snd_card_get_longname_.Prototype_snd_card_get_longname
Global snd_card_get_name_.Prototype_snd_card_get_name
snd_card_get_longname_ = GetFunction(AlsaLib, "snd_card_get_longname")
snd_card_get_name_ = GetFunction(AlsaLib, "snd_card_get_name")
Procedure.s snd_card_get_longname(card.l)
Protected r1, *pName, Result$
r1 = snd_card_get_longname_(card, @*pName)
If r1 = 0
If *pName
Result$ = PeekS(*pName, -1, #PB_UTF8)
free_(*pName)
Else
Result$ = "Error: No Long Card Name!"
EndIf
Else
Result$ = "Error: Code " + Hex(r1)
EndIf
ProcedureReturn Result$
EndProcedure
Procedure.s snd_card_get_name(card.l)
Protected r1, *pName, Result$
r1 = snd_card_get_name_(card, @*pName)
If r1 = 0
If *pName
Result$ = PeekS(*pName, -1, #PB_UTF8)
free_(*pName)
Else
Result$ = "Error: No Card Name!"
EndIf
Else
Result$ = "Error: Code " + Hex(r1)
EndIf
ProcedureReturn Result$
EndProcedure