[audio] fix for multiple target support by parsing device-map json configuration
[platform/core/multimedia/mm-hal-interface.git] / testcase / audio / parser.hh
1 #include <iostream>
2 #include <string>
3 #include <json.h>
4 #include <assert.h>
5 #include <string.h>
6
7 using namespace std;
8
9 class CDeviceMapParser
10 {
11 public:
12         CDeviceMapParser();
13         CDeviceMapParser(const char* map_file);
14         virtual ~CDeviceMapParser();
15
16         void dump_devices();
17
18         void get_playback(string& card, string& device_num, int& rate, int& channels);
19         void get_capture(string& card, string& device_num, int& rate, int& channels);
20
21 private:
22         void open_json(const char* json_file);
23         void close_json();
24         void parse_device_string_object(json_object *device_string_o, string& device_string);
25         void parse_device_role_object(json_object *device_role_o, string& device_params);
26         void parse_device_file_object(json_object *device_file_o, pair<string, string>& device);
27         void parse_device_file_array_object(json_object *device_file_array_o, pair<string, string>& device);
28
29         void parse_playback();
30         void parse_capture();
31         void get_device(string& s, string& card, string& device_num);
32         void get_params(string& s, int& rate, int& channels);
33         void get_single_param(string& s, int& rate, int& channels);
34
35         // FixMe, pair doens't define what is paired clearly....
36         pair<string, string> m_playback; // device_string, device_params
37         pair<string, string> m_capture;  // device_string, device_params
38
39         json_object *m_json_obj;
40         json_object *m_json_device_files_obj;
41 };
42
43