[alsa-devel] [PATCH 13/13] libhinawa: add sample scripts

Takashi Sakamoto o-takashi at sakamocchi.jp
Tue Jan 27 16:09:18 CET 2015


Hi Alexander,

On Jan 25 2014 21:14, Alexander E. Patrakov wrote:
> 25.01.2015 16:34, Takashi Sakamoto wrote:
>> +from array import array
>> +
>> +# helper function
>> +def get_array():
>> +    # The width with 'L' parameter is depending on environment.
>> +    arr = array('L')
>> +    if arr.itemsize is not 4:
>> +        arr = array('I')
>> +    return arr
> 
> 
> If you insist on using arrays, then please add an assertion that you
> have actually got an array with itemsize 4 at the end.

Thanks for your comment. Certainly, I should put assersion to the
function for guarantee to return 32bit array.

> But, if I were you, I'd go with the "ctypes" module instead, if it
> works. Here is how you get a fixed-size (in the example, 10 elements)
> array with signed 4-byte elements:
> 
> from ctypes import *
> TenInts = c_int32 * 10
> ii = TenInts()
> 
> The result supports buffer protocol.

I didn't realize this way, thank you.

But I'm too lazy to like fixed size of array. With the array module, I
can expand the length of array automatically, like:

{{{
from array import array
arr = array('L')
arr.append(1)
arr.append(2)
...
arr.append("Aaargh, how large number!")
}}}

Do you know the ways for flexible length in ctype array?


Regards

Takashi Sakamoto



More information about the Alsa-devel mailing list