Changeset 842
- Timestamp:
- 05/26/2009 08:34:59 AM (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/CoreData/SapphireFrappliance/Players/SapphireVideoPlayerController.m
r713 r842 30 30 #define A52_DOMIAN (CFStringRef)@"com.cod3r.a52codec" 31 31 32 #define SOUND_STATE_SOUND_ENABLED 1 33 #define SOUND_STATE_SOUND_PASSTHROUGH 2 34 #define SOUND_STATE_PLAYER_TORNDOWN 4 32 #define DTS_PASSTHROUGH_KEY CFSTR("attemptDTSPassthrough") 33 #define PERIAN_DOMAIN CFSTR("org.perian.Perian") 34 35 #define SOUND_STATE_SOUND_ENABLED 1 36 #define SOUND_STATE_AC3_PASSTHROUGH_WAS_ENABLED 2 37 #define SOUND_STATE_PLAYER_TORNDOWN 4 38 #define SOUND_STATE_DTS_PASSTHROUGH_WAS_ENABLED 8 35 39 36 40 @interface BRVideoPlayerController (compat) … … 178 182 SapphireSettings *settings = [SapphireSettings sharedSettings]; 179 183 BOOL useAC3Passthrough = NO; 184 BOOL useDTSPassthrough = NO; 180 185 181 186 if([settings useAC3Passthrough]) … … 186 191 if((type == 'ac-3' || type == 0x6D732000) && setupAudioOutput((int)sampleRate)) 187 192 useAC3Passthrough = YES; 193 else if((type == 'DTS ') && setupAudioOutput((int)sampleRate)) 194 useDTSPassthrough = YES; 188 195 } 189 196 190 197 Boolean temp; 191 BOOL passthrough = CFPreferencesGetAppBooleanValue(PASSTHROUGH_KEY, A52_DOMIAN, &temp); 198 BOOL AC3PassthroughEnabled = CFPreferencesGetAppBooleanValue(PASSTHROUGH_KEY, A52_DOMIAN, &temp); 199 BOOL DTSPassthroughEnabled = CFPreferencesGetAppBooleanValue(DTS_PASSTHROUGH_KEY, PERIAN_DOMAIN, &temp); 192 200 BOOL soundsWereEnabled = NO; 193 if(useAC3Passthrough )201 if(useAC3Passthrough || useDTSPassthrough) 194 202 { 195 203 RUIPreferences *prefs = [SapphireFrontRowCompat sharedFrontRowPreferences]; … … 197 205 if(soundsWereEnabled) 198 206 [prefs setBool:NO forKey:@"PlayFrontRowSounds"]; 207 } 208 if(useAC3Passthrough) 199 209 CFPreferencesSetAppValue(PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:1], A52_DOMIAN); 200 }201 210 else 202 211 CFPreferencesSetAppValue(PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:0], A52_DOMIAN); 203 soundState = (passthrough ? SOUND_STATE_SOUND_PASSTHROUGH : 0) | (soundsWereEnabled ? SOUND_STATE_SOUND_ENABLED : 0); 212 if(useDTSPassthrough) 213 CFPreferencesSetAppValue(DTS_PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:1], PERIAN_DOMAIN); 214 else 215 CFPreferencesSetAppValue(DTS_PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:0], PERIAN_DOMAIN); 216 soundState = (AC3PassthroughEnabled ? SOUND_STATE_AC3_PASSTHROUGH_WAS_ENABLED : 0) | 217 (soundsWereEnabled ? SOUND_STATE_SOUND_ENABLED : 0) | 218 (DTSPassthroughEnabled ? SOUND_STATE_DTS_PASSTHROUGH_WAS_ENABLED : 0); 204 219 CFPreferencesAppSynchronize(A52_DOMIAN); 220 CFPreferencesAppSynchronize(PERIAN_DOMAIN); 205 221 } 206 222 … … 218 234 soundState |= SOUND_STATE_PLAYER_TORNDOWN; 219 235 //Turn off the AC3 Passthrough hack 220 CFPreferencesSetAppValue(PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:((soundState & SOUND_STATE_ SOUND_PASSTHROUGH)? 1 : 0)], A52_DOMIAN);236 CFPreferencesSetAppValue(PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:((soundState & SOUND_STATE_AC3_PASSTHROUGH_WAS_ENABLED)? 1 : 0)], A52_DOMIAN); 221 237 CFPreferencesAppSynchronize(A52_DOMIAN); 238 CFPreferencesSetAppValue(DTS_PASSTHROUGH_KEY, (CFNumberRef)[NSNumber numberWithInt:((soundState & SOUND_STATE_DTS_PASSTHROUGH_WAS_ENABLED)? 1 : 0)], PERIAN_DOMAIN); 239 CFPreferencesAppSynchronize(PERIAN_DOMAIN); 222 240 if(soundState & SOUND_STATE_SOUND_ENABLED) 223 241 [[SapphireFrontRowCompat sharedFrontRowPreferences] setBool:YES forKey:@"PlayFrontRowSounds"];
