1 /** 2 * Copyright (C) 2012-2014 Analog Devices, Inc. 3 * 4 * Licensed under the GPL-2. 5 * 6 */ 7 8 #ifndef __DAC_DATA_MANAGER__ 9 #define __DAC_DATA_MANAGER__ 10 11 #include <gtk/gtk.h> 12 #include <stdarg.h> 13 #include <iio.h> 14 15 enum dds_tone_type { 16 TONE_I, 17 TONE_Q 18 }; 19 20 enum dds_tone_index { 21 TONE_1, 22 TONE_2 23 }; 24 25 enum dds_widget_type { 26 WIDGET_FREQUENCY, 27 WIDGET_SCALE, 28 WIDGET_PHASE 29 }; 30 31 #define DDS_DISABLED 0 32 #define DDS_ONE_TONE 1 33 #define DDS_TWO_TONE 2 34 #define DDS_INDEPDENT 3 35 #define DDS_BUFFER 4 36 37 struct dac_data_manager; 38 39 struct dac_data_manager *dac_data_manager_new(struct iio_device *dac1, 40 struct iio_device *dac2, struct iio_context *ctx); 41 void dac_data_manager_free(struct dac_data_manager *manager); 42 void dac_data_manager_freq_widgets_range_update(struct dac_data_manager *manager, 43 double tx_sample_rate); 44 void dac_data_manager_update_iio_widgets(struct dac_data_manager *manager); 45 int dac_data_manager_set_dds_mode(struct dac_data_manager *manager, 46 const char *dac_name, unsigned tx_index, int mode); 47 int dac_data_manager_get_dds_mode(struct dac_data_manager *manager, 48 const char *dac_name, unsigned tx_index); 49 void dac_data_manager_set_buffer_chooser_current_folder(struct dac_data_manager *manager, 50 const char *path); 51 void dac_data_manager_set_buffer_chooser_filename(struct dac_data_manager *manager, 52 const char *filename); 53 char *dac_data_manager_get_buffer_chooser_filename(struct dac_data_manager *manager); 54 void dac_data_manager_set_tx_channel_state(struct dac_data_manager *manager, 55 unsigned ch_index, bool state); 56 bool dac_data_manager_get_tx_channel_state(struct dac_data_manager *manager, 57 unsigned ch_index); 58 GtkWidget *dac_data_manager_get_widget(struct dac_data_manager *manager, 59 enum dds_tone_type tone, enum dds_widget_type type); 60 GtkWidget *dac_data_manager_get_gui_container(struct dac_data_manager *manager); 61 void dac_data_manager_set_buffer_size_alignment(struct dac_data_manager *manager, 62 unsigned align); 63 unsigned dac_data_manager_dds_tone(unsigned tx_index, 64 enum dds_tone_index tone_index, enum dds_tone_type tone_type); 65 66 /* Helpers */ 67 int device_scan_elements_count(struct iio_device *dev); 68 69 #endif /* __DAC_DATA_MANAGER__ */ 70