Searched refs:ctrl_hdlr (Results 1 - 25 of 30) sorted by relevance

12

/linux-master/drivers/media/i2c/
H A Dov7740.c942 struct v4l2_ctrl_handler *ctrl_hdlr = &ov7740->ctrl_handler; local
945 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 12);
949 ctrl_hdlr->lock = &ov7740->mutex;
950 ov7740->auto_wb = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
953 ov7740->blue_balance = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
956 ov7740->red_balance = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
960 ov7740->brightness = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
963 ov7740->contrast = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
966 ov7740->saturation = v4l2_ctrl_new_std(ctrl_hdlr, &ov7740_ctrl_ops,
968 ov7740->hflip = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx219.c468 struct v4l2_ctrl_handler *ctrl_hdlr; local
473 ctrl_hdlr = &imx219->ctrl_handler;
474 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 12);
479 imx219->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops,
486 v4l2_ctrl_new_int_menu(ctrl_hdlr, &imx219_ctrl_ops,
495 imx219->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops,
500 imx219->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops,
508 imx219->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops,
514 v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
518 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov01a10.c521 struct v4l2_ctrl_handler *ctrl_hdlr; local
531 ctrl_hdlr = &ov01a10->ctrl_handler;
532 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 12);
539 ov01a10->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
547 ov01a10->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov01a10_ctrl_ops,
554 ov01a10->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov01a10_ctrl_ops,
559 ov01a10->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov01a10_ctrl_ops,
565 v4l2_ctrl_new_std(ctrl_hdlr, &ov01a10_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
568 v4l2_ctrl_new_std(ctrl_hdlr, &ov01a10_ctrl_ops, V4L2_CID_DIGITAL_GAIN,
573 ov01a10->exposure = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx208.c839 struct v4l2_ctrl_handler *ctrl_hdlr = &imx208->ctrl_handler; local
847 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
852 ctrl_hdlr->lock = &imx208->imx208_mx;
854 v4l2_ctrl_new_int_menu(ctrl_hdlr,
867 imx208->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx208_ctrl_ops,
875 v4l2_ctrl_new_std(ctrl_hdlr, &imx208_ctrl_ops, V4L2_CID_VBLANK,
881 v4l2_ctrl_new_std(ctrl_hdlr, &imx208_ctrl_ops, V4L2_CID_HBLANK,
891 v4l2_ctrl_new_std(ctrl_hdlr, &imx208_ctrl_ops, V4L2_CID_EXPOSURE,
895 imx208->hflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx208_ctrl_ops,
899 imx208->vflip = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov9282.c1290 struct v4l2_ctrl_handler *ctrl_hdlr = &ov9282->ctrl_handler; local
1297 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1302 ctrl_hdlr->lock = &ov9282->mutex;
1306 ov9282->exp_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1314 ov9282->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1324 ov9282->vblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1331 v4l2_ctrl_new_std(ctrl_hdlr, &ov9282_ctrl_ops, V4L2_CID_VFLIP,
1334 v4l2_ctrl_new_std(ctrl_hdlr, &ov9282_ctrl_ops, V4L2_CID_HFLIP,
1338 ov9282->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov9282_ctrl_ops,
1344 ov9282->link_freq_ctrl = v4l2_ctrl_new_int_menu(ctrl_hdlr,
[all...]
H A Dimx258.c1113 struct v4l2_ctrl_handler *ctrl_hdlr; local
1121 ctrl_hdlr = &imx258->ctrl_handler;
1122 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 13);
1127 ctrl_hdlr->lock = &imx258->mutex;
1128 imx258->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1139 hflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx258_ctrl_ops,
1144 vflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx258_ctrl_ops,
1152 imx258->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx258_ctrl_ops,
1161 ctrl_hdlr, &imx258_ctrl_ops, V4L2_CID_VBLANK,
1170 ctrl_hdlr,
[all...]
H A Dov5675.c781 struct v4l2_ctrl_handler *ctrl_hdlr; local
785 ctrl_hdlr = &ov5675->ctrl_handler;
786 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
790 ctrl_hdlr->lock = &ov5675->mutex;
791 ov5675->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov5675_ctrl_ops,
798 ov5675->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov5675_ctrl_ops,
803 ov5675->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov5675_ctrl_ops,
810 ov5675->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov5675_ctrl_ops,
816 v4l2_ctrl_new_std(ctrl_hdlr, &ov5675_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
819 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dog01a1b.c601 struct v4l2_ctrl_handler *ctrl_hdlr; local
605 ctrl_hdlr = &og01a1b->ctrl_handler;
606 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
610 ctrl_hdlr->lock = &og01a1b->mutex;
611 og01a1b->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
620 og01a1b->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &og01a1b_ctrl_ops,
627 og01a1b->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &og01a1b_ctrl_ops,
638 og01a1b->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &og01a1b_ctrl_ops,
644 v4l2_ctrl_new_std(ctrl_hdlr, &og01a1b_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
647 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov9734.c539 struct v4l2_ctrl_handler *ctrl_hdlr; local
545 ctrl_hdlr = &ov9734->ctrl_handler;
546 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
550 ctrl_hdlr->lock = &ov9734->mutex;
553 ov9734->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov9734_ctrl_ops,
561 ov9734->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov9734_ctrl_ops,
567 ov9734->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov9734_ctrl_ops,
572 ov9734->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov9734_ctrl_ops,
578 v4l2_ctrl_new_std(ctrl_hdlr, &ov9734_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
581 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx335.c1209 struct v4l2_ctrl_handler *ctrl_hdlr = &imx335->ctrl_handler; local
1214 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 7);
1219 ctrl_hdlr->lock = &imx335->mutex;
1223 imx335->exp_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1231 imx335->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1241 imx335->vblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1248 v4l2_ctrl_new_std_menu_items(ctrl_hdlr,
1255 imx335->pclk_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1261 imx335->link_freq_ctrl = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1270 imx335->hblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov13b10.c1286 struct v4l2_ctrl_handler *ctrl_hdlr; local
1297 ctrl_hdlr = &ov13b->ctrl_handler;
1298 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1303 ctrl_hdlr->lock = &ov13b->mutex;
1305 ov13b->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1317 ov13b->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov13b10_ctrl_ops,
1325 ov13b->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov13b10_ctrl_ops,
1333 ov13b->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov13b10_ctrl_ops,
1340 ov13b->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &ov13b10_ctrl_ops,
1346 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx412.c1083 struct v4l2_ctrl_handler *ctrl_hdlr = &imx412->ctrl_handler; local
1088 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 6);
1093 ctrl_hdlr->lock = &imx412->mutex;
1097 imx412->exp_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1105 imx412->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1115 imx412->vblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1123 imx412->pclk_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1129 imx412->link_freq_ctrl = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1139 imx412->hblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1148 if (ctrl_hdlr
[all...]
H A Dov08d10.c915 struct v4l2_ctrl_handler *ctrl_hdlr; local
925 ctrl_hdlr = &ov08d10->ctrl_handler;
926 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
930 ctrl_hdlr->lock = &ov08d10->mutex;
933 v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov08d10_ctrl_ops,
944 v4l2_ctrl_new_std(ctrl_hdlr, &ov08d10_ctrl_ops,
952 v4l2_ctrl_new_std(ctrl_hdlr, &ov08d10_ctrl_ops,
961 ov08d10->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov08d10_ctrl_ops,
967 v4l2_ctrl_new_std(ctrl_hdlr, &ov08d10_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
971 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dhi556.c833 struct v4l2_ctrl_handler *ctrl_hdlr; local
837 ctrl_hdlr = &hi556->ctrl_handler;
838 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
842 ctrl_hdlr->lock = &hi556->mutex;
843 hi556->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &hi556_ctrl_ops,
851 (ctrl_hdlr, &hi556_ctrl_ops,
856 hi556->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &hi556_ctrl_ops,
867 hi556->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &hi556_ctrl_ops,
873 v4l2_ctrl_new_std(ctrl_hdlr, &hi556_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
876 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov2740.c756 struct v4l2_ctrl_handler *ctrl_hdlr; local
763 ctrl_hdlr = &ov2740->ctrl_handler;
764 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
771 ov2740->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov2740_ctrl_ops,
779 ov2740->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov2740_ctrl_ops,
786 ov2740->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov2740_ctrl_ops,
791 ov2740->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov2740_ctrl_ops,
797 v4l2_ctrl_new_std(ctrl_hdlr, &ov2740_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
800 v4l2_ctrl_new_std(ctrl_hdlr, &ov2740_ctrl_ops, V4L2_CID_DIGITAL_GAIN,
804 ov2740->exposure = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx334.c1247 struct v4l2_ctrl_handler *ctrl_hdlr = &imx334->ctrl_handler; local
1252 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 7);
1257 ctrl_hdlr->lock = &imx334->mutex;
1261 imx334->exp_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1269 imx334->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1279 imx334->vblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1287 imx334->pclk_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1293 imx334->link_freq_ctrl = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1303 imx334->hblank_ctrl = v4l2_ctrl_new_std(ctrl_hdlr,
1312 v4l2_ctrl_new_std_menu_items(ctrl_hdlr,
[all...]
H A Dimx355.c1523 struct v4l2_ctrl_handler *ctrl_hdlr; local
1533 ctrl_hdlr = &imx355->ctrl_handler;
1534 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1538 ctrl_hdlr->lock = &imx355->mutex;
1540 imx355->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &imx355_ctrl_ops,
1550 imx355->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx355_ctrl_ops,
1558 imx355->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx355_ctrl_ops,
1564 imx355->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx355_ctrl_ops,
1572 imx355->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &imx355_ctrl_ops,
1578 imx355->hflip = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx214.c733 struct v4l2_ctrl_handler *ctrl_hdlr; local
740 ctrl_hdlr = &imx214->ctrls;
745 imx214->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, NULL,
750 imx214->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, NULL,
767 imx214->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
774 imx214->unit_size = v4l2_ctrl_new_std_compound(ctrl_hdlr,
779 v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &imx214_ctrl_ops, &props);
781 ret = ctrl_hdlr->error;
783 v4l2_ctrl_handler_free(ctrl_hdlr);
788 imx214->sd.ctrl_handler = ctrl_hdlr;
[all...]
H A Dov13858.c1557 struct v4l2_ctrl_handler *ctrl_hdlr; local
1567 ctrl_hdlr = &ov13858->ctrl_handler;
1568 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1573 ctrl_hdlr->lock = &ov13858->mutex;
1574 ov13858->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1586 ov13858->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov13858_ctrl_ops,
1595 ctrl_hdlr, &ov13858_ctrl_ops, V4L2_CID_VBLANK,
1602 ctrl_hdlr, &ov13858_ctrl_ops, V4L2_CID_HBLANK,
1609 ctrl_hdlr, &ov13858_ctrl_ops,
1614 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov08x40.c1940 struct v4l2_ctrl_handler *ctrl_hdlr; local
1951 ctrl_hdlr = &ov08x->ctrl_handler;
1952 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1957 ctrl_hdlr->lock = &ov08x->mutex;
1959 ov08x->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
1971 ov08x->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov08x40_ctrl_ops,
1979 ov08x->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov08x40_ctrl_ops,
1987 ov08x->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov08x40_ctrl_ops,
1994 ov08x->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &ov08x40_ctrl_ops,
2000 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dhi846.c1414 struct v4l2_ctrl_handler *ctrl_hdlr; local
1420 ctrl_hdlr = &hi846->ctrl_handler;
1421 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
1425 ctrl_hdlr->lock = &hi846->mutex;
1428 v4l2_ctrl_new_int_menu(ctrl_hdlr, &hi846_ctrl_ops,
1436 v4l2_ctrl_new_std(ctrl_hdlr, &hi846_ctrl_ops,
1440 hi846->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &hi846_ctrl_ops,
1451 hi846->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &hi846_ctrl_ops,
1457 v4l2_ctrl_new_std(ctrl_hdlr, &hi846_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
1460 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dimx319.c2235 struct v4l2_ctrl_handler *ctrl_hdlr; local
2245 ctrl_hdlr = &imx319->ctrl_handler;
2246 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
2250 ctrl_hdlr->lock = &imx319->mutex;
2252 imx319->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &imx319_ctrl_ops,
2262 imx319->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx319_ctrl_ops,
2270 imx319->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx319_ctrl_ops,
2276 imx319->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx319_ctrl_ops,
2284 imx319->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &imx319_ctrl_ops,
2290 imx319->hflip = v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov8856.c1890 struct v4l2_ctrl_handler *ctrl_hdlr; local
1894 ctrl_hdlr = &ov8856->ctrl_handler;
1895 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8);
1899 ctrl_hdlr->lock = &ov8856->mutex;
1900 ov8856->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov8856_ctrl_ops,
1909 ov8856->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov8856_ctrl_ops,
1917 ov8856->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov8856_ctrl_ops,
1928 ov8856->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov8856_ctrl_ops,
1934 v4l2_ctrl_new_std(ctrl_hdlr, &ov8856_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
1937 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
H A Dov5670.c2104 struct v4l2_ctrl_handler *ctrl_hdlr; local
2113 ctrl_hdlr = &ov5670->ctrl_handler;
2114 ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10);
2118 ctrl_hdlr->lock = &ov5670->mutex;
2119 ov5670->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr,
2130 ov5670->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov5670_ctrl_ops,
2140 ov5670->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &ov5670_ctrl_ops,
2145 ctrl_hdlr, &ov5670_ctrl_ops, V4L2_CID_HBLANK,
2153 v4l2_ctrl_new_std(ctrl_hdlr, &ov5670_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
2158 v4l2_ctrl_new_std(ctrl_hdlr,
[all...]
/linux-master/drivers/staging/media/imx/
H A Dimx-media-csc-scaler.c61 struct v4l2_ctrl_handler ctrl_hdlr; member in struct:ipu_csc_scaler_ctx
620 ctrl_hdlr);
711 struct v4l2_ctrl_handler *hdlr = &ctx->ctrl_hdlr;
780 ctx->fh.ctrl_handler = &ctx->ctrl_hdlr;
806 v4l2_ctrl_handler_free(&ctx->ctrl_hdlr);

Completed in 271 milliseconds

12