-module(i3_client_codec). -moduledoc false. -export([decode_msg/2, encode_msg/2, decode_event_type/1]). -include("i3_client_codec.hrl"). decode_msg(Type0, Payload) -> case Type0 bsr 31 of 0 -> {reply, Type0, Payload}; 1 -> {event, Type0 band ?event_mask, Payload} end. encode_msg(Type, Payload0) -> Payload1 = encode_payload(Payload0), Size = iolist_size(Payload1), [?magic, <>, Payload1]. encode_payload(Payload) when is_binary(Payload) -> Payload; encode_payload(Payload) -> json:encode(Payload). decode_event_type(0) -> ~"workspace"; decode_event_type(1) -> ~"output"; decode_event_type(2) -> ~"mode"; decode_event_type(3) -> ~"window"; decode_event_type(4) -> ~"barconfig_update"; decode_event_type(5) -> ~"binding"; decode_event_type(6) -> ~"shutdown"; decode_event_type(7) -> ~"tick"; decode_event_type(14) -> ~"bar_state_update"; decode_event_type(21) -> ~"input".