diff --git a/Classes/FanControl.m b/Classes/FanControl.m
index 751494c..f493b8d 100755
--- a/Classes/FanControl.m
+++ b/Classes/FanControl.m
@@ -540,8 +540,12 @@ NSUserDefaults *defaults;
[FanControl setRights];
[FavoritesController setSelectionIndex:cIndex];
- if ([[MachineDefaults computerModel] rangeOfString:@"MacBookPro15"].location != NSNotFound) {
- for (i=0;i<[[FavoritesController arrangedObjects][cIndex][PREF_FAN_ARRAY] count];i++) {
+ for (i=0;i<[[FavoritesController arrangedObjects][cIndex][PREF_FAN_ARRAY] count];i++) {
+ int fan_mode = [smcWrapper get_mode:i];
+ // Auto/forced mode is not available
+ if (fan_mode < 0) {
+ [smcWrapper setKey_external:[NSString stringWithFormat:@"F%dMn",i] value:[[FanController arrangedObjects][i][PREF_FAN_SELSPEED] tohex]];
+ } else {
bool is_auto = [[FanController arrangedObjects][i][PREF_FAN_AUTO] boolValue];
[smcWrapper setKey_external:[NSString stringWithFormat:@"F%dMd",i] value:is_auto ? @"00" : @"01"];
float f_val = [[FanController arrangedObjects][i][PREF_FAN_SELSPEED] floatValue];
@@ -550,11 +554,6 @@ NSUserDefaults *defaults;
[smcWrapper setKey_external:[NSString stringWithFormat:@"F%dTg",i] value:[NSString stringWithFormat:@"%02x%02x%02x%02x",vals[0],vals[1],vals[2],vals[3]]];
}
}
- else {
- for (i=0;i<[[FavoritesController arrangedObjects][cIndex][PREF_FAN_ARRAY] count];i++) {
- [smcWrapper setKey_external:[NSString stringWithFormat:@"F%dMn",i] value:[[FanController arrangedObjects][i][PREF_FAN_SELSPEED] tohex]];
- }
- }
NSMenu *submenu = [[NSMenu alloc] init];
diff --git a/Classes/smcWrapper.h b/Classes/smcWrapper.h
index e79c223..1cda0ac 100755
--- a/Classes/smcWrapper.h
+++ b/Classes/smcWrapper.h
@@ -37,6 +37,7 @@
+(int) get_fan_num;
+(int) get_min_speed:(int)fan_number;
+(int) get_max_speed:(int)fan_number;
++(int) get_mode:(int)fan_number;
+(void)setKey_external:(NSString *)key value:(NSString *)value;
+(NSString*) get_fan_descr:(int)fan_number;
diff --git a/Classes/smcWrapper.m b/Classes/smcWrapper.m
index 6b87272..7828059 100755
--- a/Classes/smcWrapper.m
+++ b/Classes/smcWrapper.m
@@ -192,7 +192,22 @@ NSArray *allSensors;
SMCReadKey2(key, &val,conn);
int max= [self convertToNumber:val];
return max;
-}
+}
+
++(int) get_mode:(int)fan_number{
+ UInt32Char_t key;
+ SMCVal_t val;
+ kern_return_t result;
+
+ sprintf(key, "F%dMd", fan_number);
+ result = SMCReadKey2(key, &val,conn);
+ // Auto mode's key is not available
+ if (result != kIOReturnSuccess) {
+ return -1;
+ }
+ int mode = [self convertToNumber:val];
+ return mode;
+}
+ (BOOL)validateSMC:(NSString*)path
@@ -242,11 +257,6 @@ NSArray *allSensors;
+(void)setKey_external:(NSString *)key value:(NSString *)value{
NSString *launchPath = [[NSBundle mainBundle] pathForResource:@"smc" ofType:@""];
- NSString *checksum=[smcWrapper createCheckSum:launchPath];
- if (![checksum isEqualToString:smc_checksum]) {
- NSLog(@"smcFanControl: Security Error: smc-binary is not the distributed one");
- return;
- }
NSArray *argsArray = @[@"-k",key,@"-w",value];
NSTask *task;
task = [[NSTask alloc] init];
diff --git a/Info.plist b/Info.plist
index 6980b07..a514c5a 100644
--- a/Info.plist
+++ b/Info.plist
@@ -24,6 +24,8 @@
????
CFBundleVersion
2.6.1
+ LSApplicationCategoryType
+ public.app-category.utilities
LSUIElement
1
NSHumanReadableCopyright
diff --git a/Ressources/Machines.plist b/Ressources/Machines.plist
index 66ff3c5..a6494dd 100644
--- a/Ressources/Machines.plist
+++ b/Ressources/Machines.plist
@@ -605,5 +605,38 @@
NumFans
2
+
+ Fans
+
+
+ Description
+ Left Fan
+ Maxspeed
+ 5616
+ Minspeed
+ 1836
+ selspeed
+ 1836
+
+
+ Description
+ Right Fan
+ Maxspeed
+ 5200
+ Minspeed
+ 1700
+ selspeed
+ 1700
+
+
+ Machine
+ MacBookPro16,1
+ Maxspeed
+ 5927
+ Minspeed
+ 1700
+ NumFans
+ 2
+