+ if (msg->payload.userState->has_recording &&
+ msg->payload.userState->recording != client->recording) {
+ client->recording = msg->payload.userState->recording;
+ char *message;
+ uint32_t *tree_id;
+
+ message = malloc(strlen(client->username) + 32);
+ if (!message)
+ Log_fatal("Out of memory");
+ tree_id = malloc(sizeof(uint32_t));
+ if (!tree_id)
+ Log_fatal("Out of memory");
+ *tree_id = 0;
+ sendmsg = Msg_create(TextMessage);
+ sendmsg->payload.textMessage->message = message;
+ sendmsg->payload.textMessage->n_tree_id = 1;
+ sendmsg->payload.textMessage->tree_id = tree_id;
+ if (client->recording)
+ sprintf(message, "User %s started recording", client->username);
+ else
+ sprintf(message, "User %s stopped recording", client->username);
+ Client_send_message_except_ver(NULL, sendmsg, ~0x010203);
+ sendmsg = NULL;
+ }