DJMFix.cpp
branchv_0
changeset 19 4ed672cecc25
parent 18 358a601bfe81
     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.");