Refactored part of the code, added routines and minimal galaxys2 support
[yamaha-mc1n2-audio.git] / include / yamaha-mc1n2-audio.h
index 5852666..6856106 100644 (file)
 
 #include "mc1n2.h"
 
-#define HW_NODE_DEFAULT        "/dev/snd/hwC0D0"
+struct yamaha_mc1n2_audio_routine_init {
+       MCDRV_DAC_INFO dac_info;
+       MCDRV_ADC_INFO adc_info;
+       MCDRV_SP_INFO sp_info;
+       MCDRV_PDM_INFO pdm_info;
+       MCDRV_DNG_INFO dng_info;
+       MCDRV_SYSEQ_INFO syseq_info;
+};
 
-struct yamaha_mc1n2_audio_pdata {
+struct yamaha_mc1n2_audio_routine_route_init {
+       MCDRV_PATH_INFO path_info;
+       MCDRV_DAC_INFO dac_info;
+};
+
+struct yamaha_mc1n2_audio_routine {
+       struct yamaha_mc1n2_audio_routine_init *init;
+       struct yamaha_mc1n2_audio_routine_route_init *route_init;
+};
+
+struct yamaha_mc1n2_audio_device_ops {
        char *hw_node;
+       struct yamaha_mc1n2_audio_routine routine;
+};
+
+struct yamaha_mc1n2_audio_pdata {
+       char *name;
+       struct yamaha_mc1n2_audio_device_ops *ops;
 };
 
 /*
+ * Platforms
+ */
+
+extern struct yamaha_mc1n2_audio_pdata galaxys2_pdata;
+
+/*
  * Functions
  */
 
@@ -38,12 +67,16 @@ int yamaha_mc1n2_audio_ioctl_set_ctrl(struct yamaha_mc1n2_audio_pdata *pdata,
 int yamaha_mc1n2_audio_ioctl_notify(struct yamaha_mc1n2_audio_pdata *pdata,
        unsigned long command);
 
+// Routines
+int yamaha_mc1n2_audio_routine_init(struct yamaha_mc1n2_audio_pdata *pdata);
+int yamaha_mc1n2_audio_routine_route_init(struct yamaha_mc1n2_audio_pdata *pdata);
+
 // Values configuration
-int yamaha_mc1n2_audio_set_hw_node(struct yamaha_mc1n2_audio_pdata *pdata, char *node);
 char *yamaha_mc1n2_audio_get_hw_node(struct yamaha_mc1n2_audio_pdata *pdata);
 
 // Init/Deinit
-int yamaha_mc1n2_audio_init(struct yamaha_mc1n2_audio_pdata **pdata_p);
-int yamaha_mc1n2_audio_deinit(struct yamaha_mc1n2_audio_pdata *pdata);
+int yamaha_mc1n2_audio_start(struct yamaha_mc1n2_audio_pdata **pdata_p,
+       char *device_name);
+int yamaha_mc1n2_audio_stop(struct yamaha_mc1n2_audio_pdata *pdata);
 
 #endif