1 #include "e_fm_shared_types.h"
2 #include "e_fm_shared_codec.h"
3
4 static Eet_Data_Descriptor *_e_volume_edd = NULL;
5 static Eet_Data_Descriptor *_e_storage_edd = NULL;
6
7 Eet_Data_Descriptor *
_e_volume_edd_new(void)8 _e_volume_edd_new(void)
9 {
10 Eet_Data_Descriptor *edd;
11 Eet_Data_Descriptor_Class eddc;
12
13 if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof(eddc), "e_volume", sizeof(E_Volume)))
14 return NULL;
15
16 // eddc.func.str_alloc = (char *(*)(const char *)) strdup;
17 // eddc.func.str_free = (void (*)(const char *)) free;
18
19 edd = eet_data_descriptor_stream_new(&eddc);
20 #define DAT(MEMBER, TYPE) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, E_Volume, #MEMBER, MEMBER, EET_T_##TYPE)
21 DAT(type, INT);
22 DAT(udi, STRING);
23 DAT(uuid, STRING);
24 DAT(label, STRING);
25 DAT(fstype, STRING);
26 DAT(size, ULONG_LONG);
27 DAT(partition, CHAR);
28 DAT(partition_number, INT);
29 DAT(partition_label, STRING);
30 DAT(mounted, CHAR);
31 DAT(mount_point, STRING);
32 DAT(parent, STRING);
33 DAT(first_time, CHAR);
34 DAT(encrypted, CHAR);
35 DAT(unlocked, CHAR);
36 DAT(efm_mode, UINT);
37 #undef DAT
38 return edd;
39 }
40
41 Eet_Data_Descriptor *
_e_storage_edd_new(void)42 _e_storage_edd_new(void)
43 {
44 Eet_Data_Descriptor *edd;
45 Eet_Data_Descriptor_Class eddc;
46
47 if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "e_storage", sizeof (E_Storage)))
48 return NULL;
49
50 // eddc.func.str_alloc = (char *(*)(const char *)) strdup;
51 // eddc.func.str_free = (void (*)(const char *)) free;
52
53 edd = eet_data_descriptor_stream_new(&eddc);
54 #define DAT(MEMBER, TYPE) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, E_Storage, #MEMBER, MEMBER, EET_T_##TYPE)
55 DAT(type, INT);
56 DAT(udi, STRING);
57 DAT(bus, STRING);
58 DAT(drive_type, STRING);
59 DAT(model, STRING);
60 DAT(vendor, STRING);
61 DAT(serial, STRING);
62 DAT(removable, CHAR);
63 DAT(media_available, CHAR);
64 DAT(media_size, ULONG_LONG);
65 DAT(requires_eject, CHAR);
66 DAT(hotpluggable, CHAR);
67 DAT(media_check_enabled, CHAR);
68 DAT(icon.drive, STRING);
69 DAT(icon.volume, STRING);
70 #undef DAT
71 return edd;
72 }
73
74 void *
_e_fm_shared_codec_storage_encode(E_Storage * s,int * size)75 _e_fm_shared_codec_storage_encode(E_Storage *s, int *size)
76 {
77 return eet_data_descriptor_encode(_e_storage_edd, s, size);
78 }
79
80 E_Storage *
_e_fm_shared_codec_storage_decode(void * s,int size)81 _e_fm_shared_codec_storage_decode(void *s, int size)
82 {
83 return eet_data_descriptor_decode(_e_storage_edd, s, size);
84 }
85
86 void *
_e_fm_shared_codec_volume_encode(E_Volume * v,int * size)87 _e_fm_shared_codec_volume_encode(E_Volume *v, int *size)
88 {
89 return eet_data_descriptor_encode(_e_volume_edd, v, size);
90 }
91
92 E_Volume *
_e_fm_shared_codec_volume_decode(void * v,int size)93 _e_fm_shared_codec_volume_decode(void *v, int size)
94 {
95 return eet_data_descriptor_decode(_e_volume_edd, v, size);
96 }
97
98 void
_e_storage_volume_edd_init(void)99 _e_storage_volume_edd_init(void)
100 {
101 _e_volume_edd = _e_volume_edd_new();
102 _e_storage_edd = _e_storage_edd_new();
103 }
104
105 void
_e_storage_volume_edd_shutdown(void)106 _e_storage_volume_edd_shutdown(void)
107 {
108 if (_e_volume_edd)
109 {
110 eet_data_descriptor_free(_e_volume_edd);
111 _e_volume_edd = NULL;
112 }
113 if (_e_storage_edd)
114 {
115 eet_data_descriptor_free(_e_storage_edd);
116 _e_storage_edd = NULL;
117 }
118 }
119
120