@@ -2,52 +2,56 @@ module main
22
33import protocols.color_management_v1 as cm
44
5- fn handle_cm_image_description_info_done (mut state State, proxy voidptr ) {
6- state.n_cm_done++
5+ fn handle_cm_image_description_info_done (data voidptr , obj voidptr ) {
6+ mut state := unsafe { & State (data) }
7+ state.n_cm_done++
78}
89
9- fn handle_cm_image_description_info_tf_named (mut state State, info & cm.WpImageDescriptionInfoV1 , tf u32 ) {
10+ fn handle_cm_image_description_info_tf_named (data voidptr , obj voidptr , tf u32 ) {
11+ mut state := unsafe { & State (data) }
1012 state.is_hdr = tf & u32 (cm.WpColorManagerV1_ TransferFunction.st2084_ pq) != 0
1113}
1214
13- const cm_image_description_info_listener = C.wp_image_description_info_v1_ listener{
14- done: handle_cm_image_description_info_done
15- icc_file: fn (_ voidptr , _ voidptr , _ int , _ u32 ) {}
16- primaries: fn (_ voidptr , _ voidptr , _ int , _ int , _ int , _ int , _ int , _ int , _ int , _ int ) {}
17- primaries_named: fn (_ voidptr , _ voidptr , _ u32 ) {}
18- tf_power: fn (_ voidptr , _ voidptr , _ u32 ) {}
19- tf_named: handle_cm_image_description_info_tf_named
20- luminances: fn (_ voidptr , _ voidptr , _ u32 , _ u32 , _ u32 ) {}
21- target_primaries: fn (_ voidptr , _ voidptr , _ int , _ int , _ int , _ int , _ int , _ int , _ int , _ int ) {}
22- target_luminance: fn (_ voidptr , _ voidptr , _ u32 , _ u32 ) {}
23- target_max_cll: fn (_ voidptr , _ voidptr , _ u32 ) {}
24- target_max_fall: fn (_ voidptr , _ voidptr , _ u32 ) {}
25- }
26-
27- fn handle_cm_image_description_ready (mut state State, description_proxy voidptr , identity u32 ) {
15+ const cm_image_description_info_listener = cm.wpimagedescriptioninfov1_listener (
16+ handle_cm_image_description_info_done, // done
17+ none , // icc_file
18+ none , // primaries
19+ none , // primaries_named
20+ none , // tf_power
21+ handle_cm_image_description_info_tf_named, // tf_named
22+ none , // luminances
23+ none , // target_primaries
24+ none , // target_luminance
25+ none , // target_max_cll
26+ none // target_max_fall
27+ )
28+
29+ fn handle_cm_image_description_ready (data voidptr , description_proxy voidptr , identity u32 ) {
30+ mut state := unsafe { & State (data) }
2831 mut desc := & cm.WpImageDescriptionV1 {
2932 proxy: description_proxy
3033 }
3134 mut info := desc.get_information ()
3235 info.add_listener (& cm_image_description_info_listener, state)
3336}
3437
35- fn handle_cm_image_description_failed (mut state State , description & cm.WpImageDescriptionV1 , cause u32 , msg & char) {
38+ fn handle_cm_image_description_failed (data voidptr , description & cm.WpImageDescriptionV1 , cause u32 , msg & char) {
3639 msg_str := unsafe { msg.vstring () }
3740 eprintln ('Image description failed: ${msg_str} (cause: ${cause} )' )
3841}
3942
40- const cm_image_description_listener = C.wp_image_description_v 1_ listener{
41- failed: handle_cm_image_description_failed
42- ready: handle_cm_image_description_ready
43- ready 2 : fn (_ voidptr , _ voidptr , _ u32 , _ u32 ) {}
44- }
43+ const cm_image_description_listener = cm. wpimagedescriptionv1_listener (
44+ handle_cm_image_description_failed, // failed
45+ handle_cm_image_description_ready, // ready
46+ none // ready2
47+ )
4548
46- fn handle_cm_output_image_description_changed (mut state State, mut cm_output cm.WpColorManagementOutputV1 ) {
49+ fn handle_cm_output_image_description_changed (data voidptr , mut cm_output cm.WpColorManagementOutputV1 ) {
50+ mut state := unsafe { & State (data) }
4751 mut description := cm_output.get_image_description ()
4852 description.add_listener (& cm_image_description_listener, state)
4953}
5054
51- const cm_output_listener = C.wp_color_management_output_v 1_ listener{
52- image_description_changed: handle_cm_output_image_description_changed
53- }
55+ const cm_output_listener = cm. wpcolormanagementoutputv1_listener (
56+ handle_cm_output_image_description_changed // image_description_changed
57+ )
0 commit comments