rename 'version' field to 'model' v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 01 Jun 2025 13:14:18 +0200
branchv_0
changeset 194ed672cecc25
parent 18 358a601bfe81
child 20 a08e30243b95
rename 'version' field to 'model'
DJMFix.cpp
Message.cpp
Message.h
MessageCodec.cpp
     1.1 --- a/DJMFix.cpp	Sun May 11 00:30:03 2025 +0200
     1.2 +++ b/DJMFix.cpp	Sun Jun 01 13:14:18 2025 +0200
     1.3 @@ -63,14 +63,14 @@
     1.4  	Bytes hash1;
     1.5  	Bytes hash2;
     1.6  
     1.7 -	uint8_t version = 0x17;
     1.8 +	uint8_t model = 0x17;
     1.9  
    1.10  	void run() {
    1.11  		while (!stopped) {
    1.12  			logger->log(L::FINE, "DJMFixImpl::run()");
    1.13  			if (sendKeepAlive) send({
    1.14  					0xf0, 0x00, 0x40, 0x05,
    1.15 -					0x00, 0x00, 0x00, version,
    1.16 +					0x00, 0x00, 0x00, model,
    1.17  					0x00, 0x50, 0x01, 0xf7
    1.18  				});
    1.19  			std::this_thread::sleep_for(chro::milliseconds(keepAliveInterval));
    1.20 @@ -179,11 +179,11 @@
    1.21  		logger->log(L::FINE, "DJMFixImpl::setDeviceName(" + name + ")");
    1.22  
    1.23  		std::regex djm250pattern("Pioneer DJ Corporation DJM-250MK2.*");
    1.24 -		std::regex djm450pattern(".*450.*"); // TODO: correct pattern
    1.25 +		std::regex djm450pattern("Pioneer DJ Corporation DJM-450.*");
    1.26  
    1.27  		if (std::regex_match(name, djm250pattern)) {
    1.28  			// DJM-250MK2:
    1.29 -			version = 0x17;
    1.30 +			model = 0x17;
    1.31  			seed3 = {
    1.32  				0x59, 0xb5, 0x4b, 0xfe, 0xe4,
    1.33  				0x4a, 0x5a, 0xc8, 0xe4, 0xc5
    1.34 @@ -192,7 +192,7 @@
    1.35  		} else if (std::regex_match(name, djm450pattern)) {
    1.36  			// DJM-450:
    1.37  			// DJM-450 - not tested yet:
    1.38 -			version = 0x13;
    1.39 +			model = 0x13;
    1.40  			seed0 = {0x8c, 0x5b, 0x3f, 0x5d};
    1.41  			seed3 = {
    1.42  				0x08, 0xef, 0x3f, 0x2f, 0x1e,
    1.43 @@ -201,7 +201,7 @@
    1.44  			logger->log(L::FINE, "Switched to DJM-450 mode");
    1.45  		} else {
    1.46  			// DJM-V10:
    1.47 -			version = 0x34;
    1.48 +			model = 0x34;
    1.49  			seed3 = {
    1.50  				0x70, 0x01, 0x4d, 0x05, 0xbe,
    1.51  				0xf2, 0xe4, 0xde, 0x60, 0xd6
    1.52 @@ -236,7 +236,7 @@
    1.53  
    1.54  		if (msgIn.type == MessageType::D11_GREETING && !greetingReceived) {
    1.55  			logger->log(L::INFO, "Received greeting message.");
    1.56 -			Message msgOut(MessageType::H12_SEED1, version,{
    1.57 +			Message msgOut(MessageType::H12_SEED1, model,{
    1.58  				{FieldType::F01, name1},
    1.59  				{FieldType::F02, name2},
    1.60  				{FieldType::F03, denormalize(seed1)}
    1.61 @@ -265,7 +265,7 @@
    1.62  				logger->log(L::INFO, "Verification of hash1 was successful.");
    1.63  				hash2 = toBytes(fnv32hash(concat(seed2, xOR(seed0, seed2))));
    1.64  
    1.65 -				Message msgOut(MessageType::H14_HASH2, version,{
    1.66 +				Message msgOut(MessageType::H14_HASH2, model,{
    1.67  					{FieldType::F01, name1},
    1.68  					{FieldType::F02, name2},
    1.69  					{FieldType::F04, denormalize(hash2)},
    1.70 @@ -304,14 +304,14 @@
    1.71  
    1.72  		send({
    1.73  			0xf0, 0x00, 0x40, 0x05,
    1.74 -			0x00, 0x00, 0x00, version,
    1.75 +			0x00, 0x00, 0x00, model,
    1.76  			0x00, 0x50, 0x01, 0xf7
    1.77  		});
    1.78  
    1.79  		// TODO: check whether this second message is neccessary for V10:
    1.80  		send({
    1.81  			0xf0, 0x00, 0x40, 0x05,
    1.82 -			0x00, 0x00, 0x00, version,
    1.83 +			0x00, 0x00, 0x00, model,
    1.84  			0x00, 0x03, 0x01, 0xf7
    1.85  		});
    1.86  		logger->log(L::INFO, "Sent greeting message.");
     2.1 --- a/Message.cpp	Sun May 11 00:30:03 2025 +0200
     2.2 +++ b/Message.cpp	Sun Jun 01 13:14:18 2025 +0200
     2.3 @@ -23,8 +23,8 @@
     2.4  std::string Message::toString() const {
     2.5  	std::stringstream s;
     2.6  	s << "<message";
     2.7 -	s << " type='" << std::hex << ((int) type) << "'";
     2.8 -	s << " version='" << std::hex << ((int) version) << "'";
     2.9 +	s << " type='"  << std::hex << ((int) type)  << "'";
    2.10 +	s << " model='" << std::hex << ((int) model) << "'";
    2.11  	s << ">";
    2.12  	for (const auto& field : fields) {
    2.13  		s << "<field type='" << std::hex << ((int) field.type) << "'>";
     3.1 --- a/Message.h	Sun May 11 00:30:03 2025 +0200
     3.2 +++ b/Message.h	Sun Jun 01 13:14:18 2025 +0200
     3.3 @@ -71,12 +71,12 @@
     3.4  class Message {
     3.5  public:
     3.6  	MessageType type;
     3.7 -	/** 0x17 for DJM-250MK2 and 0x34 for V10 (maybe not a version) */
     3.8 -	uint8_t version;
     3.9 +	/** 0x17 for DJM-250MK2 and 0x34 for V10 */
    3.10 +	uint8_t model;
    3.11  	std::vector<Field> fields;
    3.12  
    3.13 -	Message(MessageType type, uint8_t version, std::vector<Field> fields) :
    3.14 -			type(type), version(version), fields(fields) {
    3.15 +	Message(MessageType type, uint8_t model, std::vector<Field> fields) :
    3.16 +			type(type), model(model), fields(fields) {
    3.17  	}
    3.18  
    3.19  	virtual ~Message() = default;
     4.1 --- a/MessageCodec.cpp	Sun May 11 00:30:03 2025 +0200
     4.2 +++ b/MessageCodec.cpp	Sun Jun 01 13:14:18 2025 +0200
     4.3 @@ -35,9 +35,9 @@
     4.4  			|| data[3] != 0x05)
     4.5  		throw ERR("wrong message Manufacturer MIDI SysEx ID");
     4.6  
     4.7 -	if (data.size() < 8) throw ERR("missing message version");
     4.8 +	if (data.size() < 8) throw ERR("missing model");
     4.9  
    4.10 -	uint8_t msgVersion = data[7];
    4.11 +	uint8_t model = data[7];
    4.12  
    4.13  	if (data.size() < 10) throw ERR("missing message type");
    4.14  
    4.15 @@ -77,7 +77,7 @@
    4.16  		start += fieldSize;
    4.17  	}
    4.18  
    4.19 -	return Message(msgType, msgVersion, fields);
    4.20 +	return Message(msgType, model, fields);
    4.21  }
    4.22  
    4.23  std::vector<uint8_t> MessageCodec::encode(Message msg) {
    4.24 @@ -95,7 +95,7 @@
    4.25  	data.push_back(0x00);
    4.26  	data.push_back(0x00);
    4.27  
    4.28 -	data.push_back(msg.version);
    4.29 +	data.push_back(msg.model);
    4.30  	data.push_back(0x00);
    4.31  	data.push_back((uint8_t) msg.type);
    4.32