Current section
Files
Jump to
Current section
Files
src/i3_client_codec.erl
-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, <<Size:32/native, Type:32/native>>, 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">>.