-static void Reorder71 (void *p, size_t n, unsigned size)
-{
- switch (size)
- {
- case 4:
- for (uint64_t *ptr = p; n > 0; ptr += 4, n--)
- {
- uint64_t middle = ptr[1], c_lfe = ptr[2], rear = ptr[3];
- ptr[1] = c_lfe; ptr[2] = rear; ptr[3] = middle;
- }
- break;
- case 2:
- for (uint32_t *ptr = p; n > 0; ptr += 4, n--)
- {
- uint32_t middle = ptr[1], c_lfe = ptr[2], rear = ptr[3];
- ptr[1] = c_lfe; ptr[2] = rear; ptr[3] = middle;
- }
- break;
-
- default:
- for (uint16_t *ptr = p; n > 0; n--)
- {
- uint16_t middle[size];
- memcpy (middle, ptr + size, size * 2);
- ptr += size;
- memcpy (ptr, ptr + size, size * 2);
- ptr += size;
- memcpy (ptr, ptr + size, size * 2);
- ptr += size;
- memcpy (ptr, middle, size * 2);
- ptr += size;
- }
- break;
- }
-}
-
-
-/*****************************************************************************
- * config variable callback
- *****************************************************************************/
-static int FindDevicesCallback( vlc_object_t *p_this, char const *psz_name,
- vlc_value_t newval, vlc_value_t oldval, void *p_unused )
-{
- module_config_t *p_item;
- (void)newval;
- (void)oldval;
- (void)p_unused;
-
- p_item = config_FindConfig( p_this, psz_name );
- if( !p_item ) return VLC_SUCCESS;
-
- /* Clear-up the current list */
- if( p_item->i_list )
- {
- int i;
-
- /* Keep the first entrie */
- for( i = 1; i < p_item->i_list; i++ )
- {
- free( (char *)p_item->ppsz_list[i] );
- free( (char *)p_item->ppsz_list_text[i] );
- }
- /* TODO: Remove when no more needed */
- p_item->ppsz_list[i] = NULL;
- p_item->ppsz_list_text[i] = NULL;
- }
- p_item->i_list = 1;
-
- GetDevices (p_this, p_item, "default");
-
- /* Signal change to the interface */
- p_item->b_dirty = true;
-
- return VLC_SUCCESS;
-}
-
-
-static void GetDevices (vlc_object_t *obj, module_config_t *item,
- const char *prefs_dev)