This file is indexed.

/usr/share/mixxx/controllers/Behringer-BCD3000-scripts.js is in mixxx-data 2.0.0~dfsg-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
function BehringerBCD3000 () {}
BehringerBCD3000.debug = false;
BehringerBCD3000.escratch = [false, false];

//sensitivity setting
BehringerBCD3000.UseAcceleration = true;
BehringerBCD3000.JogSensivity = 0.5;

BehringerBCD3000.init = function (id) { // called when the device is opened & set up
	
	BehringerBCD3000.reset();

	// Ask BCD to send the current values of all rotary knobs and sliders
	midi.sendShortMsg(0xB0,0x64,0x7F);

	// Set jog acceleration
	if (BehringerBCD3000.UseAcceleration)
		midi.sendShortMsg(0xB0, 0x63, 0x7F);
	else
		midi.sendShortMsg(0xB0, 0x63, 0x0);
};

BehringerBCD3000.shutdown = function () {

	BehringerBCD3000.reset();

	// Reenable jog acceleration 
	if (!BehringerBCD3000.UseAcceleration)
		midi.sendShortMsg(0xB0, 0x63, 0x7F);
};

BehringerBCD3000.reset = function () {

	// Turn off all the lights
	for (i = 0; i <= 25; i++) {
		midi.sendShortMsg(0xB0, i, 0);
	}

};

BehringerBCD3000.getDeck = function (group) {
	if (group == "[Channel1]")
		return 0;
	else if (group == "[Channel2]")
		return 1;
	
	print("Invalid group : " + group);
	return -1; // error
}


//Scratch, cue search and pitch bend function
BehringerBCD3000.jogWheel = function (channel, control, value, status, group) {


	deck = BehringerBCD3000.getDeck(group);

	if (BehringerBCD3000.escratch[deck]) {

		scratchValue = (value - 0x40);
		engine.scratchTick(deck + 1, scratchValue);

		if (BehringerBCD3000.debug)
			print(group + " scratch tick : " + scratchValue);

	} else {

		jogValue = (value - 0x40) * BehringerBCD3000.JogSensivity;
		engine.setValue(group, "jog", jogValue);

		if (BehringerBCD3000.debug)
			print(group + " pitching jog adjust : " + jogValue);

	}
};

//Scratch button function 
BehringerBCD3000.scratchButton = function (channel, control, value, status, group) {

	if (value != 0x7F)
		return;

	deck = BehringerBCD3000.getDeck(group);

	BehringerBCD3000.escratch[deck] = !BehringerBCD3000.escratch[deck];

	if (BehringerBCD3000.debug)
		print(group + " scratch enabled :" + BehringerBCD3000.escratch[deck]);

	if (BehringerBCD3000.escratch[deck]) {
		// Turn on the scratch light
		if (!deck)
			midi.sendShortMsg(0xB0, 0x13, 0x7F);
		else
			midi.sendShortMsg(0xB0, 0x0B, 0x7F);

		// Enable scratching
		engine.scratchEnable(deck + 1, 100, 33+1/3, 1.0/8, (1.0/8)/32);

	} else {
		// Turn off the scratch light
		if (!deck)	
			midi.sendShortMsg(0xB0, 0x13, 0x00);
		else
			midi.sendShortMsg(0xB0, 0x0B, 0x00);

		// Disable scratching
		engine.scratchDisable(deck + 1);
	}
};

//Set loop function 
BehringerBCD3000.loop = function (channel, control, value, status, group) {
	if (value)
		action = "loop_in";
	else
		action = "loop_out";

	if (BehringerBCD3000.debug)
		print(group + " " + action);

	 engine.setValue(group, action, 1);
};