mirror of
https://github.com/chatmail/core.git
synced 2026-05-19 06:46:32 +03:00
api(deltachat-ffi): make WebXdcRealtimeData data usable in CFFI
Previously only msg_id was returned to CFFI without any way to get to the actual received data.
This commit is contained in:
@@ -6284,6 +6284,18 @@ void dc_event_unref(dc_event_t* event);
|
|||||||
|
|
||||||
#define DC_EVENT_WEBXDC_INSTANCE_DELETED 2121
|
#define DC_EVENT_WEBXDC_INSTANCE_DELETED 2121
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data received over an ephemeral peer channel.
|
||||||
|
*
|
||||||
|
* @param data1 (int) msg_id
|
||||||
|
* @param data2 (int) + (char*) binary data.
|
||||||
|
* length is returned as integer with dc_event_get_data2_int()
|
||||||
|
* and binary data is returned as dc_event_get_data2_str().
|
||||||
|
* Binary data must be passed to dc_str_unref() afterwards.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define DC_EVENT_WEBXDC_REALTIME_DATA 2150
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tells that the Background fetch was completed (or timed out).
|
* Tells that the Background fetch was completed (or timed out).
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -658,7 +658,6 @@ pub unsafe extern "C" fn dc_event_get_data2_int(event: *mut dc_event_t) -> libc:
|
|||||||
| EventType::ConnectivityChanged
|
| EventType::ConnectivityChanged
|
||||||
| EventType::WebxdcInstanceDeleted { .. }
|
| EventType::WebxdcInstanceDeleted { .. }
|
||||||
| EventType::IncomingMsgBunch { .. }
|
| EventType::IncomingMsgBunch { .. }
|
||||||
| EventType::WebxdcRealtimeData { .. }
|
|
||||||
| EventType::SelfavatarChanged
|
| EventType::SelfavatarChanged
|
||||||
| EventType::AccountsBackgroundFetchDone
|
| EventType::AccountsBackgroundFetchDone
|
||||||
| EventType::ChatlistChanged
|
| EventType::ChatlistChanged
|
||||||
@@ -679,6 +678,7 @@ pub unsafe extern "C" fn dc_event_get_data2_int(event: *mut dc_event_t) -> libc:
|
|||||||
status_update_serial,
|
status_update_serial,
|
||||||
..
|
..
|
||||||
} => status_update_serial.to_u32() as libc::c_int,
|
} => status_update_serial.to_u32() as libc::c_int,
|
||||||
|
EventType::WebxdcRealtimeData { data, .. } => data.len() as libc::c_int,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -725,7 +725,6 @@ pub unsafe extern "C" fn dc_event_get_data2_str(event: *mut dc_event_t) -> *mut
|
|||||||
| EventType::SelfavatarChanged
|
| EventType::SelfavatarChanged
|
||||||
| EventType::WebxdcStatusUpdate { .. }
|
| EventType::WebxdcStatusUpdate { .. }
|
||||||
| EventType::WebxdcInstanceDeleted { .. }
|
| EventType::WebxdcInstanceDeleted { .. }
|
||||||
| EventType::WebxdcRealtimeData { .. }
|
|
||||||
| EventType::AccountsBackgroundFetchDone
|
| EventType::AccountsBackgroundFetchDone
|
||||||
| EventType::ChatEphemeralTimerModified { .. }
|
| EventType::ChatEphemeralTimerModified { .. }
|
||||||
| EventType::IncomingMsgBunch { .. }
|
| EventType::IncomingMsgBunch { .. }
|
||||||
@@ -746,6 +745,11 @@ pub unsafe extern "C" fn dc_event_get_data2_str(event: *mut dc_event_t) -> *mut
|
|||||||
let data2 = key.to_string().to_c_string().unwrap_or_default();
|
let data2 = key.to_string().to_c_string().unwrap_or_default();
|
||||||
data2.into_raw()
|
data2.into_raw()
|
||||||
}
|
}
|
||||||
|
EventType::WebxdcRealtimeData { data, .. } => {
|
||||||
|
let ptr = libc::malloc(data.len());
|
||||||
|
libc::memcpy(ptr, data.as_ptr() as *mut libc::c_void, data.len());
|
||||||
|
ptr as *mut libc::c_char
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ module.exports = {
|
|||||||
DC_EVENT_SMTP_MESSAGE_SENT: 103,
|
DC_EVENT_SMTP_MESSAGE_SENT: 103,
|
||||||
DC_EVENT_WARNING: 300,
|
DC_EVENT_WARNING: 300,
|
||||||
DC_EVENT_WEBXDC_INSTANCE_DELETED: 2121,
|
DC_EVENT_WEBXDC_INSTANCE_DELETED: 2121,
|
||||||
|
DC_EVENT_WEBXDC_REALTIME_DATA: 2150,
|
||||||
DC_EVENT_WEBXDC_STATUS_UPDATE: 2120,
|
DC_EVENT_WEBXDC_STATUS_UPDATE: 2120,
|
||||||
DC_GCL_ADD_ALLDONE_HINT: 4,
|
DC_GCL_ADD_ALLDONE_HINT: 4,
|
||||||
DC_GCL_ADD_SELF: 2,
|
DC_GCL_ADD_SELF: 2,
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ module.exports = {
|
|||||||
2111: 'DC_EVENT_CONFIG_SYNCED',
|
2111: 'DC_EVENT_CONFIG_SYNCED',
|
||||||
2120: 'DC_EVENT_WEBXDC_STATUS_UPDATE',
|
2120: 'DC_EVENT_WEBXDC_STATUS_UPDATE',
|
||||||
2121: 'DC_EVENT_WEBXDC_INSTANCE_DELETED',
|
2121: 'DC_EVENT_WEBXDC_INSTANCE_DELETED',
|
||||||
|
2150: 'DC_EVENT_WEBXDC_REALTIME_DATA',
|
||||||
2200: 'DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE',
|
2200: 'DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE',
|
||||||
2300: 'DC_EVENT_CHATLIST_CHANGED',
|
2300: 'DC_EVENT_CHATLIST_CHANGED',
|
||||||
2301: 'DC_EVENT_CHATLIST_ITEM_CHANGED'
|
2301: 'DC_EVENT_CHATLIST_ITEM_CHANGED'
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ export enum C {
|
|||||||
DC_EVENT_SMTP_MESSAGE_SENT = 103,
|
DC_EVENT_SMTP_MESSAGE_SENT = 103,
|
||||||
DC_EVENT_WARNING = 300,
|
DC_EVENT_WARNING = 300,
|
||||||
DC_EVENT_WEBXDC_INSTANCE_DELETED = 2121,
|
DC_EVENT_WEBXDC_INSTANCE_DELETED = 2121,
|
||||||
|
DC_EVENT_WEBXDC_REALTIME_DATA = 2150,
|
||||||
DC_EVENT_WEBXDC_STATUS_UPDATE = 2120,
|
DC_EVENT_WEBXDC_STATUS_UPDATE = 2120,
|
||||||
DC_GCL_ADD_ALLDONE_HINT = 4,
|
DC_GCL_ADD_ALLDONE_HINT = 4,
|
||||||
DC_GCL_ADD_SELF = 2,
|
DC_GCL_ADD_SELF = 2,
|
||||||
@@ -338,6 +339,7 @@ export const EventId2EventName: { [key: number]: string } = {
|
|||||||
2111: 'DC_EVENT_CONFIG_SYNCED',
|
2111: 'DC_EVENT_CONFIG_SYNCED',
|
||||||
2120: 'DC_EVENT_WEBXDC_STATUS_UPDATE',
|
2120: 'DC_EVENT_WEBXDC_STATUS_UPDATE',
|
||||||
2121: 'DC_EVENT_WEBXDC_INSTANCE_DELETED',
|
2121: 'DC_EVENT_WEBXDC_INSTANCE_DELETED',
|
||||||
|
2150: 'DC_EVENT_WEBXDC_REALTIME_DATA',
|
||||||
2200: 'DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE',
|
2200: 'DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE',
|
||||||
2300: 'DC_EVENT_CHATLIST_CHANGED',
|
2300: 'DC_EVENT_CHATLIST_CHANGED',
|
||||||
2301: 'DC_EVENT_CHATLIST_ITEM_CHANGED',
|
2301: 'DC_EVENT_CHATLIST_ITEM_CHANGED',
|
||||||
|
|||||||
Reference in New Issue
Block a user