Просмотр исходного кода

Do not destroy our original data

Zachary Kotlarek 13 лет назад
Родитель
Сommit
58a3687a2f
1 измененных файлов с 12 добавлено и 6 удалено
  1. 12 6
      dmx/leds.pl

+ 12 - 6
dmx/leds.pl

@@ -29,7 +29,7 @@ my %COLOR_VAR      = (
 	'PLAY'      => 0.50,
 	'PLAY'      => 0.50,
 	'PLAY_HIGH' => 0.50,
 	'PLAY_HIGH' => 0.50,
 	'PAUSE'     => 0.65,
 	'PAUSE'     => 0.65,
-	'MOTION'    => 0.25,
+	'MOTION'    => 0.15,
 );
 );
 my %DIM            = (
 my %DIM            = (
 	'OFF'    => [
 	'OFF'    => [
@@ -249,15 +249,21 @@ while (1) {
 
 
 		# Send the dim command
 		# Send the dim command
 		my @values = ();
 		my @values = ();
-		foreach my $data (@data_set) {
+		foreach my $orig (@data_set) {
+
+			# Copy the dataset for local manipulation
+			my %data = ();
+			foreach my $key (keys(%{ $orig })) {
+				$data{$key} = $orig->{$key};
+			}
 
 
 			# Adjust the gamma curve (for channels where we have such data)
 			# Adjust the gamma curve (for channels where we have such data)
-			if ($CHANNEL_ADJ{$data->{'channel'}}) {
-				$data->{'value'} *= $CHANNEL_ADJ{$data->{'channel'}};
+			if ($CHANNEL_ADJ{$data{'channel'}}) {
+				$data{'value'} *= $CHANNEL_ADJ{$data{'channel'}};
 			}
 			}
 
 
-			DMX::dim($data);
-			push(@values, $data->{'channel'} . ' => ' . $data->{'value'} . ' @ ' . $data->{'time'});
+			DMX::dim(\%data);
+			push(@values, $data{'channel'} . ' => ' . $data{'value'} . ' @ ' . $data{'time'});
 		}
 		}
 
 
 		# Save the state and value to disk
 		# Save the state and value to disk