/********************************************************************
* *
- * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
- * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
- * PLEASE READ THESE TERMS DISTRIBUTING. *
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* *
- * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 *
- * by Monty <monty@xiph.org> and The XIPHOPHORUS Company *
- * http://www.xiph.org/ *
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
+ * by the Xiph.Org Foundation http://www.xiph.org/ *
* *
********************************************************************
function: registry for time, floor, res backends and channel mappings
- last mod: $Id: registry.c,v 1.1 2000/01/20 04:43:04 xiphmont Exp $
+ last mod: $Id$
********************************************************************/
#include "vorbis/codec.h"
-#include "time0.h"
-#include "floor0.h"
-#include "res0.h"
-#include "mapping0.h"
+#include "codec_internal.h"
#include "registry.h"
+#include "misc.h"
+/* seems like major overkill now; the backend numbers will grow into
+ the infrastructure soon enough */
-/* time backend registry */
-void *(*vorbis_time_dup_P[])(void *)={
- &_vorbis_time0_dup,
-};
-
-void (*vorbis_time_free_P[])(void *)={
- &_vorbis_time0_free,
-};
-
-void (*vorbis_time_pack_P[])(oggpack_buffer *,void *)={
- &_vorbis_time0_pack,
-};
-
-void *(*vorbis_time_unpack_P[])(oggpack_buffer *)={
- &_vorbis_time0_unpack,
-};
-
-/* floor backend registry */
-void *(*vorbis_floor_dup_P[])(void *)={
- &_vorbis_floor0_dup,
-};
-
-void (*vorbis_floor_free_P[])(void *)={
- &_vorbis_floor0_free,
-};
-
-void (*vorbis_floor_pack_P[])(oggpack_buffer *,void *)={
- &_vorbis_floor0_pack,
-};
-
-void *(*vorbis_floor_unpack_P[])(oggpack_buffer *)={
- &_vorbis_floor0_unpack,
-};
-
-/* residue backend registry */
-void *(*vorbis_res_dup_P[])(void *)={
- &_vorbis_res0_dup,
-};
-
-void (*vorbis_res_free_P[])(void *)={
- &_vorbis_res0_free,
-};
-
-void (*vorbis_res_pack_P[])(oggpack_buffer *,void *)={
- &_vorbis_res0_pack,
-};
-
-void *(*vorbis_res_unpack_P[])(oggpack_buffer *)={
- &_vorbis_res0_unpack,
-};
-
-/* channel mapping registry */
-void *(*vorbis_map_dup_P[])(void *)={
- &_vorbis_map0_dup,
-};
-
-void (*vorbis_map_free_P[])(void *)={
- &_vorbis_map0_free,
-};
-
-void (*vorbis_map_pack_P[])(oggpack_buffer *,void *)={
- &_vorbis_map0_pack,
-};
+extern const vorbis_func_floor floor0_exportbundle;
+extern const vorbis_func_floor floor1_exportbundle;
+extern const vorbis_func_residue residue0_exportbundle;
+extern const vorbis_func_residue residue1_exportbundle;
+extern const vorbis_func_residue residue2_exportbundle;
+extern const vorbis_func_mapping mapping0_exportbundle;
-void *(*vorbis_map_unpack_P[])(oggpack_buffer *)={
- &_vorbis_map0_unpack,
+const vorbis_func_floor *const _floor_P[]={
+ &floor0_exportbundle,
+ &floor1_exportbundle,
};
-void *(*vorbis_map_analysis_P[])(vorbis_block *vb,void *,ogg_packet *)={
- &_vorbis_map0_analysis,
+const vorbis_func_residue *const _residue_P[]={
+ &residue0_exportbundle,
+ &residue1_exportbundle,
+ &residue2_exportbundle,
};
-void *(*vorbis_map_synthesis_P[])(vorbis_block *vb,void *,ogg_packet *)={
- &_vorbis_map0_synthesis,
+const vorbis_func_mapping *const _mapping_P[]={
+ &mapping0_exportbundle,
};