int stream_input_descriptor_imp::proc_get_stream_format_resp(void *& notification_id, const uint8_t * frame, size_t frame_len, int & status) { struct jdksavdecc_frame cmd_frame; struct jdksavdecc_aem_command_get_stream_format_response m_stream_format_response; ssize_t aem_cmd_get_stream_format_resp_returned; uint32_t msg_type; bool u_field; memcpy(cmd_frame.payload, frame, frame_len); memset(&m_stream_format_response, 0, sizeof(jdksavdecc_aem_command_get_stream_format_response)); aem_cmd_get_stream_format_resp_returned = jdksavdecc_aem_command_get_stream_format_response_read(&m_stream_format_response, frame, ETHER_HDR_SIZE, frame_len); if (aem_cmd_get_stream_format_resp_returned < 0) { log_imp_ref->post_log_msg(LOGGING_LEVEL_ERROR, "aem_cmd_get_stream_format_resp_read error\n"); assert(aem_cmd_get_stream_format_resp_returned >= 0); return -1; } store_cmd_resp_frame(AEM_CMD_GET_STREAM_FORMAT, frame, ETHER_HDR_SIZE, frame_len); msg_type = m_stream_format_response.aem_header.aecpdu_header.header.message_type; status = m_stream_format_response.aem_header.aecpdu_header.header.status; u_field = m_stream_format_response.aem_header.command_type >> 15 & 0x01; // u_field = the msb of the uint16_t command_type aecp_controller_state_machine_ref->update_inflight_for_rcvd_resp(notification_id, msg_type, u_field, &cmd_frame); return 0; }
int stream_input_descriptor_imp::proc_get_stream_format_resp(void *¬ification_id, const uint8_t *frame, uint16_t frame_len, int &status) { struct jdksavdecc_frame *cmd_frame; int aem_cmd_get_stream_format_resp_returned; uint32_t msg_type; bool u_field; cmd_frame = (struct jdksavdecc_frame *)malloc(sizeof(struct jdksavdecc_frame)); memcpy(cmd_frame->payload, frame, frame_len); aem_cmd_get_stream_format_resp_returned = jdksavdecc_aem_command_get_stream_format_response_read(&aem_cmd_get_stream_format_resp, frame, ETHER_HDR_SIZE, frame_len); if(aem_cmd_get_stream_format_resp_returned < 0) { log_imp_ref->post_log_msg(LOGGING_LEVEL_ERROR, "aem_cmd_get_stream_format_resp_read error\n"); assert(aem_cmd_get_stream_format_resp_returned >= 0); return -1; } msg_type = aem_cmd_get_stream_format_resp.aem_header.aecpdu_header.header.message_type; status = aem_cmd_get_stream_format_resp.aem_header.aecpdu_header.header.status; u_field = aem_cmd_get_stream_format_resp.command_type >> 15 & 0x01; // u_field = the msb of the uint16_t command_type aem_controller_state_machine_ref->update_inflight_for_rcvd_resp(notification_id, msg_type, u_field, cmd_frame); free(cmd_frame); return 0; }