Updated everything else to ARC, and plugged a release cycle.
parent
80aa1b7e25
commit
0e3644177e
|
@ -1,11 +1,12 @@
|
|||
#import "AppController.h"
|
||||
#import "FileTreeController.h"
|
||||
#import "FileTreeViewController.h"
|
||||
#import "FileTreeOutlineView.h"
|
||||
#import "PlaybackController.h"
|
||||
#import "PlaylistController.h"
|
||||
#import "PlaylistView.h"
|
||||
#import "PlaylistEntry.h"
|
||||
#import <NDHotKey/NDHotKeyEvent.h>
|
||||
#import "AppleRemote.h"
|
||||
#import "PlaylistLoader.h"
|
||||
#import "OpenURLPanel.h"
|
||||
#import "SpotlightWindowController.h"
|
||||
|
@ -23,16 +24,16 @@
|
|||
+ (void)initialize
|
||||
{
|
||||
// Register transformers
|
||||
NSValueTransformer *stringToURLTransformer = [[[StringToURLTransformer alloc] init]autorelease];
|
||||
NSValueTransformer *stringToURLTransformer = [[StringToURLTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:stringToURLTransformer
|
||||
forName:@"StringToURLTransformer"];
|
||||
|
||||
NSValueTransformer *fontSizetoLineHeightTransformer =
|
||||
[[[FontSizetoLineHeightTransformer alloc] init]autorelease];
|
||||
[[FontSizetoLineHeightTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:fontSizetoLineHeightTransformer
|
||||
forName:@"FontSizetoLineHeightTransformer"];
|
||||
|
||||
NSValueTransformer *miniModeMenuTitleTransformer = [[[MiniModeMenuTitleTransformer alloc] init] autorelease];
|
||||
NSValueTransformer *miniModeMenuTitleTransformer = [[MiniModeMenuTitleTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:miniModeMenuTitleTransformer
|
||||
forName:@"MiniModeMenuTitleTransformer"];
|
||||
}
|
||||
|
@ -45,133 +46,12 @@
|
|||
{
|
||||
[self initDefaults];
|
||||
|
||||
remote = [[AppleRemote alloc] init];
|
||||
[remote setDelegate: self];
|
||||
|
||||
queue = [[NSOperationQueue alloc]init];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[queue release];
|
||||
[expandedNodes release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
// Listen to the remote in exclusive mode, only when Cog is the active application
|
||||
- (void)applicationDidBecomeActive:(NSNotification *)notification
|
||||
{
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"remoteEnabled"] && [[NSUserDefaults standardUserDefaults] boolForKey:@"remoteOnlyOnActive"]) {
|
||||
[remote startListening: self];
|
||||
}
|
||||
}
|
||||
- (void)applicationDidResignActive:(NSNotification *)notification
|
||||
{
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"remoteEnabled"] && [[NSUserDefaults standardUserDefaults] boolForKey:@"remoteOnlyOnActive"]) {
|
||||
[remote stopListening: self];
|
||||
}
|
||||
}
|
||||
|
||||
/* Helper method for the remote control interface in order to trigger forward/backward and volume
|
||||
increase/decrease as long as the user holds the left/right, plus/minus button */
|
||||
- (void) executeHoldActionForRemoteButton: (NSNumber*) buttonIdentifierNumber
|
||||
{
|
||||
static int incrementalSearch = 1;
|
||||
|
||||
if (remoteButtonHeld)
|
||||
{
|
||||
switch([buttonIdentifierNumber intValue])
|
||||
{
|
||||
case kRemoteButtonRight_Hold:
|
||||
[playbackController seekForward:incrementalSearch];
|
||||
break;
|
||||
case kRemoteButtonLeft_Hold:
|
||||
[playbackController seekBackward:incrementalSearch];
|
||||
break;
|
||||
case kRemoteButtonVolume_Plus_Hold:
|
||||
//Volume Up
|
||||
[playbackController volumeUp:self];
|
||||
break;
|
||||
case kRemoteButtonVolume_Minus_Hold:
|
||||
//Volume Down
|
||||
[playbackController volumeDown:self];
|
||||
break;
|
||||
}
|
||||
if (remoteButtonHeld)
|
||||
{
|
||||
/* there should perhaps be a max amount that incrementalSearch can
|
||||
be, so as to not start skipping ahead unreasonable amounts, even
|
||||
in very long files. */
|
||||
if ((incrementalSearch % 3) == 0)
|
||||
incrementalSearch += incrementalSearch/3;
|
||||
else
|
||||
incrementalSearch++;
|
||||
|
||||
/* trigger event */
|
||||
[self performSelector:@selector(executeHoldActionForRemoteButton:)
|
||||
withObject:buttonIdentifierNumber
|
||||
afterDelay:0.25];
|
||||
}
|
||||
}
|
||||
else
|
||||
// if we're not holding the search button, reset the incremental search
|
||||
// variable, making it ready for another search
|
||||
incrementalSearch = 1;
|
||||
}
|
||||
|
||||
/* Apple Remote callback */
|
||||
- (void) appleRemoteButton: (AppleRemoteEventIdentifier)buttonIdentifier
|
||||
pressedDown: (BOOL) pressedDown
|
||||
clickCount: (unsigned int) count
|
||||
{
|
||||
switch( buttonIdentifier )
|
||||
{
|
||||
case k2009RemoteButtonPlay:
|
||||
case kRemoteButtonPlay:
|
||||
[self clickPlay];
|
||||
|
||||
break;
|
||||
case kRemoteButtonVolume_Plus:
|
||||
[playbackController volumeUp:self];
|
||||
break;
|
||||
case kRemoteButtonVolume_Minus:
|
||||
[playbackController volumeDown:self];
|
||||
break;
|
||||
case kRemoteButtonRight:
|
||||
[self clickNext];
|
||||
break;
|
||||
case kRemoteButtonLeft:
|
||||
[self clickPrev];
|
||||
break;
|
||||
case kRemoteButtonRight_Hold:
|
||||
case kRemoteButtonLeft_Hold:
|
||||
case kRemoteButtonVolume_Plus_Hold:
|
||||
case kRemoteButtonVolume_Minus_Hold:
|
||||
/* simulate an event as long as the user holds the button */
|
||||
remoteButtonHeld = pressedDown;
|
||||
if( pressedDown )
|
||||
{
|
||||
NSNumber* buttonIdentifierNumber = [NSNumber numberWithInt: buttonIdentifier];
|
||||
[self performSelector:@selector(executeHoldActionForRemoteButton:)
|
||||
withObject:buttonIdentifierNumber];
|
||||
}
|
||||
break;
|
||||
case kRemoteButtonMenu:
|
||||
break;
|
||||
case k2009RemoteButtonFullscreen:
|
||||
[mainWindow toggleFullScreen:nil];
|
||||
break;
|
||||
default:
|
||||
/* Add here whatever you want other buttons to do */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (IBAction)openFiles:(id)sender
|
||||
{
|
||||
NSOpenPanel *p;
|
||||
|
@ -256,12 +136,7 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
|
||||
[self registerHotKeys];
|
||||
|
||||
[spotlightWindowController init];
|
||||
|
||||
//Init Remote
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"remoteEnabled"] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"remoteOnlyOnActive"]) {
|
||||
[remote startListening:self];
|
||||
}
|
||||
(void) [spotlightWindowController init];
|
||||
|
||||
[[playlistController undoManager] disableUndoRegistration];
|
||||
NSString *basePath = [@"~/Library/Application Support/Cog/" stringByExpandingTildeInPath];
|
||||
|
@ -479,9 +354,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
[userDefaultsValuesDict setObject:[NSNumber numberWithInt:8] forKey:@"hotKeySpamKeyCode"];
|
||||
[userDefaultsValuesDict setObject:[NSNumber numberWithInt:(NSControlKeyMask|NSCommandKeyMask)] forKey:@"hotKeySpamModifiers"];
|
||||
|
||||
[userDefaultsValuesDict setObject:[NSNumber numberWithBool:YES] forKey:@"remoteEnabled"];
|
||||
[userDefaultsValuesDict setObject:[NSNumber numberWithBool:YES] forKey:@"remoteOnlyOnActive"];
|
||||
|
||||
NSString * feedURLdefault = @"https://www.kode54.net/cog/mercury.xml";
|
||||
NSString * feedURLbroken = @"https://kode54.net/cog/stable.xml";
|
||||
NSString * feedURLbroken2 = @"https://kode54.net/cog/mercury.xml";
|
||||
|
@ -518,9 +390,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.hotKeyNextKeyCode" options:0 context:nil];
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
|
||||
forKeyPath:@"values.hotKeySpamKeyCode" options:0 context:nil];
|
||||
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.remoteEnabled" options:0 context:nil];
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.remoteOnlyOnActive" options:0 context:nil];
|
||||
}
|
||||
|
||||
- (void) observeValueForKeyPath:(NSString *)keyPath
|
||||
|
@ -540,25 +409,10 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
else if ([keyPath isEqualToString:@"values.hotKeySpamKeyCode"]) {
|
||||
[self registerHotKeys];
|
||||
}
|
||||
else if ([keyPath isEqualToString:@"values.remoteEnabled"] || [keyPath isEqualToString:@"values.remoteOnlyOnActive"]) {
|
||||
if([[NSUserDefaults standardUserDefaults] boolForKey:@"remoteEnabled"]) {
|
||||
BOOL onlyOnActive = [[NSUserDefaults standardUserDefaults] boolForKey:@"remoteOnlyOnActive"];
|
||||
if (!onlyOnActive || [NSApp isActive]) {
|
||||
[remote startListening: self];
|
||||
}
|
||||
if (onlyOnActive && ![NSApp isActive]) { //Setting a preference without being active? *shrugs*
|
||||
[remote stopListening: self];
|
||||
}
|
||||
}
|
||||
else {
|
||||
[remote stopListening: self];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)registerHotKeys
|
||||
{
|
||||
[playHotKey release];
|
||||
if ([[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"hotKeyPlayKeyCode"] intValue]) {
|
||||
playHotKey = [[NDHotKeyEvent alloc]
|
||||
initWithKeyCode: [[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"hotKeyPlayKeyCode"] intValue]
|
||||
|
@ -568,7 +422,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
[playHotKey setEnabled:YES];
|
||||
}
|
||||
|
||||
[prevHotKey release];
|
||||
if ([[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"hotKeyPreviousKeyCode"] intValue]) {
|
||||
prevHotKey = [[NDHotKeyEvent alloc]
|
||||
initWithKeyCode: [[NSUserDefaults standardUserDefaults] integerForKey:@"hotKeyPreviousKeyCode"]
|
||||
|
@ -578,7 +431,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
[prevHotKey setEnabled:YES];
|
||||
}
|
||||
|
||||
[nextHotKey release];
|
||||
if ([[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"hotKeyNextKeyCode"] intValue]) {
|
||||
nextHotKey = [[NDHotKeyEvent alloc]
|
||||
initWithKeyCode: [[NSUserDefaults standardUserDefaults] integerForKey:@"hotKeyNextKeyCode"]
|
||||
|
@ -588,7 +440,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
[nextHotKey setEnabled:YES];
|
||||
}
|
||||
|
||||
[spamHotKey release];
|
||||
if ([[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"hotKeySpamKeyCode"] intValue]) {
|
||||
spamHotKey = [[NDHotKeyEvent alloc]
|
||||
initWithKeyCode: [[NSUserDefaults standardUserDefaults] integerForKey:@"hotKeySpamKeyCode"]
|
||||
|
@ -605,7 +456,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
if (nil == nowPlaying)
|
||||
{
|
||||
nowPlaying = [[NowPlayingBarController alloc] init];
|
||||
[nowPlaying retain];
|
||||
|
||||
NSView *contentView = [mainWindow contentView];
|
||||
NSRect contentRect = [contentView frame];
|
||||
|
@ -638,7 +488,6 @@ increase/decrease as long as the user holds the left/right, plus/minus button */
|
|||
// [mainView setFrameOrigin:NSMakePoint(0.0, 0.0)];
|
||||
|
||||
[[nowPlaying view] removeFromSuperview];
|
||||
[nowPlaying release];
|
||||
nowPlaying = nil;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#import "DockIconController.h"
|
||||
#import <CogAudio/Status.h>
|
||||
#import "PlaybackController.h"
|
||||
|
||||
@implementation DockIconController
|
||||
|
||||
|
@ -15,8 +16,8 @@ static NSString *DockIconPlaybackStatusObservationContext = @"DockIconPlaybackSt
|
|||
|
||||
- (void)startObserving
|
||||
{
|
||||
[playbackController addObserver:self forKeyPath:@"playbackStatus" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial) context:DockIconPlaybackStatusObservationContext];
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.colorfulDockIcons" options:0 context:DockIconPlaybackStatusObservationContext];
|
||||
[playbackController addObserver:self forKeyPath:@"playbackStatus" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial) context:(__bridge void * _Nullable)(DockIconPlaybackStatusObservationContext)];
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.colorfulDockIcons" options:0 context:(__bridge void * _Nullable)(DockIconPlaybackStatusObservationContext)];
|
||||
}
|
||||
|
||||
- (void)stopObserving
|
||||
|
@ -69,12 +70,11 @@ static NSString *getBadgeName(NSString *baseName, BOOL colorfulIcons)
|
|||
|
||||
[newDockImage unlockFocus];
|
||||
[NSApp setApplicationIconImage:newDockImage];
|
||||
[newDockImage release];
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
||||
{
|
||||
if ([DockIconPlaybackStatusObservationContext isEqual:context])
|
||||
if ([DockIconPlaybackStatusObservationContext isEqual:(__bridge id)(context)])
|
||||
{
|
||||
if ([keyPath isEqualToString:@"playbackStatus"])
|
||||
{
|
||||
|
@ -102,9 +102,6 @@ static NSString *getBadgeName(NSString *baseName, BOOL colorfulIcons)
|
|||
- (void)dealloc
|
||||
{
|
||||
[self stopObserving];
|
||||
[dockImage release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -66,15 +66,6 @@ typedef enum
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[queue release];
|
||||
|
||||
[entry release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSDictionary *)fillNotificationDictionary:(PlaylistEntry *)pe status:(TrackStatus)status
|
||||
{
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
||||
|
@ -105,8 +96,7 @@ typedef enum
|
|||
- (void)performPlaybackDidBeginActions:(PlaylistEntry *)pe
|
||||
{
|
||||
if (NO == [pe error]) {
|
||||
[entry release];
|
||||
entry = [pe retain];
|
||||
entry = pe;
|
||||
|
||||
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:TrackNotification object:nil userInfo:[self fillNotificationDictionary:pe status:TrackPlaying] deliverImmediately:YES];
|
||||
|
||||
|
@ -180,7 +170,6 @@ typedef enum
|
|||
- (void)performPlaybackDidStopActions
|
||||
{
|
||||
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:TrackNotification object:nil userInfo:[self fillNotificationDictionary:entry status:TrackStopped] deliverImmediately:YES];
|
||||
[entry release];
|
||||
entry = nil;
|
||||
if([[NSUserDefaults standardUserDefaults] boolForKey:@"enableAudioScrobbler"]) {
|
||||
[scrobbler stop];
|
||||
|
@ -220,28 +209,24 @@ typedef enum
|
|||
{
|
||||
NSOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(performPlaybackDidBeginActions:) object:[notification object]];
|
||||
[queue addOperation:op];
|
||||
[op release];
|
||||
}
|
||||
|
||||
- (void)playbackDidPause:(NSNotification *)notification
|
||||
{
|
||||
NSOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(performPlaybackDidPauseActions) object:nil];
|
||||
[queue addOperation:op];
|
||||
[op release];
|
||||
}
|
||||
|
||||
- (void)playbackDidResume:(NSNotification *)notification
|
||||
{
|
||||
NSOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(performPlaybackDidResumeActions) object:nil];
|
||||
[queue addOperation:op];
|
||||
[op release];
|
||||
}
|
||||
|
||||
- (void)playbackDidStop:(NSNotification *)notification
|
||||
{
|
||||
NSOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(performPlaybackDidStopActions) object:nil];
|
||||
[queue addOperation:op];
|
||||
[op release];
|
||||
}
|
||||
|
||||
- (NSDictionary *) registrationDictionaryForGrowl
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
|
||||
}
|
||||
|
||||
+ (NSDictionary *)putMetadataInURL:(NSURL *)url;
|
||||
+ (int)putMetadataInURL:(NSURL *)url;
|
||||
|
||||
@end
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#import "PluginController.h"
|
||||
|
||||
@implementation AudioMetadataWriter
|
||||
+ (NSDictionary *)putMetadataInURL:(NSURL *)url
|
||||
+ (int)putMetadataInURL:(NSURL *)url
|
||||
{
|
||||
return [[PluginController sharedPluginController] putMetadataInURL:url];
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
if (self)
|
||||
{
|
||||
output = NULL;
|
||||
bufferChain = NULL;
|
||||
bufferChain = nil;
|
||||
outputLaunched = NO;
|
||||
endOfInputReached = NO;
|
||||
|
||||
|
@ -55,10 +55,6 @@
|
|||
|
||||
- (void)play:(NSURL *)url withUserInfo:(id)userInfo withRGInfo:(NSDictionary *)rgi startPaused:(BOOL)paused
|
||||
{
|
||||
if (output)
|
||||
{
|
||||
[output release];
|
||||
}
|
||||
output = [[OutputNode alloc] initWithController:self previous:nil];
|
||||
[output setup];
|
||||
[output setVolume: volume];
|
||||
|
@ -73,7 +69,7 @@
|
|||
{
|
||||
[bufferChain setShouldContinue:NO];
|
||||
|
||||
[bufferChain release];
|
||||
bufferChain = nil;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,7 +78,6 @@
|
|||
|
||||
while (![bufferChain open:url withOutputFormat:[output format] withRGInfo:rgi])
|
||||
{
|
||||
[bufferChain release];
|
||||
bufferChain = nil;
|
||||
|
||||
[self requestNextStream: userInfo];
|
||||
|
@ -173,16 +168,10 @@
|
|||
|
||||
- (void)setNextStream:(NSURL *)url withUserInfo:(id)userInfo withRGInfo:(NSDictionary *)rgi
|
||||
{
|
||||
[url retain];
|
||||
[nextStream release];
|
||||
nextStream = url;
|
||||
|
||||
[userInfo retain];
|
||||
[nextStreamUserInfo release];
|
||||
nextStreamUserInfo = userInfo;
|
||||
|
||||
[rgi retain];
|
||||
[nextStreamRGInfo release];
|
||||
nextStreamRGInfo = rgi;
|
||||
}
|
||||
|
||||
|
@ -261,10 +250,8 @@
|
|||
BufferChain *newChain = nil;
|
||||
|
||||
nextStreamUserInfo = [sender userInfo];
|
||||
[nextStreamUserInfo retain]; //Retained because when setNextStream is called, it will be released!!!
|
||||
|
||||
nextStreamRGInfo = [sender rgInfo];
|
||||
[nextStreamRGInfo retain];
|
||||
|
||||
[self requestNextStream: nextStreamUserInfo];
|
||||
|
||||
|
@ -293,29 +280,31 @@
|
|||
[self addChainToQueue:newChain];
|
||||
DLog(@"TRACK SET!!! %@", newChain);
|
||||
//Keep on-playin
|
||||
[newChain release];
|
||||
newChain = nil;
|
||||
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
|
||||
lastChain = nil;
|
||||
|
||||
while (![newChain open:nextStream withOutputFormat:[output format] withRGInfo:nextStreamRGInfo])
|
||||
{
|
||||
if (nextStream == nil)
|
||||
{
|
||||
[newChain release];
|
||||
newChain = nil;
|
||||
return YES;
|
||||
}
|
||||
|
||||
[newChain release];
|
||||
newChain = nil;
|
||||
[self requestNextStream: nextStreamUserInfo];
|
||||
|
||||
newChain = [[BufferChain alloc] initWithController:self];
|
||||
}
|
||||
|
||||
[self addChainToQueue:newChain];
|
||||
|
||||
[newChain release];
|
||||
|
||||
newChain = nil;
|
||||
|
||||
// I'm stupid and can't hold too much stuff in my head all at once, so writing it here.
|
||||
//
|
||||
|
@ -347,17 +336,13 @@
|
|||
//End of playlist
|
||||
[self stop];
|
||||
|
||||
[bufferChain release];
|
||||
bufferChain = nil;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
BufferChain *oldChain = bufferChain;
|
||||
bufferChain = nil;
|
||||
bufferChain = [chainQueue objectAtIndex:0];
|
||||
[oldChain release];
|
||||
[bufferChain retain];
|
||||
|
||||
[chainQueue removeObjectAtIndex:0];
|
||||
DLog(@"New!!! %@ %@", bufferChain, [[bufferChain inputNode] decoder]);
|
||||
|
@ -370,30 +355,29 @@
|
|||
- (void)sendDelegateMethod:(SEL)selector withObject:(id)obj waitUntilDone:(BOOL)wait
|
||||
{
|
||||
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[delegate methodSignatureForSelector:selector]];
|
||||
[invocation setTarget:delegate];
|
||||
[invocation setSelector:selector];
|
||||
[invocation setArgument:&self atIndex:2]; //Indexes start at 2, the first being self, the second being command.
|
||||
[invocation setArgument:&self atIndex:2];
|
||||
[invocation setArgument:&obj atIndex:3];
|
||||
[invocation retainArguments];
|
||||
|
||||
[self performSelectorOnMainThread:@selector(sendDelegateMethodMainThread:) withObject:invocation waitUntilDone:wait];
|
||||
[invocation performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:wait];
|
||||
}
|
||||
|
||||
- (void)sendDelegateMethod:(SEL)selector withObject:(id)obj withObject:(id)obj2 waitUntilDone:(BOOL)wait
|
||||
{
|
||||
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[delegate methodSignatureForSelector:selector]];
|
||||
[invocation setSelector:selector];
|
||||
[invocation setArgument:&self atIndex:2]; //Indexes start at 2, the first being self, the second being command.
|
||||
[invocation setTarget:delegate];
|
||||
[invocation setSelector:selector];
|
||||
[invocation setArgument:&self atIndex:2];
|
||||
[invocation setArgument:&obj atIndex:3];
|
||||
[invocation setArgument:&obj2 atIndex:4];
|
||||
[invocation retainArguments];
|
||||
|
||||
[self performSelectorOnMainThread:@selector(sendDelegateMethodMainThread:) withObject:invocation waitUntilDone:wait];
|
||||
[invocation performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:wait];
|
||||
}
|
||||
|
||||
|
||||
- (void)sendDelegateMethodMainThread:(id)invocation
|
||||
{
|
||||
[invocation invokeWithTarget:delegate];
|
||||
}
|
||||
|
||||
- (void)setPlaybackStatus:(int)status waitUntilDone:(BOOL)wait
|
||||
{
|
||||
[self sendDelegateMethod:@selector(audioPlayer:didChangeStatus:userInfo:) withObject:[NSNumber numberWithInt:status] withObject:[bufferChain userInfo] waitUntilDone:wait];
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
|
||||
- (void)buildChain
|
||||
{
|
||||
[inputNode release];
|
||||
[converterNode release];
|
||||
|
||||
inputNode = nil;
|
||||
converterNode = nil;
|
||||
|
||||
inputNode = [[InputNode alloc] initWithController:self previous:nil];
|
||||
converterNode = [[ConverterNode alloc] initWithController:self previous:inputNode];
|
||||
|
||||
|
@ -100,8 +100,6 @@
|
|||
|
||||
- (void)setUserInfo:(id)i
|
||||
{
|
||||
[i retain];
|
||||
[userInfo release];
|
||||
userInfo = i;
|
||||
}
|
||||
|
||||
|
@ -112,8 +110,6 @@
|
|||
|
||||
- (void)setRGInfo:(NSDictionary *)rgi
|
||||
{
|
||||
[rgi retain];
|
||||
[rgInfo release];
|
||||
rgInfo = rgi;
|
||||
[converterNode setRGInfo:rgi];
|
||||
}
|
||||
|
@ -130,16 +126,7 @@
|
|||
[[inputNode semaphore] signal];
|
||||
[[inputNode exitAtTheEndOfTheStream] wait]; // wait for decoder to be closed (see InputNode's -(void)process )
|
||||
|
||||
[rgInfo release];
|
||||
[userInfo release];
|
||||
[streamURL release];
|
||||
|
||||
[inputNode release];
|
||||
[converterNode release];
|
||||
|
||||
DLog(@"Bufferchain dealloc");
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)seek:(double)time
|
||||
|
@ -188,9 +175,6 @@
|
|||
|
||||
- (void)setStreamURL:(NSURL *)url
|
||||
{
|
||||
[url retain];
|
||||
[streamURL release];
|
||||
|
||||
streamURL = url;
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ static OSStatus ACInputProc(AudioConverterRef inAudioConverter,
|
|||
AudioStreamPacketDescription** outDataPacketDescription,
|
||||
void* inUserData)
|
||||
{
|
||||
ConverterNode *converter = (ConverterNode *)inUserData;
|
||||
ConverterNode *converter = (__bridge ConverterNode *)inUserData;
|
||||
OSStatus err = noErr;
|
||||
int amountToWrite;
|
||||
int amountRead;
|
||||
|
@ -149,7 +149,7 @@ static OSStatus ACFloatProc(AudioConverterRef inAudioConverter,
|
|||
AudioStreamPacketDescription** outDataPacketDescription,
|
||||
void* inUserData)
|
||||
{
|
||||
ConverterNode *converter = (ConverterNode *)inUserData;
|
||||
ConverterNode *converter = (__bridge ConverterNode *)inUserData;
|
||||
OSStatus err = noErr;
|
||||
int amountToWrite;
|
||||
|
||||
|
@ -204,7 +204,7 @@ static OSStatus ACFloatProc(AudioConverterRef inAudioConverter,
|
|||
ioData.mNumberBuffers = 1;
|
||||
|
||||
tryagain:
|
||||
err = AudioConverterFillComplexBuffer(converterFloat, ACInputProc, self, &ioNumberFrames, &ioData, NULL);
|
||||
err = AudioConverterFillComplexBuffer(converterFloat, ACInputProc, (__bridge void * _Nullable)(self), &ioNumberFrames, &ioData, NULL);
|
||||
amountRead += ioData.mBuffers[0].mDataByteSize;
|
||||
if (err == 100)
|
||||
{
|
||||
|
@ -239,7 +239,7 @@ static OSStatus ACFloatProc(AudioConverterRef inAudioConverter,
|
|||
amountRead = 0;
|
||||
|
||||
tryagain2:
|
||||
err = AudioConverterFillComplexBuffer(converter, ACFloatProc, self, &ioNumberFrames, &ioData, NULL);
|
||||
err = AudioConverterFillComplexBuffer(converter, ACFloatProc, (__bridge void *)(self), &ioNumberFrames, &ioData, NULL);
|
||||
amountRead += ioData.mBuffers[0].mDataByteSize;
|
||||
if (err == 100)
|
||||
{
|
||||
|
@ -387,7 +387,6 @@ static float db_to_scale(float db)
|
|||
[[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.volumeScaling"];
|
||||
|
||||
[self cleanUp];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
|
@ -407,15 +406,12 @@ static float db_to_scale(float db)
|
|||
- (void)setRGInfo:(NSDictionary *)rgi
|
||||
{
|
||||
DLog(@"Setting ReplayGain info");
|
||||
[rgInfo release];
|
||||
[rgi retain];
|
||||
rgInfo = rgi;
|
||||
[self refreshVolumeScaling];
|
||||
}
|
||||
|
||||
- (void)cleanUp
|
||||
{
|
||||
[rgInfo release];
|
||||
rgInfo = nil;
|
||||
if (converterFloat)
|
||||
{
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
- (BOOL)openWithSource:(id<CogSource>)source
|
||||
{
|
||||
decoder = [AudioDecoder audioDecoderForSource:source];
|
||||
[decoder retain];
|
||||
|
||||
if (decoder == nil)
|
||||
return NO;
|
||||
|
@ -62,7 +61,6 @@
|
|||
{
|
||||
DLog(@"Opening with old decoder: %@", d);
|
||||
decoder = d;
|
||||
[decoder retain];
|
||||
|
||||
NSDictionary *properties = [decoder properties];
|
||||
int bitsPerSample = [[properties objectForKey:@"bitsPerSample"] intValue];
|
||||
|
@ -218,11 +216,6 @@
|
|||
DLog(@"Input Node dealloc");
|
||||
[decoder removeObserver:self forKeyPath:@"properties"];
|
||||
[decoder removeObserver:self forKeyPath:@"metadata"];
|
||||
|
||||
[decoder release];
|
||||
|
||||
[exitAtTheEndOfTheStream release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSDictionary *) properties
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
NSLock *readLock;
|
||||
NSLock *writeLock;
|
||||
|
||||
id previousNode;
|
||||
id controller;
|
||||
id __weak previousNode;
|
||||
id __weak controller;
|
||||
|
||||
BOOL shouldReset;
|
||||
|
||||
|
|
|
@ -85,15 +85,9 @@
|
|||
|
||||
- (void)threadEntry:(id)arg
|
||||
{
|
||||
[self retain];
|
||||
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
[self process];
|
||||
|
||||
[pool release];
|
||||
|
||||
[self release];
|
||||
@autoreleasepool {
|
||||
[self process];
|
||||
}
|
||||
}
|
||||
|
||||
- (int)readData:(void *)ptr amount:(int)amount
|
||||
|
@ -158,8 +152,6 @@
|
|||
|
||||
- (void)setPreviousNode:(id)p
|
||||
{
|
||||
[p retain];
|
||||
[previousNode release];
|
||||
previousNode = p;
|
||||
}
|
||||
|
||||
|
@ -228,16 +220,4 @@
|
|||
}
|
||||
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[previousNode release];
|
||||
|
||||
[buffer release];
|
||||
[semaphore release];
|
||||
[readLock release];
|
||||
[writeLock release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -53,27 +53,26 @@
|
|||
|
||||
- (int)readData:(void *)ptr amount:(int)amount
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
int n;
|
||||
[self setPreviousNode:[[controller bufferChain] finalNode]];
|
||||
@autoreleasepool {
|
||||
int n;
|
||||
[self setPreviousNode:[[controller bufferChain] finalNode]];
|
||||
|
||||
n = [super readData:ptr amount:amount];
|
||||
amountPlayed += n;
|
||||
n = [super readData:ptr amount:amount];
|
||||
amountPlayed += n;
|
||||
|
||||
if (endOfStream == YES)
|
||||
{
|
||||
amountPlayed = 0;
|
||||
[controller endOfInputPlayed]; //Updates shouldContinue appropriately?
|
||||
}
|
||||
if (endOfStream == YES)
|
||||
{
|
||||
amountPlayed = 0;
|
||||
[controller endOfInputPlayed]; //Updates shouldContinue appropriately?
|
||||
}
|
||||
|
||||
/* if (n == 0) {
|
||||
DLog(@"Output Buffer dry!");
|
||||
}
|
||||
*/
|
||||
[pool release];
|
||||
|
||||
return n;
|
||||
return n;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -97,13 +96,6 @@
|
|||
[output stop];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[output release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)setVolume:(double) v
|
||||
{
|
||||
[output setVolume:v];
|
||||
|
|
|
@ -362,7 +362,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
TargetAttributes = {
|
||||
8DC2EF4F0486A6940098B216 = {
|
||||
DevelopmentTeam = N6E749HJ2X;
|
||||
|
@ -445,6 +445,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@executable_path/../Frameworks";
|
||||
OTHER_LDFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cogaudio;
|
||||
PRODUCT_NAME = CogAudio;
|
||||
PROVISIONING_PROFILE = "";
|
||||
SDKROOT = macosx;
|
||||
|
@ -470,6 +471,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@executable_path/../Frameworks";
|
||||
OTHER_LDFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cogaudio;
|
||||
PRODUCT_NAME = CogAudio;
|
||||
PROVISIONING_PROFILE = "";
|
||||
SDKROOT = macosx;
|
||||
|
@ -482,6 +484,8 @@
|
|||
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
@ -496,6 +500,7 @@
|
|||
1DEB91B308733DA50010E9CD /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
|
|
|
@ -59,12 +59,6 @@ NSArray * sortClassesByPriority(NSArray * theClasses)
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[cachedObservers release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSDictionary *)properties
|
||||
{
|
||||
if ( theDecoder != nil ) return [theDecoder properties];
|
||||
|
@ -84,14 +78,13 @@ NSArray * sortClassesByPriority(NSArray * theClasses)
|
|||
Class decoder = NSClassFromString(classString);
|
||||
theDecoder = [[decoder alloc] init];
|
||||
for (NSDictionary *obsItem in cachedObservers) {
|
||||
[theDecoder addObserver:[obsItem objectForKey:@"observer"] forKeyPath:[obsItem objectForKey:@"keyPath"] options:[obsItem objectForKey:@"options"] context:[obsItem objectForKey:@"context"]];
|
||||
[theDecoder addObserver:[obsItem objectForKey:@"observer"] forKeyPath:[obsItem objectForKey:@"keyPath"] options:[obsItem objectForKey:@"options"] context:(__bridge void *)([obsItem objectForKey:@"context"])];
|
||||
}
|
||||
if ([theDecoder open:source])
|
||||
return YES;
|
||||
for (NSDictionary *obsItem in cachedObservers) {
|
||||
[theDecoder removeObserver:[obsItem objectForKey:@"observer"] forKeyPath:[obsItem objectForKey:@"keyPath"]];
|
||||
}
|
||||
[theDecoder release];
|
||||
[source seek:0 whence:SEEK_SET];
|
||||
}
|
||||
theDecoder = nil;
|
||||
|
@ -111,7 +104,6 @@ NSArray * sortClassesByPriority(NSArray * theClasses)
|
|||
for (NSDictionary *obsItem in cachedObservers) {
|
||||
[theDecoder removeObserver:[obsItem objectForKey:@"observer"] forKeyPath:[obsItem objectForKey:@"keyPath"]];
|
||||
}
|
||||
[theDecoder release];
|
||||
theDecoder = nil;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.cogx.cogaudio</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//
|
||||
//
|
||||
// OutputCoreAudio.m
|
||||
// Cog
|
||||
//
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData)
|
||||
{
|
||||
OutputCoreAudio *output = (OutputCoreAudio *)inRefCon;
|
||||
OutputCoreAudio *output = (__bridge OutputCoreAudio *)inRefCon;
|
||||
OSStatus err = noErr;
|
||||
void *readPointer = ioData->mBuffers[0].mData;
|
||||
|
||||
|
@ -286,7 +286,7 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc
|
|||
|
||||
//setup render callbacks
|
||||
renderCallback.inputProc = Sound_Renderer;
|
||||
renderCallback.inputProcRefCon = self;
|
||||
renderCallback.inputProcRefCon = (__bridge void * _Nullable)(self);
|
||||
|
||||
AudioUnitSetProperty(outputUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &renderCallback, sizeof(AURenderCallbackStruct));
|
||||
|
||||
|
@ -326,8 +326,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc
|
|||
[self stop];
|
||||
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.outputDevice"];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)pause
|
||||
|
|
|
@ -35,16 +35,16 @@ static PluginController *sharedPluginController = nil;
|
|||
- (id)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.sources = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.containers = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.sources = [[NSMutableDictionary alloc] init];
|
||||
self.containers = [[NSMutableDictionary alloc] init];
|
||||
|
||||
self.metadataReaders = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.metadataReaders = [[NSMutableDictionary alloc] init];
|
||||
|
||||
self.propertiesReadersByExtension = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.propertiesReadersByMimeType = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.propertiesReadersByExtension = [[NSMutableDictionary alloc] init];
|
||||
self.propertiesReadersByMimeType = [[NSMutableDictionary alloc] init];
|
||||
|
||||
self.decodersByExtension = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.decodersByMimeType = [[[NSMutableDictionary alloc] init] autorelease];
|
||||
self.decodersByExtension = [[NSMutableDictionary alloc] init];
|
||||
self.decodersByMimeType = [[NSMutableDictionary alloc] init];
|
||||
|
||||
[self setup];
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ static PluginController *sharedPluginController = nil;
|
|||
NSMutableArray *containerSet;
|
||||
if (![containers objectForKey:ext])
|
||||
{
|
||||
containerSet = [[[NSMutableArray alloc] init] autorelease];
|
||||
containerSet = [[NSMutableArray alloc] init];
|
||||
[containers setObject:containerSet forKey:ext];
|
||||
}
|
||||
else
|
||||
|
@ -143,7 +143,7 @@ static PluginController *sharedPluginController = nil;
|
|||
NSMutableArray *decoders;
|
||||
if (![decodersByExtension objectForKey:ext])
|
||||
{
|
||||
decoders = [[[NSMutableArray alloc] init] autorelease];
|
||||
decoders = [[NSMutableArray alloc] init];
|
||||
[decodersByExtension setObject:decoders forKey:ext];
|
||||
}
|
||||
else
|
||||
|
@ -170,7 +170,7 @@ static PluginController *sharedPluginController = nil;
|
|||
NSMutableArray *readers;
|
||||
if (![metadataReaders objectForKey:ext])
|
||||
{
|
||||
readers = [[[NSMutableArray alloc] init] autorelease];
|
||||
readers = [[NSMutableArray alloc] init];
|
||||
[metadataReaders setObject:readers forKey:ext];
|
||||
}
|
||||
else
|
||||
|
@ -190,7 +190,7 @@ static PluginController *sharedPluginController = nil;
|
|||
NSMutableArray *readers;
|
||||
if (![propertiesReadersByExtension objectForKey:ext])
|
||||
{
|
||||
readers = [[[NSMutableArray alloc] init] autorelease];
|
||||
readers = [[NSMutableArray alloc] init];
|
||||
[propertiesReadersByExtension setObject:readers forKey:ext];
|
||||
}
|
||||
else
|
||||
|
@ -237,7 +237,7 @@ static PluginController *sharedPluginController = nil;
|
|||
|
||||
Class source = NSClassFromString([sources objectForKey:scheme]);
|
||||
|
||||
return [[[source alloc] init] autorelease];
|
||||
return [[source alloc] init];
|
||||
}
|
||||
|
||||
- (NSArray *) urlsForContainerURL:(NSURL *)url
|
||||
|
@ -270,7 +270,7 @@ static PluginController *sharedPluginController = nil;
|
|||
NSString *classString;
|
||||
if (decoders) {
|
||||
if ( [decoders count] > 1 ) {
|
||||
return [[[CogDecoderMulti alloc] initWithDecoders:decoders] autorelease];
|
||||
return [[CogDecoderMulti alloc] initWithDecoders:decoders];
|
||||
}
|
||||
else {
|
||||
classString = [decoders objectAtIndex:0];
|
||||
|
@ -282,7 +282,7 @@ static PluginController *sharedPluginController = nil;
|
|||
|
||||
Class decoder = NSClassFromString(classString);
|
||||
|
||||
return [[[decoder alloc] init] autorelease];
|
||||
return [[decoder alloc] init];
|
||||
}
|
||||
|
||||
- (NSDictionary *)metadataForURL:(NSURL *)url
|
||||
|
|
|
@ -40,8 +40,8 @@ static void deallocateVirtualBuffer(void *buffer, UInt32 bufferLength);
|
|||
if (buffer) {
|
||||
bufferEnd = buffer + bufferLength;
|
||||
} else {
|
||||
[self release];
|
||||
return nil;
|
||||
self = nil;
|
||||
return nil;
|
||||
}
|
||||
|
||||
readPointer = NULL;
|
||||
|
@ -54,8 +54,6 @@ static void deallocateVirtualBuffer(void *buffer, UInt32 bufferLength);
|
|||
{
|
||||
if (buffer)
|
||||
deallocateVirtualBuffer(buffer, bufferLength);
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)empty
|
||||
|
|
|
@ -43,7 +43,7 @@ escapeForLastFM(NSString *string)
|
|||
options:NSLiteralSearch
|
||||
range:NSMakeRange(0, [result length])];
|
||||
|
||||
return (nil == result ? @"" : [result autorelease]);
|
||||
return (nil == result ? @"" : result);
|
||||
}
|
||||
|
||||
@interface AudioScrobbler (Private)
|
||||
|
@ -101,7 +101,7 @@ escapeForLastFM(NSString *string)
|
|||
if(KERN_SUCCESS != result) {
|
||||
ALog(@"Couldn't create semaphore (%s).", mach_error_type(result));
|
||||
|
||||
[self release];
|
||||
self = nil;
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
@ -115,11 +115,9 @@ escapeForLastFM(NSString *string)
|
|||
if([self keepProcessingAudioScrobblerCommands] || NO == [self audioScrobblerThreadCompleted])
|
||||
[self shutdown];
|
||||
|
||||
[_queue release], _queue = nil;
|
||||
_queue = nil;
|
||||
|
||||
semaphore_destroy(mach_task_self(), _semaphore), _semaphore = 0;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) start:(PlaylistEntry *)pe
|
||||
|
@ -212,76 +210,71 @@ escapeForLastFM(NSString *string)
|
|||
|
||||
- (void) processAudioScrobblerCommands:(id)unused
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
AudioScrobblerClient *client = [[AudioScrobblerClient alloc] init];
|
||||
mach_timespec_t timeout = { 5, 0 };
|
||||
NSString *command = nil;
|
||||
NSString *response = nil;
|
||||
in_port_t port = 33367;
|
||||
@autoreleasepool {
|
||||
AudioScrobblerClient *client = [[AudioScrobblerClient alloc] init];
|
||||
mach_timespec_t timeout = { 5, 0 };
|
||||
NSString *command = nil;
|
||||
NSString *response = nil;
|
||||
in_port_t port = 33367;
|
||||
|
||||
while([self keepProcessingAudioScrobblerCommands]) {
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
while([self keepProcessingAudioScrobblerCommands]) {
|
||||
@autoreleasepool {
|
||||
|
||||
// Get the first command to be sent
|
||||
@synchronized([self queue]) {
|
||||
if ([[self queue] count]) {
|
||||
command = [[[self queue] objectAtIndex:0] retain];
|
||||
[[self queue] removeObjectAtIndex:0];
|
||||
}
|
||||
}
|
||||
// Get the first command to be sent
|
||||
@synchronized([self queue]) {
|
||||
if ([[self queue] count]) {
|
||||
command = [[self queue] objectAtIndex:0];
|
||||
[[self queue] removeObjectAtIndex:0];
|
||||
}
|
||||
}
|
||||
|
||||
if(nil != command) {
|
||||
@try {
|
||||
if([client connectToHost:@"localhost" port:port]) {
|
||||
port = [client connectedPort];
|
||||
[client send:command];
|
||||
[command release];
|
||||
command = nil;
|
||||
if(nil != command) {
|
||||
@try {
|
||||
if([client connectToHost:@"localhost" port:port]) {
|
||||
port = [client connectedPort];
|
||||
[client send:command];
|
||||
command = nil;
|
||||
|
||||
response = [client receive];
|
||||
if(2 > [response length] || NSOrderedSame != [response compare:@"OK" options:NSLiteralSearch range:NSMakeRange(0,2)])
|
||||
ALog(@"AudioScrobbler error: %@", response);
|
||||
response = [client receive];
|
||||
if(2 > [response length] || NSOrderedSame != [response compare:@"OK" options:NSLiteralSearch range:NSMakeRange(0,2)])
|
||||
ALog(@"AudioScrobbler error: %@", response);
|
||||
|
||||
[client shutdown];
|
||||
}
|
||||
}
|
||||
[client shutdown];
|
||||
}
|
||||
}
|
||||
|
||||
@catch(NSException *exception) {
|
||||
[command release];
|
||||
command = nil;
|
||||
@catch(NSException *exception) {
|
||||
command = nil;
|
||||
|
||||
[client shutdown];
|
||||
// ALog(@"Exception: %@",exception);
|
||||
[pool release];
|
||||
continue;
|
||||
}
|
||||
}
|
||||
[client shutdown];
|
||||
// ALog(@"Exception: %@",exception);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
semaphore_timedwait([self semaphore], timeout);
|
||||
[pool release];
|
||||
}
|
||||
semaphore_timedwait([self semaphore], timeout);
|
||||
}
|
||||
}
|
||||
|
||||
// Send a final stop command to cleanup
|
||||
@try {
|
||||
if([client connectToHost:@"localhost" port:port]) {
|
||||
[client send:[NSString stringWithFormat:@"STOP c=%@\n", [self pluginID]]];
|
||||
// Send a final stop command to cleanup
|
||||
@try {
|
||||
if([client connectToHost:@"localhost" port:port]) {
|
||||
[client send:[NSString stringWithFormat:@"STOP c=%@\n", [self pluginID]]];
|
||||
|
||||
response = [client receive];
|
||||
if(2 > [response length] || NSOrderedSame != [response compare:@"OK" options:NSLiteralSearch range:NSMakeRange(0,2)])
|
||||
ALog(@"AudioScrobbler error: %@", response);
|
||||
response = [client receive];
|
||||
if(2 > [response length] || NSOrderedSame != [response compare:@"OK" options:NSLiteralSearch range:NSMakeRange(0,2)])
|
||||
ALog(@"AudioScrobbler error: %@", response);
|
||||
|
||||
[client shutdown];
|
||||
}
|
||||
}
|
||||
[client shutdown];
|
||||
}
|
||||
}
|
||||
|
||||
@catch(NSException *exception) {
|
||||
[client shutdown];
|
||||
}
|
||||
@catch(NSException *exception) {
|
||||
[client shutdown];
|
||||
}
|
||||
|
||||
[client release];
|
||||
[self setAudioScrobblerThreadCompleted:YES];
|
||||
|
||||
[pool release];
|
||||
[self setAudioScrobblerThreadCompleted:YES];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -141,7 +141,7 @@ addressForHost(NSString *hostname)
|
|||
}
|
||||
|
||||
buffer[bytesRead] = '\0';
|
||||
result = [[[NSString alloc] initWithUTF8String:buffer] autorelease];
|
||||
result = [[NSString alloc] initWithUTF8String:buffer];
|
||||
|
||||
} while(keepGoing);
|
||||
|
||||
|
@ -170,7 +170,6 @@ addressForHost(NSString *hostname)
|
|||
if(0 != bytesRead) {
|
||||
NSString *received = [[NSString alloc] initWithBytes:buffer length:bytesRead encoding:NSUTF8StringEncoding];
|
||||
ALog(@"Received unexpected bytes during shutdown: %@", received);
|
||||
[received release];
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
1770429E0B8BC53600B86321 /* PlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1770429A0B8BC53600B86321 /* PlaybackController.m */; };
|
||||
1778D3B00F645A190037E7A0 /* missingArt.png in Resources */ = {isa = PBXBuildFile; fileRef = 1778D3AF0F645A190037E7A0 /* missingArt.png */; };
|
||||
1778D3CA0F645BF00037E7A0 /* MissingAlbumArtTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1778D3C90F645BF00037E7A0 /* MissingAlbumArtTransformer.m */; };
|
||||
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */; };
|
||||
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF870B8BC2A70000BC8C /* ImageTextCell.m */; };
|
||||
177EC0270B8BC2CF0000BC8C /* TrackingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EC01B0B8BC2CF0000BC8C /* TrackingCell.m */; };
|
||||
177EC0290B8BC2CF0000BC8C /* TrackingSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EC01D0B8BC2CF0000BC8C /* TrackingSlider.m */; };
|
||||
|
@ -798,7 +797,6 @@
|
|||
1778D3AF0F645A190037E7A0 /* missingArt.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = missingArt.png; path = Images/missingArt.png; sourceTree = "<group>"; };
|
||||
1778D3C80F645BF00037E7A0 /* MissingAlbumArtTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MissingAlbumArtTransformer.h; path = InfoInspector/MissingAlbumArtTransformer.h; sourceTree = "<group>"; };
|
||||
1778D3C90F645BF00037E7A0 /* MissingAlbumArtTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MissingAlbumArtTransformer.m; path = InfoInspector/MissingAlbumArtTransformer.m; sourceTree = "<group>"; };
|
||||
177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = AppleRemote.m; sourceTree = "<group>"; };
|
||||
177EBF860B8BC2A70000BC8C /* ImageTextCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ImageTextCell.h; sourceTree = "<group>"; };
|
||||
177EBF870B8BC2A70000BC8C /* ImageTextCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ImageTextCell.m; sourceTree = "<group>"; };
|
||||
177EC01A0B8BC2CF0000BC8C /* TrackingCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TrackingCell.h; sourceTree = "<group>"; };
|
||||
|
@ -913,7 +911,6 @@
|
|||
17E0D6190F520F9F005B6FED /* VolumeButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VolumeButton.m; path = Window/VolumeButton.m; sourceTree = "<group>"; };
|
||||
17E0D61A0F520F9F005B6FED /* VolumeSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VolumeSlider.h; path = Window/VolumeSlider.h; sourceTree = "<group>"; };
|
||||
17E0D61B0F520F9F005B6FED /* VolumeSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VolumeSlider.m; path = Window/VolumeSlider.m; sourceTree = "<group>"; };
|
||||
17E0D6370F522324005B6FED /* AppleRemote.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppleRemote.h; sourceTree = "<group>"; };
|
||||
17F3BB830CBC565100864489 /* CueSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CueSheet.xcodeproj; path = Plugins/CueSheet/CueSheet.xcodeproj; sourceTree = "<group>"; };
|
||||
17F5612A0C3BD4DC0019975C /* CogAudio.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CogAudio.xcodeproj; path = Audio/CogAudio.xcodeproj; sourceTree = "<group>"; };
|
||||
17F562260C3BD8FB0019975C /* General.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = General.xcodeproj; path = Preferences/General/General.xcodeproj; sourceTree = "<group>"; };
|
||||
|
@ -942,6 +939,15 @@
|
|||
56DB08540D67185300453B6A /* NSArray+CogSort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSArray+CogSort.m"; path = "Spotlight/NSArray+CogSort.m"; sourceTree = "<group>"; };
|
||||
8314D63B1A354DFE00EEE8E6 /* sidplay.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = sidplay.xcodeproj; path = Plugins/sidplay/sidplay.xcodeproj; sourceTree = "<group>"; };
|
||||
832C1252180BD1E2005507C1 /* Cog.help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Cog.help; sourceTree = "<group>"; };
|
||||
833F681E1CDBCAA700AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
833F681F1CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
833F68201CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/InfoInspector.xib; sourceTree = "<group>"; };
|
||||
833F68211CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
833F68221CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/OpenURLPanel.xib; sourceTree = "<group>"; };
|
||||
833F68231CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/FileTree.xib; sourceTree = "<group>"; };
|
||||
833F68241CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/SpotlightPanel.xib; sourceTree = "<group>"; };
|
||||
833F68251CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = es; path = es.lproj/Credits.html; sourceTree = "<group>"; };
|
||||
833F68261CDBCAA900AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/Feedback.xib; sourceTree = "<group>"; };
|
||||
8355D6B4180612F300D05687 /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = "<group>"; };
|
||||
8355D6B5180612F300D05687 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = "<group>"; };
|
||||
8355D6B7180613FB00D05687 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
|
@ -1157,22 +1163,12 @@
|
|||
83790D4A1809F4980073CF51 /* SPMediaKeyTap */,
|
||||
173A439D0F3FD25500676A7B /* ToolTip */,
|
||||
178BAB920CD4E1B700B33D47 /* GCWindowMenu */,
|
||||
177EBF7D0B8BC2A70000BC8C /* AppleRemote */,
|
||||
177EBF850B8BC2A70000BC8C /* ImageTextCell */,
|
||||
179790DD0C087AB7001D6996 /* OpenURLPanel */,
|
||||
);
|
||||
path = ThirdParty;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
177EBF7D0B8BC2A70000BC8C /* AppleRemote */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
17E0D6370F522324005B6FED /* AppleRemote.h */,
|
||||
177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */,
|
||||
);
|
||||
path = AppleRemote;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
177EBF850B8BC2A70000BC8C /* ImageTextCell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -1954,6 +1950,7 @@
|
|||
Hebrew,
|
||||
Greek,
|
||||
zh_CN,
|
||||
es,
|
||||
);
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA /* Cog */;
|
||||
projectDirPath = "";
|
||||
|
@ -2473,7 +2470,6 @@
|
|||
8E75757509F31D5A0080F1EE /* Shuffle.m in Sources */,
|
||||
8E1296DB0A2BA9CE00443124 /* PlaylistHeaderView.m in Sources */,
|
||||
8E07AB790AAC930B00A4B32F /* PreferencesController.m in Sources */,
|
||||
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */,
|
||||
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */,
|
||||
177EC0270B8BC2CF0000BC8C /* TrackingCell.m in Sources */,
|
||||
177EC0290B8BC2CF0000BC8C /* TrackingSlider.m in Sources */,
|
||||
|
@ -2706,6 +2702,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C165DFE840E0CC02AAC07 /* English */,
|
||||
833F681E1CDBCAA700AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2714,6 +2711,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
17211A7D0D68B7C500911CA9 /* English */,
|
||||
833F68231CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = FileTree.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2722,6 +2720,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
17342A990D5FD20B00E8D854 /* English */,
|
||||
833F68211CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = MainMenu.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2730,6 +2729,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
17342ABE0D5FD36400E8D854 /* English */,
|
||||
833F68221CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = OpenURLPanel.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2738,6 +2738,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
178456C10F6320B5007E8021 /* English */,
|
||||
833F68241CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = SpotlightPanel.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2746,6 +2747,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
17D1B0D10F6320EA00694C57 /* English */,
|
||||
833F68201CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoInspector.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2754,6 +2756,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
17D1B1DB0F6330D400694C57 /* English */,
|
||||
833F68261CDBCAA900AFB9F0 /* es */,
|
||||
);
|
||||
name = Feedback.xib;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2762,6 +2765,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8E7575C809F31DCA0080F1EE /* English */,
|
||||
833F68251CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = Credits.html;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2770,6 +2774,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8E7575DA09F31E930080F1EE /* English */,
|
||||
833F681F1CDBCAA800AFB9F0 /* es */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2853,6 +2858,7 @@
|
|||
C01FCF4F08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
@ -2866,6 +2872,7 @@
|
|||
C01FCF5008A954540054247B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
- (void)alertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo
|
||||
{
|
||||
if ([(NSNumber *)contextInfo boolValue]== YES)
|
||||
if ([(NSNumber *)CFBridgingRelease(contextInfo) boolValue]== YES)
|
||||
{
|
||||
[[self window] close];
|
||||
}
|
||||
|
@ -40,22 +40,22 @@
|
|||
|
||||
[sendingIndicator stopAnimation:self];
|
||||
|
||||
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
|
||||
NSAlert *alert = [[NSAlert alloc] init];
|
||||
[alert setMessageText:NSLocalizedString(@"FeedbackFailedMessageText", @"")];
|
||||
[alert setInformativeText:NSLocalizedString(@"FeedbackFailedInformativeText", @"")];
|
||||
|
||||
[alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:[NSNumber numberWithBool:NO]];
|
||||
[alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:(void *)CFBridgingRetain([NSNumber numberWithBool:NO])];
|
||||
}
|
||||
|
||||
- (void)feedbackDidSend:(FeedbackSocket *)feedback
|
||||
{
|
||||
[sendingIndicator stopAnimation:self];
|
||||
|
||||
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
|
||||
NSAlert *alert = [[NSAlert alloc] init];
|
||||
[alert setMessageText:NSLocalizedString(@"FeedbackSuccessMessageText", @"")];
|
||||
[alert setInformativeText:NSLocalizedString(@"FeedbackSuccessInformativeText", @"")];
|
||||
|
||||
[alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:[NSNumber numberWithBool:YES]];
|
||||
[alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:(void *)CFBridgingRetain([NSNumber numberWithBool:YES])];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,44 +14,42 @@
|
|||
|
||||
NSString *encodeForURL(NSString *s)
|
||||
{
|
||||
return [(NSString*) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)s, NULL, NULL, kCFStringEncodingUTF8) autorelease];
|
||||
return (NSString*) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)s, NULL, NULL, kCFStringEncodingUTF8));
|
||||
}
|
||||
|
||||
- (void)sendFeedbackThread:(id)sender
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
@autoreleasepool {
|
||||
NSString *f = encodeForURL(from);
|
||||
NSString *s = encodeForURL(subject);
|
||||
NSString *m = encodeForURL(message);
|
||||
NSString *v = encodeForURL(version);
|
||||
|
||||
NSString *f = encodeForURL(from);
|
||||
NSString *s = encodeForURL(subject);
|
||||
NSString *m = encodeForURL(message);
|
||||
NSString *v = encodeForURL(version);
|
||||
NSString *postString = [NSString stringWithFormat:@"from=%@&subject=%@&message=%@&version=%@", f, s, m, v];
|
||||
|
||||
NSString *postString = [NSString stringWithFormat:@"from=%@&subject=%@&message=%@&version=%@", f, s, m, v];
|
||||
NSData *postData = [postString dataUsingEncoding:NSASCIIStringEncoding];
|
||||
|
||||
NSData *postData = [postString dataUsingEncoding:NSASCIIStringEncoding];
|
||||
NSURL *url = [NSURL URLWithString:@"http://cogx.org/feedback.php"];
|
||||
NSMutableURLRequest *post = [NSMutableURLRequest requestWithURL:url];
|
||||
|
||||
NSURL *url = [NSURL URLWithString:@"http://cogx.org/feedback.php"];
|
||||
NSMutableURLRequest *post = [NSMutableURLRequest requestWithURL:url];
|
||||
[post addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
|
||||
[post setHTTPMethod:@"POST"];
|
||||
[post setHTTPBody:postData];
|
||||
|
||||
[post addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
|
||||
[post setHTTPMethod:@"POST"];
|
||||
[post setHTTPBody:postData];
|
||||
|
||||
NSError* error;
|
||||
NSURLResponse* response;
|
||||
NSData* resultData = [NSURLConnection sendSynchronousRequest:post returningResponse:&response error:&error];
|
||||
NSString *resultString = [[[NSString alloc] initWithData:resultData encoding:NSASCIIStringEncoding] autorelease];
|
||||
//DLog(@"RESULT: %@", resultString);
|
||||
if ([resultString caseInsensitiveCompare:@"SUCCESS"] == NSOrderedSame)
|
||||
{
|
||||
[self performSelectorOnMainThread:@selector(returnSuccess:) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self performSelectorOnMainThread:@selector(returnFailure:) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
|
||||
[pool release];
|
||||
NSError* error;
|
||||
NSURLResponse* response;
|
||||
NSData* resultData = [NSURLConnection sendSynchronousRequest:post returningResponse:&response error:&error];
|
||||
NSString *resultString = [[NSString alloc] initWithData:resultData encoding:NSASCIIStringEncoding];
|
||||
//DLog(@"RESULT: %@", resultString);
|
||||
if ([resultString caseInsensitiveCompare:@"SUCCESS"] == NSOrderedSame)
|
||||
{
|
||||
[self performSelectorOnMainThread:@selector(returnSuccess:) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self performSelectorOnMainThread:@selector(returnFailure:) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)sendFeedback: (NSString *)f subject:(NSString *)s message:(NSString *)m version:(NSString *)v
|
||||
|
@ -90,33 +88,21 @@ NSString *encodeForURL(NSString *s)
|
|||
|
||||
- (void)setFrom:(NSString *)f
|
||||
{
|
||||
[f retain];
|
||||
[from release];
|
||||
|
||||
from = f;
|
||||
}
|
||||
|
||||
- (void)setSubject:(NSString *)s
|
||||
{
|
||||
[s retain];
|
||||
[subject release];
|
||||
|
||||
subject = s;
|
||||
}
|
||||
|
||||
- (void)setMessage:(NSString *)m
|
||||
{
|
||||
[m retain];
|
||||
[message release];
|
||||
|
||||
message = m;
|
||||
}
|
||||
|
||||
- (void)setVersion:(NSString *)v
|
||||
{
|
||||
[v retain];
|
||||
[version release];
|
||||
|
||||
version = v;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
|
||||
if ([u fragment])
|
||||
{
|
||||
[display release];
|
||||
NSDictionary *metadata = [AudioMetadataReader metadataForURL:u];
|
||||
NSString *title = nil;
|
||||
NSString *artist = nil;
|
||||
|
@ -37,11 +36,10 @@
|
|||
{
|
||||
if (artist && [artist length]) { display = [[u fragment] stringByAppendingFormat:@": %@ - %@", artist, title];}
|
||||
else { display = [[u fragment] stringByAppendingFormat:@": %@", title]; }
|
||||
[display retain];
|
||||
}
|
||||
else
|
||||
{
|
||||
display = [[u fragment] retain];
|
||||
display = [u fragment];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,12 +30,9 @@
|
|||
ContainedNode *node = [[ContainedNode alloc] initWithDataSource:dataSource url:u];
|
||||
DLog(@"Node: %@", u);
|
||||
[paths addObject:node];
|
||||
[node release];
|
||||
}
|
||||
}
|
||||
|
||||
[self setSubpaths:paths];
|
||||
|
||||
[paths release];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
}
|
||||
|
||||
[self processPaths: [fullPaths sortedArrayUsingSelector:@selector(finderCompare:)]];
|
||||
|
||||
[fullPaths release];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#import "PlaylistController.h"
|
||||
#import "FileTreeController.h"
|
||||
#import "SideViewController.h"
|
||||
|
||||
|
||||
@implementation FileTreeController
|
||||
|
@ -30,7 +31,6 @@
|
|||
}
|
||||
|
||||
[controller doAddToPlaylist:urls origin:origin];
|
||||
[urls release];
|
||||
}
|
||||
|
||||
- (void)addToPlaylistExternal:(id)sender
|
||||
|
|
|
@ -73,7 +73,6 @@
|
|||
if (![[NSFileManager defaultManager] fileExistsAtPath:[rootURL path]])
|
||||
rootURL = [NSURL fileURLWithPath:[@"~/Music" stringByExpandingTildeInPath]];
|
||||
|
||||
[rootNode release];
|
||||
rootNode = [[DirectoryNode alloc] initWithDataSource:self url:rootURL];
|
||||
|
||||
[watcher setPath:[rootURL path]];
|
||||
|
@ -181,11 +180,4 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[rootNode release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#import "FileTreeViewController.h"
|
||||
#import "PlaylistLoader.h"
|
||||
#import "PlaybackController.h"
|
||||
|
||||
@implementation FileTreeViewController
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ NSURL *resolveAliases(NSURL *url)
|
|||
if (resolvedUrl != NULL)
|
||||
{
|
||||
//DLog(@"Resolved...");
|
||||
return [(NSURL *)resolvedUrl autorelease];
|
||||
return (NSURL *)CFBridgingRelease(resolvedUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -60,19 +60,11 @@ NSURL *resolveAliases(NSURL *url)
|
|||
|
||||
- (void)setURL:(NSURL *)u
|
||||
{
|
||||
[u retain];
|
||||
|
||||
[url release];
|
||||
|
||||
url = u;
|
||||
|
||||
[display release];
|
||||
display = [[NSFileManager defaultManager] displayNameAtPath:[u path]];
|
||||
[display retain];
|
||||
|
||||
[icon release];
|
||||
icon = [[NSWorkspace sharedWorkspace] iconForFile:[url path]];
|
||||
[icon retain];
|
||||
|
||||
[icon setSize: NSMakeSize(16.0, 16.0)];
|
||||
}
|
||||
|
@ -144,15 +136,10 @@ NSURL *resolveAliases(NSURL *url)
|
|||
[newSubpathsDirs addObject:newNode];
|
||||
else
|
||||
[newSubpaths addObject:newNode];
|
||||
|
||||
[newNode release];
|
||||
}
|
||||
|
||||
[newSubpathsDirs addObjectsFromArray:newSubpaths];
|
||||
[self setSubpaths:newSubpathsDirs];
|
||||
|
||||
[newSubpathsDirs release];
|
||||
[newSubpaths release];
|
||||
}
|
||||
|
||||
- (NSArray *)subpaths
|
||||
|
@ -167,8 +154,6 @@ NSURL *resolveAliases(NSURL *url)
|
|||
|
||||
- (void)setSubpaths:(NSArray *)s
|
||||
{
|
||||
[s retain];
|
||||
[subpaths release];
|
||||
subpaths = s;
|
||||
}
|
||||
|
||||
|
@ -180,9 +165,7 @@ NSURL *resolveAliases(NSURL *url)
|
|||
|
||||
- (void)setDisplay:(NSString *)s
|
||||
{
|
||||
[display release];
|
||||
display = s;
|
||||
[display retain];
|
||||
}
|
||||
|
||||
- (NSString *)display
|
||||
|
@ -195,14 +178,4 @@ NSURL *resolveAliases(NSURL *url)
|
|||
return icon;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[url release];
|
||||
[icon release];
|
||||
|
||||
[subpaths release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -18,13 +18,12 @@ static void myFSEventCallback(
|
|||
{
|
||||
int i;
|
||||
char **paths = eventPaths;
|
||||
PathWatcher *pathWatcher = (PathWatcher *)clientCallBackInfo;
|
||||
PathWatcher *pathWatcher = (__bridge PathWatcher *)clientCallBackInfo;
|
||||
|
||||
printf("Callback called\n");
|
||||
for (i=0; i<numEvents; i++) {
|
||||
NSString *pathString = [[NSString alloc] initWithUTF8String:paths[i]];
|
||||
[[pathWatcher delegate] pathDidChange:pathString];
|
||||
[pathString release];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,11 +48,11 @@ static void myFSEventCallback(
|
|||
[self cleanUp];
|
||||
|
||||
//Create FSEvent stream
|
||||
CFArrayRef pathsToWatch = CFArrayCreate(NULL, (const void **)&path, 1, NULL);
|
||||
NSArray *pathsToWatch = [NSArray arrayWithObject:path];
|
||||
|
||||
context = (FSEventStreamContext*)malloc(sizeof(FSEventStreamContext));
|
||||
context->version = 0;
|
||||
context->info = (void *)self;
|
||||
context->info = (__bridge void *)self;
|
||||
context->retain = NULL;
|
||||
context->release = NULL;
|
||||
|
||||
|
@ -61,14 +60,12 @@ static void myFSEventCallback(
|
|||
stream = FSEventStreamCreate(NULL,
|
||||
&myFSEventCallback,
|
||||
context,
|
||||
pathsToWatch,
|
||||
(__bridge CFArrayRef)pathsToWatch,
|
||||
kFSEventStreamEventIdSinceNow, // Or a previous event ID
|
||||
1.0, //latency in seconds
|
||||
kFSEventStreamCreateFlagNone // Watch this and all its subdirectories
|
||||
);
|
||||
|
||||
CFRelease(pathsToWatch);
|
||||
|
||||
FSEventStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
|
||||
|
||||
FSEventStreamStart(stream);
|
||||
|
@ -76,8 +73,6 @@ static void myFSEventCallback(
|
|||
|
||||
- (void)setDelegate:(id)d
|
||||
{
|
||||
[d retain];
|
||||
[delegate release];
|
||||
delegate = d;
|
||||
}
|
||||
- (id)delegate
|
||||
|
@ -88,8 +83,6 @@ static void myFSEventCallback(
|
|||
- (void) dealloc
|
||||
{
|
||||
[self cleanUp];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#import "PathNode.h"
|
||||
|
||||
@interface SmartFolderNode : PathNode {
|
||||
MDQueryRef _query;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -28,11 +28,12 @@
|
|||
|
||||
// Ugh, Carbon from now on...
|
||||
MDQueryRef query = MDQueryCreate(kCFAllocatorDefault, (CFStringRef)rawQuery, NULL, NULL);
|
||||
_query = query;
|
||||
|
||||
MDQuerySetSearchScope(query, (CFArrayRef)searchPaths, 0);
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryFinished:) name:(NSString*)kMDQueryDidFinishNotification object:(id)query];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryUpdate:) name:(NSString*)kMDQueryDidUpdateNotification object:(id)query];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryFinished:) name:(NSString*)kMDQueryDidFinishNotification object:(__bridge id)query];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryUpdate:) name:(NSString*)kMDQueryDidUpdateNotification object:(__bridge id)query];
|
||||
|
||||
DLog(@"Making query!");
|
||||
MDQueryExecute(query, kMDQueryWantsUpdates);
|
||||
|
@ -42,8 +43,6 @@
|
|||
|
||||
- (void)setSubpaths:(id)s
|
||||
{
|
||||
[s retain];
|
||||
[subpaths release];
|
||||
subpaths = s;
|
||||
}
|
||||
|
||||
|
@ -60,7 +59,7 @@
|
|||
- (void)queryFinished:(NSNotification *)notification
|
||||
{
|
||||
DLog(@"Query finished!");
|
||||
MDQueryRef query = (MDQueryRef)[notification object];
|
||||
MDQueryRef query = (__bridge MDQueryRef)[notification object];
|
||||
|
||||
NSMutableArray *results = [NSMutableArray array];
|
||||
|
||||
|
@ -72,11 +71,9 @@
|
|||
{
|
||||
MDItemRef item = (MDItemRef)MDQueryGetResultAtIndex(query, i);
|
||||
|
||||
NSString *itemPath = (NSString*)MDItemCopyAttribute(item, kMDItemPath);
|
||||
NSString *itemPath = (NSString *) CFBridgingRelease(MDItemCopyAttribute(item, kMDItemPath));
|
||||
|
||||
[results addObject:itemPath];
|
||||
|
||||
[itemPath release];
|
||||
}
|
||||
|
||||
MDQueryEnableUpdates(query);
|
||||
|
@ -94,6 +91,11 @@
|
|||
[self queryFinished: notification];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
CFRelease(_query);
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
NSAttributedString *result = nil;
|
||||
|
||||
result = [[NSAttributedString alloc] initWithString:[self stringForObjectValue:object] attributes:attributes];
|
||||
return [result autorelease];
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
NSAttributedString *result = nil;
|
||||
|
||||
result = [[NSAttributedString alloc] initWithString:[self stringForObjectValue:object] attributes:attributes];
|
||||
return [result autorelease];
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
NSAttributedString *result = nil;
|
||||
|
||||
result = [[NSAttributedString alloc] initWithString:[self stringForObjectValue:object] attributes:attributes];
|
||||
return [result autorelease];
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
17C8F63B0CBEE797008D969D /* readxm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = readxm.c; sourceTree = "<group>"; };
|
||||
17C8F63C0CBEE797008D969D /* readxm2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = readxm2.c; sourceTree = "<group>"; };
|
||||
17C8F63D0CBEE797008D969D /* xmeffect.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = xmeffect.c; sourceTree = "<group>"; };
|
||||
833F68341CDBCAB100AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8370B61E17F60FE2001A4D7A /* barray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = barray.h; sourceTree = "<group>"; };
|
||||
8370B62017F60FE2001A4D7A /* dumbfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dumbfile.h; sourceTree = "<group>"; };
|
||||
8370B62217F60FE2001A4D7A /* lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lpc.h; sourceTree = "<group>"; };
|
||||
|
@ -484,7 +485,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Dumb" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
@ -492,6 +493,7 @@
|
|||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 0867D691FE84028FC02AAC07 /* Dumb */;
|
||||
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
||||
|
@ -614,6 +616,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1667FE841158C02AAC07 /* English */,
|
||||
833F68341CDBCAB100AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -640,6 +643,7 @@
|
|||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
OBJROOT = ../../build;
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.dumb;
|
||||
PRODUCT_NAME = Dumb;
|
||||
SDKROOT = macosx;
|
||||
SHARED_PRECOMPS_DIR = "";
|
||||
|
@ -665,6 +669,7 @@
|
|||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
OBJROOT = ../../build;
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.dumb;
|
||||
PRODUCT_NAME = Dumb;
|
||||
SDKROOT = macosx;
|
||||
SHARED_PRECOMPS_DIR = "";
|
||||
|
@ -677,6 +682,7 @@
|
|||
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"VAR_ARRAYS=1",
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.cogx.lib.dumb</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
|
|
|
@ -52,7 +52,7 @@ long dumb_resample(DUMB_RESAMPLER *resampler, sample_t *dst, long dst_size, VOLU
|
|||
long todo;
|
||||
LONG_LONG todo64;
|
||||
int quality;
|
||||
int check;
|
||||
/*int check;*/
|
||||
|
||||
if (!resampler || resampler->dir == 0) return 0;
|
||||
ASSERT(resampler->dir == -1 || resampler->dir == 1);
|
||||
|
|
Binary file not shown.
|
@ -786,6 +786,7 @@
|
|||
833E5F9E18A31EC4006A85F9 /* twinvq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = twinvq.c; sourceTree = "<group>"; };
|
||||
833E5F9F18A31EC4006A85F9 /* twinvq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = twinvq.h; sourceTree = "<group>"; };
|
||||
833E5FA018A31EC4006A85F9 /* twinvqdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = twinvqdec.c; sourceTree = "<group>"; };
|
||||
833F68321CDBCAB100AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8384904C1807898200E7332D /* apedec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = apedec.c; sourceTree = "<group>"; };
|
||||
8384904E1807898A00E7332D /* ape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ape.c; sourceTree = "<group>"; };
|
||||
838490501807AF0100E7332D /* ac3_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ac3_parser.c; sourceTree = "<group>"; };
|
||||
|
@ -1761,7 +1762,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "FFMPEG" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
@ -1769,6 +1770,7 @@
|
|||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 0867D691FE84028FC02AAC07 /* FFMPEG */;
|
||||
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
||||
|
@ -2034,6 +2036,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1667FE841158C02AAC07 /* English */,
|
||||
833F68321CDBCAB100AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2061,6 +2064,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.ffmpeg;
|
||||
PRODUCT_NAME = FFMPEG;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -2086,6 +2090,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.ffmpeg;
|
||||
PRODUCT_NAME = FFMPEG;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -2098,6 +2103,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.cogx.lib.ffmpeg</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
Binary file not shown.
|
@ -6,14 +6,14 @@
|
|||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.xiph.libflac</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
|
|
|
@ -87,6 +87,7 @@ static void sigill_handler (int sig)
|
|||
#endif
|
||||
|
||||
/* these are flags in EDX of CPUID AX=00000001 */
|
||||
#if 0
|
||||
static const unsigned FLAC__CPUINFO_IA32_CPUID_CMOV = 0x00008000;
|
||||
static const unsigned FLAC__CPUINFO_IA32_CPUID_MMX = 0x00800000;
|
||||
static const unsigned FLAC__CPUINFO_IA32_CPUID_FXSR = 0x01000000;
|
||||
|
@ -99,6 +100,7 @@ static const unsigned FLAC__CPUINFO_IA32_CPUID_SSSE3 = 0x00000200;
|
|||
static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_3DNOW = 0x80000000;
|
||||
static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_EXT3DNOW = 0x40000000;
|
||||
static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_EXTMMX = 0x00400000;
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -421,7 +421,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "flac" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
@ -509,6 +509,7 @@
|
|||
OTHER_CFLAGS_QUOTED_1 = "-DVERSION=\\\"1.2.1\\\"";
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.libflac;
|
||||
PRODUCT_NAME = FLAC;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers";
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -547,6 +548,7 @@
|
|||
OTHER_CFLAGS_QUOTED_1 = "-DVERSION=\\\"1.2.1\\\"";
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.libflac;
|
||||
PRODUCT_NAME = FLAC;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers";
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -559,6 +561,7 @@
|
|||
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
|
|
@ -144,6 +144,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F68401CDBCAB300AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8359000017FEF40E0060F3ED /* unrar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unrar.h; sourceTree = "<group>"; };
|
||||
8359000117FEF40E0060F3ED /* unrar_misc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unrar_misc.cpp; sourceTree = "<group>"; };
|
||||
8359009017FEF5830060F3ED /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
||||
|
@ -614,7 +615,7 @@
|
|||
8359FF3317FEF39F0060F3ED /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 8359FF3617FEF39F0060F3ED /* Build configuration list for PBXProject "File_Extractor" */;
|
||||
|
@ -623,6 +624,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 8359FF3217FEF39F0060F3ED;
|
||||
productRefGroup = 8359FF3D17FEF39F0060F3ED /* Products */;
|
||||
|
@ -723,6 +725,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8359FF4917FEF39F0060F3ED /* en */,
|
||||
833F68401CDBCAB300AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -746,6 +749,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -815,6 +819,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = "File_Extractor/File_Extractor-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.fileextractor;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -837,6 +842,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = "File_Extractor/File_Extractor-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.fileextractor;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.fileextractor</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -63,9 +63,11 @@ static void make_unbuffered( Std_File_Reader* r )
|
|||
r->make_unbuffered();
|
||||
}
|
||||
|
||||
#if 0
|
||||
inline
|
||||
static void make_unbuffered( void* )
|
||||
{ }
|
||||
#endif
|
||||
|
||||
blargg_err_t File_Extractor::open_arc_file( bool unbuffered )
|
||||
{
|
||||
|
|
|
@ -21,6 +21,7 @@ RARFORMAT Archive::IsSignature(const byte *D,size_t Size)
|
|||
{
|
||||
RARFORMAT Type=RARFMT_NONE;
|
||||
if (Size>=1 && D[0]==0x52)
|
||||
{
|
||||
#ifndef SFX_MODULE
|
||||
if (Size>=4 && D[1]==0x45 && D[2]==0x7e && D[3]==0x5e)
|
||||
Type=RARFMT14;
|
||||
|
@ -38,6 +39,7 @@ RARFORMAT Archive::IsSignature(const byte *D,size_t Size)
|
|||
else if (D[6]==2)
|
||||
Type=RARFMT_FUTURE;
|
||||
}
|
||||
}
|
||||
return Type;
|
||||
}
|
||||
|
||||
|
|
|
@ -361,6 +361,8 @@ unrar_err_t Archive::ReadHeader50(size_t *ReadSize)
|
|||
|
||||
switch(ShortBlock.HeaderType)
|
||||
{
|
||||
default: break;
|
||||
|
||||
case HEAD_CRYPT:
|
||||
return unrar_err_encrypted;
|
||||
case HEAD_MAIN:
|
||||
|
@ -720,10 +722,12 @@ void Archive::ConvertFileHeader(FileHeader *hd)
|
|||
if (Format==RARFMT15 && hd->UnpVer<20 && (hd->FileAttr & 0x10))
|
||||
hd->Dir=true;
|
||||
if (hd->HSType==HSYS_UNKNOWN)
|
||||
{
|
||||
if (hd->Dir)
|
||||
hd->FileAttr=0x10;
|
||||
else
|
||||
hd->FileAttr=0x20;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ wchar* GetWideName(const char *Name,const wchar *NameW,wchar *DestW,size_t DestS
|
|||
}
|
||||
else
|
||||
if (Name!=NULL)
|
||||
CharToWide(Name,DestW,DestSize);
|
||||
CharToWide(Name,DestW,(int)DestSize);
|
||||
else
|
||||
*DestW=0;
|
||||
|
||||
|
|
|
@ -896,6 +896,8 @@ void RarVM::ExecuteStandardFilter(VM_StandardFilters FilterType)
|
|||
{
|
||||
switch(FilterType)
|
||||
{
|
||||
default: break;
|
||||
|
||||
case VMSF_E8:
|
||||
case VMSF_E8E9:
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ size_t RawRead::Read(size_t Size)
|
|||
if (Size!=0)
|
||||
{
|
||||
Data.Add(Size);
|
||||
ReadSize=SrcFile->Read(&Data[DataSize],Size);
|
||||
ReadSize=SrcFile->Read(&Data[DataSize],(int)Size);
|
||||
DataSize+=ReadSize;
|
||||
}
|
||||
return ReadSize;
|
||||
|
|
|
@ -87,6 +87,7 @@ void Unpack::Init(size_t WinSize,bool Solid)
|
|||
byte *NewWindow=Fragmented ? NULL : (byte *)malloc(WinSize);
|
||||
|
||||
if (NewWindow==NULL)
|
||||
{
|
||||
if (Grow || WinSize<0x1000000)
|
||||
{
|
||||
// We do not support growth for new fragmented window.
|
||||
|
@ -103,6 +104,7 @@ void Unpack::Init(size_t WinSize,bool Solid)
|
|||
FragWindow.Init(WinSize);
|
||||
Fragmented=true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Fragmented)
|
||||
{
|
||||
|
|
|
@ -295,6 +295,7 @@ void Unpack::LongLZ()
|
|||
|
||||
OldAvr3=AvrLn3;
|
||||
if (Length!=1 && Length!=4)
|
||||
{
|
||||
if (Length==0 && Distance <= MaxDist3)
|
||||
{
|
||||
AvrLn3++;
|
||||
|
@ -303,6 +304,7 @@ void Unpack::LongLZ()
|
|||
else
|
||||
if (AvrLn3 > 0)
|
||||
AvrLn3--;
|
||||
}
|
||||
Length+=3;
|
||||
if (Distance >= MaxDist3)
|
||||
Length++;
|
||||
|
|
|
@ -154,11 +154,11 @@ void Unpack::UnpWriteBuf20()
|
|||
if (UnpPtr<WrPtr)
|
||||
{
|
||||
UnpIO->UnpWrite(&Window[WrPtr],-(int)WrPtr & MaxWinMask);
|
||||
UnpIO->UnpWrite(Window,UnpPtr);
|
||||
UnpIO->UnpWrite(Window,(int)UnpPtr);
|
||||
UnpAllBuf=true;
|
||||
}
|
||||
else
|
||||
UnpIO->UnpWrite(&Window[WrPtr],UnpPtr-WrPtr);
|
||||
UnpIO->UnpWrite(&Window[WrPtr],(int)(UnpPtr-WrPtr));
|
||||
WrPtr=UnpPtr;
|
||||
}
|
||||
|
||||
|
@ -254,6 +254,7 @@ bool Unpack::ReadTables20()
|
|||
void Unpack::ReadLastTables()
|
||||
{
|
||||
if (ReadTop>=Inp.InAddr+5)
|
||||
{
|
||||
if (UnpAudioBlock)
|
||||
{
|
||||
if (DecodeNumber(Inp,&MD[UnpCurChannel])==256)
|
||||
|
@ -262,6 +263,7 @@ void Unpack::ReadLastTables()
|
|||
else
|
||||
if (DecodeNumber(Inp,&BlockTables.LD)==269)
|
||||
ReadTables20();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@ void Unpack::Unpack5(bool Solid)
|
|||
// We use 'while', because for empty block containing only Huffman table,
|
||||
// we'll be on the block border once again just after reading the table.
|
||||
while (Inp.InAddr>BlockHeader.BlockStart+BlockHeader.BlockSize-1 ||
|
||||
Inp.InAddr==BlockHeader.BlockStart+BlockHeader.BlockSize-1 &&
|
||||
Inp.InBit>=BlockHeader.BlockBitSize)
|
||||
(Inp.InAddr==BlockHeader.BlockStart+BlockHeader.BlockSize-1 &&
|
||||
Inp.InBit>=BlockHeader.BlockBitSize))
|
||||
{
|
||||
if (BlockHeader.LastBlockInFile)
|
||||
{
|
||||
|
@ -124,10 +124,12 @@ void Unpack::Unpack5(bool Solid)
|
|||
if (MainSlot==257)
|
||||
{
|
||||
if (LastLength!=0)
|
||||
{
|
||||
if (Fragmented)
|
||||
FragWindow.CopyString(LastLength,OldDist[0],UnpPtr,MaxWinMask);
|
||||
else
|
||||
CopyString(LastLength,OldDist[0]);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (MainSlot<262)
|
||||
|
@ -380,7 +382,7 @@ void Unpack::UnpWriteBuf()
|
|||
// Choose the nearest among WriteBorder and WrPtr actual written border.
|
||||
// If border is equal to UnpPtr, it means that we have MaxWinSize data ahead.
|
||||
if (WriteBorder==UnpPtr ||
|
||||
WrPtr!=UnpPtr && ((WrPtr-UnpPtr)&MaxWinMask)<((WriteBorder-UnpPtr)&MaxWinMask))
|
||||
(WrPtr!=UnpPtr && ((WrPtr-UnpPtr)&MaxWinMask)<((WriteBorder-UnpPtr)&MaxWinMask)))
|
||||
WriteBorder=WrPtr;
|
||||
}
|
||||
|
||||
|
@ -500,7 +502,7 @@ void Unpack::UnpWriteData(byte *Data,size_t Size)
|
|||
int64 LeftToWrite=DestUnpSize-WrittenFileSize;
|
||||
if ((int64)WriteSize>LeftToWrite)
|
||||
WriteSize=(size_t)LeftToWrite;
|
||||
UnpIO->UnpWrite(Data,WriteSize);
|
||||
UnpIO->UnpWrite(Data,(int)WriteSize);
|
||||
WrittenFileSize+=Size;
|
||||
}
|
||||
|
||||
|
|
|
@ -401,6 +401,7 @@
|
|||
17C8F1ED0CBED286008D969D /* Ym2413_Emu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Ym2413_Emu.h; path = gme/Ym2413_Emu.h; sourceTree = "<group>"; };
|
||||
17C8F1EE0CBED286008D969D /* Ym2612_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Ym2612_Emu.cpp; path = gme/Ym2612_Emu.cpp; sourceTree = "<group>"; };
|
||||
17C8F1EF0CBED286008D969D /* Ym2612_Emu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Ym2612_Emu.h; path = gme/Ym2612_Emu.h; sourceTree = "<group>"; };
|
||||
833F68361CDBCAB200AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8370B68D17F615FD001A4D7A /* Ay_Core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ay_Core.cpp; path = gme/Ay_Core.cpp; sourceTree = "<group>"; };
|
||||
8370B68E17F615FD001A4D7A /* Ay_Core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Ay_Core.h; path = gme/Ay_Core.h; sourceTree = "<group>"; };
|
||||
8370B68F17F615FD001A4D7A /* blargg_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = blargg_common.cpp; path = gme/blargg_common.cpp; sourceTree = "<group>"; };
|
||||
|
@ -1272,7 +1273,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GME" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
@ -1280,6 +1281,7 @@
|
|||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 0867D691FE84028FC02AAC07 /* GME */;
|
||||
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
||||
|
@ -1462,6 +1464,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1667FE841158C02AAC07 /* English */,
|
||||
833F68361CDBCAB200AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1493,6 +1496,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.gme;
|
||||
PRODUCT_NAME = GME;
|
||||
SDKROOT = macosx;
|
||||
SHARED_PRECOMPS_DIR = "";
|
||||
|
@ -1524,6 +1528,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.gme;
|
||||
PRODUCT_NAME = GME;
|
||||
SDKROOT = macosx;
|
||||
SHARED_PRECOMPS_DIR = "";
|
||||
|
@ -1536,6 +1541,7 @@
|
|||
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.cogx.lib.gme</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
|
|
Binary file not shown.
|
@ -37,6 +37,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F682F1CDBCAB100AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8343793517F97BDB00584396 /* HighlyAdvanced.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HighlyAdvanced.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8343794017F97BDB00584396 /* HighlyAdvanced-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HighlyAdvanced-Info.plist"; sourceTree = "<group>"; };
|
||||
8343794217F97BDB00584396 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -234,7 +235,7 @@
|
|||
8343792C17F97BDB00584396 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 8343792F17F97BDB00584396 /* Build configuration list for PBXProject "HighlyAdvanced" */;
|
||||
|
@ -243,6 +244,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 8343792B17F97BDB00584396;
|
||||
productRefGroup = 8343793617F97BDB00584396 /* Products */;
|
||||
|
@ -290,6 +292,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8343794217F97BDB00584396 /* en */,
|
||||
833F682F1CDBCAB100AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -313,6 +316,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -380,6 +384,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = "HighlyAdvanced/HighlyAdvanced-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyadvanced;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -398,6 +403,7 @@
|
|||
GCC_PREPROCESSOR_DEFINITIONS = EMU_COMPILE;
|
||||
INFOPLIST_FILE = "HighlyAdvanced/HighlyAdvanced-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyadvanced;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.highlyadvanced</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F682B1CDBCAB000AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8360EF1017F92C91005208A4 /* HighlyExperimental.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HighlyExperimental.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8360EF1B17F92C91005208A4 /* HighlyExperimental-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HighlyExperimental-Info.plist"; sourceTree = "<group>"; };
|
||||
8360EF1D17F92C91005208A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -173,7 +174,7 @@
|
|||
8360EF0717F92C91005208A4 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 8360EF0A17F92C91005208A4 /* Build configuration list for PBXProject "HighlyExperimental" */;
|
||||
|
@ -182,6 +183,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 8360EF0617F92C91005208A4;
|
||||
productRefGroup = 8360EF1117F92C91005208A4 /* Products */;
|
||||
|
@ -227,6 +229,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8360EF1D17F92C91005208A4 /* en */,
|
||||
833F682B1CDBCAB000AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -250,6 +253,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -319,6 +323,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = "HighlyExperimental/HighlyExperimental-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyexperimental;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
@ -342,6 +347,7 @@
|
|||
);
|
||||
INFOPLIST_FILE = "HighlyExperimental/HighlyExperimental-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyexperimental;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.highlyexperimental</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F682E1CDBCAB100AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
834378DE17F96E2600584396 /* HighlyQuixotic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HighlyQuixotic.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
834378E917F96E2600584396 /* HighlyQuixotic-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HighlyQuixotic-Info.plist"; sourceTree = "<group>"; };
|
||||
834378EB17F96E2600584396 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -145,7 +146,7 @@
|
|||
834378D517F96E2600584396 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 834378D817F96E2600584396 /* Build configuration list for PBXProject "HighlyQuixotic" */;
|
||||
|
@ -154,6 +155,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 834378D417F96E2600584396;
|
||||
productRefGroup = 834378DF17F96E2600584396 /* Products */;
|
||||
|
@ -195,6 +197,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
834378EB17F96E2600584396 /* en */,
|
||||
833F682E1CDBCAB100AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -218,6 +221,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -290,6 +294,7 @@
|
|||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
INFOPLIST_FILE = "HighlyQuixotic/HighlyQuixotic-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyquixotic;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
@ -306,6 +311,7 @@
|
|||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
INFOPLIST_FILE = "HighlyQuixotic/HighlyQuixotic-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlyquixotic;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.highlyquixotic</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F682D1CDBCAB000AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8343786E17F9658E00584396 /* HighlyTheoretical.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HighlyTheoretical.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8343787917F9658E00584396 /* HighlyTheoretical-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HighlyTheoretical-Info.plist"; sourceTree = "<group>"; };
|
||||
8343787B17F9658E00584396 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -187,7 +188,7 @@
|
|||
8343786517F9658E00584396 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 8343786817F9658E00584396 /* Build configuration list for PBXProject "HighlyTheoretical" */;
|
||||
|
@ -196,6 +197,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 8343786417F9658E00584396;
|
||||
productRefGroup = 8343786F17F9658E00584396 /* Products */;
|
||||
|
@ -240,6 +242,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8343787B17F9658E00584396 /* en */,
|
||||
833F682D1CDBCAB000AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -263,6 +266,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -340,6 +344,7 @@
|
|||
INFOPLIST_FILE = "HighlyTheoretical/HighlyTheoretical-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlytheoretical;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -358,6 +363,7 @@
|
|||
INFOPLIST_FILE = "HighlyTheoretical/HighlyTheoretical-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.highlytheoretical;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.highlytheoretical</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -15,6 +15,7 @@
|
|||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
833F68481CDBCABF00AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
836FB556182053D700B3AD2D /* HivelyPlayer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HivelyPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
836FB561182053D700B3AD2D /* HivelyPlayer-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HivelyPlayer-Info.plist"; sourceTree = "<group>"; };
|
||||
836FB563182053D700B3AD2D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -127,7 +128,7 @@
|
|||
836FB54D182053D700B3AD2D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 836FB550182053D700B3AD2D /* Build configuration list for PBXProject "HivelyPlayer" */;
|
||||
|
@ -136,6 +137,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 836FB54C182053D700B3AD2D;
|
||||
productRefGroup = 836FB557182053D700B3AD2D /* Products */;
|
||||
|
@ -175,6 +177,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
836FB563182053D700B3AD2D /* en */,
|
||||
833F68481CDBCABF00AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -198,6 +201,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -261,6 +265,7 @@
|
|||
FRAMEWORK_VERSION = A;
|
||||
INFOPLIST_FILE = "HivelyPlayer/HivelyPlayer-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.hivelyplayer;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
@ -277,6 +282,7 @@
|
|||
FRAMEWORK_VERSION = A;
|
||||
INFOPLIST_FILE = "HivelyPlayer/HivelyPlayer-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.kode54.hivelyplayer;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.kode54.hivelyplayer</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -170,7 +170,7 @@ int hvl_blip_clocks_needed( const hvl_blip_t* m, int samples )
|
|||
if ( needed < m->offset )
|
||||
return 0;
|
||||
|
||||
return (needed - m->offset + m->factor - 1) / m->factor;
|
||||
return (int)((needed - m->offset + m->factor - 1) / m->factor);
|
||||
}
|
||||
|
||||
void hvl_blip_end_frame( hvl_blip_t* m, unsigned t )
|
||||
|
@ -213,7 +213,7 @@ int hvl_blip_read_samples( hvl_blip_t* m, int out [], int count, int gain )
|
|||
do
|
||||
{
|
||||
/* Eliminate fraction */
|
||||
int s = ARITH_SHIFT( sum, delta_bits );
|
||||
int s = (int) ARITH_SHIFT( sum, delta_bits );
|
||||
|
||||
sum += *in++;
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -121,7 +121,7 @@ static int32 clipshifted8(int32 in)
|
|||
{
|
||||
int16 top = (int16)(in >> 16);
|
||||
if (top > 127) in = 127 << 16;
|
||||
else if (top < -128) in = -128 << 16;
|
||||
else if (top < -128) in = -128 * (1 << 16);
|
||||
return in;
|
||||
}
|
||||
|
||||
|
@ -314,10 +314,10 @@ void hvl_InitReplayer( void )
|
|||
hvl_GenFilterWaves( &waves[WO_TRIANGLE_04], &waves[WO_LOWPASSES], &waves[WO_HIGHPASSES] );
|
||||
}
|
||||
|
||||
struct hvl_tune *hvl_load_ahx( uint8 *buf, uint32 buflen, uint32 defstereo, uint32 freq )
|
||||
struct hvl_tune *hvl_load_ahx( const uint8 *buf, uint32 buflen, uint32 defstereo, uint32 freq )
|
||||
{
|
||||
uint8 *bptr;
|
||||
TEXT *nptr;
|
||||
const uint8 *bptr;
|
||||
const TEXT *nptr;
|
||||
uint32 i, j, k, l, posn, insn, ssn, hs, trkn, trkl;
|
||||
struct hvl_tune *ht;
|
||||
struct hvl_plsentry *ple;
|
||||
|
@ -406,12 +406,12 @@ struct hvl_tune *hvl_load_ahx( uint8 *buf, uint32 buflen, uint32 defstereo, uint
|
|||
}
|
||||
|
||||
bptr = &buf[(buf[4]<<8)|buf[5]];
|
||||
i = min( 128, buf + buflen - bptr );
|
||||
i = min( 128, (uint32) (buf + buflen - bptr) );
|
||||
|
||||
strncpy( ht->ht_Name, (TEXT *)bptr, i );
|
||||
if ( i < 128 ) ht->ht_Name[ i ] = 0;
|
||||
nptr = (TEXT *)bptr+strlen( ht->ht_Name )+1;
|
||||
if ( nptr > buf + buflen )
|
||||
if ( (uint8*) nptr > buf + buflen )
|
||||
{
|
||||
free( ht );
|
||||
return NULL;
|
||||
|
@ -541,10 +541,9 @@ struct hvl_tune *hvl_load_ahx( uint8 *buf, uint32 buflen, uint32 defstereo, uint
|
|||
struct hvl_tune *hvl_LoadTune( const uint8 *buf, uint32 buflen, uint32 freq, uint32 defstereo )
|
||||
{
|
||||
struct hvl_tune *ht;
|
||||
uint8 *bptr;
|
||||
TEXT *nptr;
|
||||
const uint8 *bptr;
|
||||
const TEXT *nptr;
|
||||
uint32 i, j, posn, insn, ssn, chnn, hs, trkl, trkn;
|
||||
FILE *fh;
|
||||
struct hvl_plsentry *ple;
|
||||
|
||||
if ( !buf || buflen < 4 )
|
||||
|
@ -670,12 +669,12 @@ struct hvl_tune *hvl_LoadTune( const uint8 *buf, uint32 buflen, uint32 freq, uin
|
|||
free( ht );
|
||||
return NULL;
|
||||
}
|
||||
i = min( 128, buf + buflen - bptr );
|
||||
i = min( 128, (uint32) (buf + buflen - bptr) );
|
||||
|
||||
strncpy( ht->ht_Name, (TEXT *)bptr, i );
|
||||
if ( i < 128 ) ht->ht_Name[ i ] = 0;
|
||||
nptr = (TEXT *)bptr+strlen( ht->ht_Name )+1;
|
||||
if ( nptr > buf + buflen )
|
||||
if ( (uint8 *)nptr > buf + buflen )
|
||||
{
|
||||
free( ht );
|
||||
return NULL;
|
||||
|
@ -1884,7 +1883,7 @@ void hvl_mixchunk( struct hvl_tune *ht, uint32 samples, int8 *buf1, int8 *buf2,
|
|||
int32 vol[MAX_CHANNELS];
|
||||
uint32 pos[MAX_CHANNELS];
|
||||
uint32 rpos[MAX_CHANNELS];
|
||||
uint32 cnt;
|
||||
// uint32 cnt;
|
||||
int32 panl[MAX_CHANNELS];
|
||||
int32 panr[MAX_CHANNELS];
|
||||
// uint32 vu[MAX_CHANNELS];
|
||||
|
|
|
@ -218,7 +218,7 @@ void _Huffman_PrintCodes(huff_sym_t * sym, unsigned int num_symbols, int print_t
|
|||
qsort(sym, num_symbols, sizeof(huff_sym_t),
|
||||
(int (*)(const void *, const void *)) _Huffman_CompBits);
|
||||
printf("{\n ");
|
||||
for( i = num_symbols - 1; i >= 0; i--) {
|
||||
for( i = num_symbols - 1; i != ~0; i--) {
|
||||
printf("{0x%.8x, %u, %i}", sym[i].Code << (32 - sym[i].Bits), sym[i].Bits, sym[i].Symbol - offset);
|
||||
if (i != 0)
|
||||
printf(", ");
|
||||
|
@ -229,7 +229,7 @@ void _Huffman_PrintCodes(huff_sym_t * sym, unsigned int num_symbols, int print_t
|
|||
qsort(sym, num_symbols, sizeof(huff_sym_t),
|
||||
(int (*)(const void *, const void *)) _Huffman_CompBits);
|
||||
printf("{\n ");
|
||||
for( i = num_symbols - 1; i >= 0; i--) {
|
||||
for( i = num_symbols - 1; i != ~0; i--) {
|
||||
int symbol = sym[i].Symbol;
|
||||
packs[3] = symbol / (offset * offset * offset);
|
||||
packs[2] = (symbol - packs[3] * offset * offset * offset) / (offset * offset);
|
||||
|
|
|
@ -109,8 +109,8 @@ mpc_demux_fill(mpc_demux * d, mpc_uint32_t min_bytes, int flags)
|
|||
mpc_uint32_t bytesread;
|
||||
|
||||
if (flags & MPC_BUFFER_SWAP) {
|
||||
bytes2read &= -1 << 2;
|
||||
offset = (unread_bytes + 3) & ( -1 << 2);
|
||||
bytes2read &= -1 * (1 << 2);
|
||||
offset = (unread_bytes + 3) & ( -1 * (1 << 2));
|
||||
offset -= unread_bytes;
|
||||
}
|
||||
|
||||
|
@ -162,7 +162,7 @@ mpc_demux_seek(mpc_demux * d, mpc_seek_t fpos, mpc_uint32_t min_bytes) {
|
|||
} else {
|
||||
mpc_seek_t next_pos = fpos >> 3;
|
||||
if (d->si.stream_version == 7)
|
||||
next_pos = ((next_pos - d->si.header_position) & (-1 << 2)) + d->si.header_position;
|
||||
next_pos = ((next_pos - d->si.header_position) & (-1 * (1 << 2))) + d->si.header_position;
|
||||
bit_offset = (int) (fpos - (next_pos << 3));
|
||||
|
||||
mpc_demux_clear_buff(d);
|
||||
|
@ -312,7 +312,7 @@ static mpc_status mpc_demux_ST(mpc_demux * d)
|
|||
for (i = 2; i < file_table_size; i++) {
|
||||
int code = mpc_bits_golomb_dec(&r, 12);
|
||||
if (code & 1)
|
||||
code = -(code & (-1 << 1));
|
||||
code = -(code & (-1 * (1 << 1)));
|
||||
code <<= 2;
|
||||
last[i & 1] = code + 2 * last[(i-1) & 1] - last[i & 1];
|
||||
if ((i & mask) == 0)
|
||||
|
|
|
@ -1084,6 +1084,7 @@ CopyTags_APE ( FILE* fp )
|
|||
|
||||
*/
|
||||
|
||||
#if 0
|
||||
static const char* const parser_strings [] = {
|
||||
"/A_Tx",
|
||||
"/A/Tx",
|
||||
|
@ -1098,6 +1099,7 @@ static const char* const parser_strings [] = {
|
|||
"/A/C N_0x",
|
||||
"/A/C_0x",
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* dst[0] = Artist
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.cogx.lib.mpcdec</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
/* Begin PBXFileReference section */
|
||||
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
833F683F1CDBCAB300AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
83A16EED19F48A2E00842DBC /* huffman.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = huffman.c; path = Files/src/huffman.c; sourceTree = "<group>"; };
|
||||
83A16EEE19F48A2E00842DBC /* mpc_bits_reader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mpc_bits_reader.c; path = Files/src/mpc_bits_reader.c; sourceTree = "<group>"; };
|
||||
83A16EEF19F48A2E00842DBC /* mpc_demux.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mpc_demux.c; path = Files/src/mpc_demux.c; sourceTree = "<group>"; };
|
||||
|
@ -228,7 +229,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MPCDec" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
@ -236,6 +237,7 @@
|
|||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 0867D691FE84028FC02AAC07 /* MPCDec */;
|
||||
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
||||
|
@ -285,6 +287,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1667FE841158C02AAC07 /* English */,
|
||||
833F683F1CDBCAB300AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -309,6 +312,7 @@
|
|||
HEADER_SEARCH_PATHS = Files/include/;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.mpcdec;
|
||||
PRODUCT_NAME = mpcdec;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -330,6 +334,7 @@
|
|||
GCC_PREFIX_HEADER = "";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.mpcdec;
|
||||
PRODUCT_NAME = mpcdec;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -341,6 +346,7 @@
|
|||
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
|
Binary file not shown.
|
@ -34,6 +34,7 @@
|
|||
32F1617814E6BBFC00D6AB2F /* NDKeyboardLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NDKeyboardLayout.h; sourceTree = "<group>"; };
|
||||
32F1617914E6BBFC00D6AB2F /* NDKeyboardLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NDKeyboardLayout.m; sourceTree = "<group>"; };
|
||||
32F1618D14E6BE7300D6AB2F /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
|
||||
833F681D1CDBCAA700AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -150,7 +151,7 @@
|
|||
32F1614C14E6BB3B00D6AB2F /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "dmitry.promsky@gmail.com";
|
||||
};
|
||||
buildConfigurationList = 32F1614F14E6BB3B00D6AB2F /* Build configuration list for PBXProject "NDHotKey" */;
|
||||
|
@ -159,6 +160,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 32F1614A14E6BB3B00D6AB2F;
|
||||
productRefGroup = 32F1615714E6BB3B00D6AB2F /* Products */;
|
||||
|
@ -199,6 +201,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
32F1616314E6BB3B00D6AB2F /* en */,
|
||||
833F681D1CDBCAA700AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -210,16 +213,21 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
|
@ -245,17 +253,21 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
|
@ -281,6 +293,7 @@
|
|||
GCC_PREFIX_HEADER = "NDHotKey/NDHotKey-Prefix.pch";
|
||||
INFOPLIST_FILE = "NDHotKey/NDHotKey-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "ND.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -299,6 +312,7 @@
|
|||
GCC_PREFIX_HEADER = "NDHotKey/NDHotKey-Prefix.pch";
|
||||
INFOPLIST_FILE = "NDHotKey/NDHotKey-Info.plist";
|
||||
INSTALL_PATH = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "ND.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>ND.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -89,17 +89,21 @@ static NSString * describeHashFunction( NSHashTable * aTable, const void * aHotK
|
|||
|
||||
static UInt32 _idForCharacterAndModifer( unichar aCharacter, NSUInteger aModFlags ) { return (UInt32)aCharacter | (UInt32)(aModFlags<<16); }
|
||||
|
||||
#if 0
|
||||
static void _getCharacterAndModiferForId( UInt32 anId, unichar *aCharacter, NSUInteger *aModFlags )
|
||||
{
|
||||
*aModFlags = anId>>16;
|
||||
*aCharacter = anId&0xFFFF;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef NDMapTableClassDefined
|
||||
struct HotKeyMappingEntry
|
||||
{
|
||||
UInt32 hotKeyId;
|
||||
NDHotKeyEvent * hotKeyEvent;
|
||||
};
|
||||
#endif
|
||||
|
||||
+ (BOOL)install
|
||||
{
|
||||
|
@ -115,7 +119,7 @@ struct HotKeyMappingEntry
|
|||
NDHotKeyEventLock;
|
||||
if( theHotKeyEvents != nil && hotKeysEventHandler == NULL )
|
||||
{
|
||||
if( InstallEventHandler( GetEventDispatcherTarget(), NewEventHandlerUPP((EventHandlerProcPtr)eventHandlerCallback), 2, theTypeSpec, theHotKeyEvents, &hotKeysEventHandler ) != noErr )
|
||||
if( InstallEventHandler( GetEventDispatcherTarget(), NewEventHandlerUPP((EventHandlerProcPtr)eventHandlerCallback), 2, theTypeSpec, (__bridge void *)(theHotKeyEvents), &hotKeysEventHandler ) != noErr )
|
||||
NSLog(@"Could not install Event handler");
|
||||
}
|
||||
NDHotKeyEventUnlock;
|
||||
|
@ -268,37 +272,37 @@ struct HotKeyMappingEntry
|
|||
|
||||
+ (id)hotKeyWithEvent:(NSEvent *)anEvent
|
||||
{
|
||||
return [[[self alloc] initWithEvent:anEvent] autorelease];
|
||||
return [[self alloc] initWithEvent:anEvent];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithEvent:(NSEvent *)anEvent target:(id)aTarget selector:(SEL)aSelector
|
||||
{
|
||||
return [[[self alloc] initWithEvent:anEvent target:aTarget selector:aSelector] autorelease];
|
||||
return [[self alloc] initWithEvent:anEvent target:aTarget selector:aSelector];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithKeyCharacter:(unichar)aKeyCharacter modifierFlags:(NSUInteger)aModifierFlags
|
||||
{
|
||||
return [[[self alloc] initWithKeyCharacter:aKeyCharacter modifierFlags:aModifierFlags target:nil selector:(SEL)0] autorelease];
|
||||
return [[self alloc] initWithKeyCharacter:aKeyCharacter modifierFlags:aModifierFlags target:nil selector:(SEL)0];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithKeyCode:(UInt16)aKeyCode modifierFlags:(NSUInteger)aModifierFlags
|
||||
{
|
||||
return [[[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:nil selector:(SEL)0] autorelease];
|
||||
return [[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:nil selector:(SEL)0];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithKeyCharacter:(unichar)aKeyCharacter modifierFlags:(NSUInteger)aModifierFlags target:(id)aTarget selector:(SEL)aSelector
|
||||
{
|
||||
return [[[self alloc] initWithKeyCharacter:aKeyCharacter modifierFlags:aModifierFlags target:aTarget selector:aSelector] autorelease];
|
||||
return [[self alloc] initWithKeyCharacter:aKeyCharacter modifierFlags:aModifierFlags target:aTarget selector:aSelector];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithKeyCode:(UInt16)aKeyCode modifierFlags:(NSUInteger)aModifierFlags target:(id)aTarget selector:(SEL)aSelector
|
||||
{
|
||||
return [[[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:aTarget selector:aSelector] autorelease];
|
||||
return [[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:aTarget selector:aSelector];
|
||||
}
|
||||
|
||||
+ (id)hotKeyWithWithPropertyList:(id)aPropertyList
|
||||
{
|
||||
return [[[self alloc] initWithPropertyList:aPropertyList] autorelease];
|
||||
return [[self alloc] initWithPropertyList:aPropertyList];
|
||||
}
|
||||
|
||||
+ (NSString *)description
|
||||
|
@ -325,7 +329,7 @@ struct HotKeyMappingEntry
|
|||
#pragma mark - creation and destruction
|
||||
- (id)init
|
||||
{
|
||||
[self release];
|
||||
self = nil;
|
||||
NSAssert( NO, @"You can not initialize a Hot Key with the init method" );
|
||||
return nil;
|
||||
}
|
||||
|
@ -373,7 +377,7 @@ struct HotKeyMappingEntry
|
|||
[self addHotKey];
|
||||
}
|
||||
else
|
||||
[self release], self = nil;
|
||||
self = nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
@ -456,7 +460,7 @@ struct HotKeyMappingEntry
|
|||
}
|
||||
}
|
||||
else
|
||||
[self release], self = nil;
|
||||
self = nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
@ -471,52 +475,30 @@ struct HotKeyMappingEntry
|
|||
nil];
|
||||
}
|
||||
|
||||
- (oneway void)release
|
||||
{
|
||||
/*
|
||||
* We need to remove the hot key from the hash table before it's retain count reaches zero
|
||||
*/
|
||||
if( [self retainCount] == 1 )
|
||||
{
|
||||
#ifdef NDMapTableClassDefined
|
||||
NSMapTable * theAllHotKeyEvents = [NDHotKeyEvent allHotKeyEvents];
|
||||
#else
|
||||
NSHashTable * theAllHotKeyEvents = [NDHotKeyEvent allHotKeyEvents];
|
||||
#endif
|
||||
if( theAllHotKeyEvents )
|
||||
{
|
||||
#ifndef NDMapTableClassDefined
|
||||
struct HotKeyMappingEntry theDummyEntry = {[self hotKeyId],nil};
|
||||
#endif
|
||||
NDHotKeyEventLock;
|
||||
if( [self retainCount] == 1 ) // check again because it might have changed
|
||||
{
|
||||
switchHotKey( self, NO );
|
||||
#ifdef NDMapTableClassDefined
|
||||
[theAllHotKeyEvents removeObjectForKey:[NSNumber numberWithUnsignedInt:[self hotKeyId]]];
|
||||
#else
|
||||
id theHotKeyEvent = NSHashGet( theAllHotKeyEvents, (void*)&theDummyEntry );
|
||||
if( theHotKeyEvent )
|
||||
NSHashRemove( theAllHotKeyEvents, theHotKeyEvent );
|
||||
#endif
|
||||
}
|
||||
NDHotKeyEventUnlock;
|
||||
}
|
||||
}
|
||||
[super release];
|
||||
}
|
||||
|
||||
#if 0
|
||||
- (void)dealloc
|
||||
{
|
||||
if( reference )
|
||||
{
|
||||
if( UnregisterEventHotKey( reference ) != noErr ) // in lock from release
|
||||
NSLog( @"Failed to unregister hot key %@", self );
|
||||
}
|
||||
[super dealloc];
|
||||
}
|
||||
#ifdef NDMapTableClassDefined
|
||||
NSMapTable * theAllHotKeyEvents = [NDHotKeyEvent allHotKeyEvents];
|
||||
#else
|
||||
NSHashTable * theAllHotKeyEvents = [NDHotKeyEvent allHotKeyEvents];
|
||||
#endif
|
||||
if( theAllHotKeyEvents )
|
||||
{
|
||||
#ifndef NDMapTableClassDefined
|
||||
struct HotKeyMappingEntry theDummyEntry = {[self hotKeyId],nil};
|
||||
#endif
|
||||
NDHotKeyEventLock;
|
||||
switchHotKey( self, NO );
|
||||
#ifdef NDMapTableClassDefined
|
||||
[theAllHotKeyEvents removeObjectForKey:[NSNumber numberWithUnsignedInt:[self hotKeyId]]];
|
||||
#else
|
||||
id theHotKeyEvent = NSHashGet( theAllHotKeyEvents, (void*)&theDummyEntry );
|
||||
if( theHotKeyEvent )
|
||||
NSHashRemove( theAllHotKeyEvents, theHotKeyEvent );
|
||||
#endif
|
||||
NDHotKeyEventUnlock;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)setEnabled:(BOOL)aFlag
|
||||
{
|
||||
|
@ -581,8 +563,8 @@ struct HotKeyMappingEntry
|
|||
selectorPressed = aSelectorPressed;
|
||||
|
||||
#ifdef NS_BLOCKS_AVAILABLE
|
||||
[releasedBlock release], releasedBlock = nil;
|
||||
[pressedBlock release], pressedBlock = nil;
|
||||
releasedBlock = nil;
|
||||
pressedBlock = nil;
|
||||
#endif
|
||||
|
||||
return theResult; // was change succesful
|
||||
|
@ -596,10 +578,10 @@ struct HotKeyMappingEntry
|
|||
if( ![target respondsToSelector:@selector(targetWillChangeToObject:forHotKeyEvent:)] || [target targetWillChangeToObject:nil forHotKeyEvent:self] )
|
||||
{
|
||||
if( releasedBlock != aReleasedBlock )
|
||||
[releasedBlock release], releasedBlock = [aReleasedBlock copy];
|
||||
releasedBlock = [aReleasedBlock copy];
|
||||
|
||||
if( pressedBlock != aPressedBlock )
|
||||
[pressedBlock release], pressedBlock = [aPressedBlock copy];
|
||||
pressedBlock = [aPressedBlock copy];
|
||||
|
||||
selectorReleased = (SEL)0;
|
||||
selectorPressed = (SEL)0;
|
||||
|
@ -902,7 +884,7 @@ static OSStatus switchHotKey( NDHotKeyEvent * self, BOOL aFlag )
|
|||
*/
|
||||
+ (id)hotKeyWithKeyCode:(UInt16)aKeyCode character:(unichar)aChar modifierFlags:(NSUInteger)aModifierFlags target:(id)aTarget selector:(SEL)aSelector
|
||||
{
|
||||
return [[[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:aTarget selector:aSelector] autorelease];
|
||||
return [[self alloc] initWithKeyCode:aKeyCode modifierFlags:aModifierFlags target:aTarget selector:aSelector];
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -318,8 +318,8 @@ static volatile NDKeyboardLayout * kCurrentKeyboardLayout = nil;
|
|||
static void NDKeyboardLayoutNotificationCallback( CFNotificationCenterRef aCenter, void * self, CFStringRef aName, const void * anObj, CFDictionaryRef aUserInfo )
|
||||
{
|
||||
NSDictionary * theUserInfo = [NSDictionary dictionaryWithObject:kCurrentKeyboardLayout forKey:NDKeyboardLayoutPreviousKeyboardLayoutUserInfoKey];
|
||||
@synchronized(self) { [kCurrentKeyboardLayout release], kCurrentKeyboardLayout = nil; }
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:NDKeyboardLayoutSelectedKeyboardInputSourceChangedNotification object:self userInfo:theUserInfo];
|
||||
@synchronized(self) { kCurrentKeyboardLayout = nil; }
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:NDKeyboardLayoutSelectedKeyboardInputSourceChangedNotification object:(__bridge id _Nullable)(self) userInfo:theUserInfo];
|
||||
}
|
||||
|
||||
+ (void)initialize
|
||||
|
@ -364,22 +364,21 @@ static void NDKeyboardLayoutNotificationCallback( CFNotificationCenterRef aCente
|
|||
|
||||
- (id)init
|
||||
{
|
||||
[self release];
|
||||
return [[NDKeyboardLayout keyboardLayout] retain];
|
||||
return [NDKeyboardLayout keyboardLayout];
|
||||
}
|
||||
|
||||
- (id)initWithLanguage:(NSString *)aLangauge { return [self initWithInputSource:TISCopyInputSourceForLanguage((CFStringRef)aLangauge)]; }
|
||||
- (id)initWithLanguage:(NSString *)aLangauge { return [self initWithInputSource:TISCopyInputSourceForLanguage((__bridge CFStringRef)aLangauge)]; }
|
||||
|
||||
- (id)initWithInputSource:(TISInputSourceRef)aSource
|
||||
{
|
||||
if( (self = [super init]) != nil )
|
||||
{
|
||||
if( aSource != NULL && (keyboardLayoutData = (CFDataRef)CFMakeCollectable(TISGetInputSourceProperty(aSource, kTISPropertyUnicodeKeyLayoutData))) != nil )
|
||||
if( aSource != NULL && (keyboardLayoutData = (CFDataRef)TISGetInputSourceProperty(aSource, kTISPropertyUnicodeKeyLayoutData)) != nil )
|
||||
{
|
||||
CFRetain( keyboardLayoutData );
|
||||
}
|
||||
else
|
||||
self = nil, [self release];
|
||||
self = nil;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -390,7 +389,6 @@ static void NDKeyboardLayoutNotificationCallback( CFNotificationCenterRef aCente
|
|||
free( (void*)mappings );
|
||||
if( keyboardLayoutData != NULL )
|
||||
CFRelease( keyboardLayoutData );
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSString*)stringForCharacter:(unichar)aCharacter modifierFlags:(UInt32)aModifierFlags
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
|
@ -11,7 +11,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.xiph.ogg</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
|
@ -22,9 +22,9 @@
|
|||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.1.4</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Ogg framework 1.1.4, Copyright © 1994-2009 Xiph.Org Foundation</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Ogg framework 1.1.4, Copyright © 1994-2009 Xiph.Org Foundation</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
|
@ -25,6 +25,7 @@
|
|||
730F236509181ABE00AB638C /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ../include/ogg/ogg.h; sourceTree = SOURCE_ROOT; };
|
||||
730F236609181ABE00AB638C /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ../include/ogg/os_types.h; sourceTree = SOURCE_ROOT; };
|
||||
734FB2E50B18B33E00D561D7 /* libogg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libogg.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
833F683C1CDBCAB300AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8D07F2C70486CC7A007CD1D0 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D07F2C80486CC7A007CD1D0 /* Ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
@ -169,13 +170,15 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0730;
|
||||
};
|
||||
buildConfigurationList = 730F235809181A3A00AB638C /* Build configuration list for PBXProject "Ogg" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 0867D691FE84028FC02AAC07 /* Ogg */;
|
||||
productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
|
||||
|
@ -235,6 +238,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1667FE841158C02AAC07 /* English */,
|
||||
833F683C1CDBCAB300AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -245,6 +249,7 @@
|
|||
730F235509181A3A00AB638C /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
|
@ -257,6 +262,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.ogg;
|
||||
PRODUCT_NAME = Ogg;
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
@ -267,8 +273,8 @@
|
|||
730F235609181A3A00AB638C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
|
@ -280,6 +286,7 @@
|
|||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "@loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.ogg;
|
||||
PRODUCT_NAME = Ogg;
|
||||
SDKROOT = macosx;
|
||||
WRAPPER_EXTENSION = framework;
|
||||
|
@ -290,8 +297,10 @@
|
|||
730F235909181A3A00AB638C /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
|
||||
};
|
||||
name = Debug;
|
||||
|
@ -299,10 +308,6 @@
|
|||
730F235A09181A3A00AB638C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
);
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
|
||||
OTHER_CFLAGS = (
|
||||
|
@ -316,6 +321,7 @@
|
|||
734FB2EE0B18B3B900D561D7 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
|
@ -330,6 +336,7 @@
|
|||
734FB2EF0B18B3B900D561D7 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
|
|
Binary file not shown.
|
@ -272,6 +272,7 @@
|
|||
|
||||
/* Begin PBXFileReference section */
|
||||
830F884119C9105E00420FB0 /* Ogg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Ogg.xcodeproj; path = ../Ogg/macosx/Ogg.xcodeproj; sourceTree = "<group>"; };
|
||||
833F68421CDBCABC00AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8375B06217FFEABB0092A79F /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Opus.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8375B06D17FFEABB0092A79F /* Opus-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Opus-Info.plist"; sourceTree = "<group>"; };
|
||||
8375B06F17FFEABB0092A79F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -987,7 +988,7 @@
|
|||
8375B05917FFEABB0092A79F /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Christopher Snowhill";
|
||||
};
|
||||
buildConfigurationList = 8375B05C17FFEABB0092A79F /* Build configuration list for PBXProject "Opus" */;
|
||||
|
@ -996,6 +997,7 @@
|
|||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 8375B05817FFEABB0092A79F;
|
||||
productRefGroup = 8375B06317FFEABB0092A79F /* Products */;
|
||||
|
@ -1215,6 +1217,7 @@
|
|||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8375B06F17FFEABB0092A79F /* en */,
|
||||
833F68421CDBCABC00AFB9F0 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1238,6 +1241,7 @@
|
|||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
|
@ -1279,6 +1283,7 @@
|
|||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = __OPTIMIZE__;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
|
@ -1322,6 +1327,7 @@
|
|||
"-weak_framework",
|
||||
Ogg,
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.libopus;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
@ -1359,6 +1365,7 @@
|
|||
"-weak_framework",
|
||||
Ogg,
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.xiph.libopus;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.xiph.libopus</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -74,19 +74,19 @@ static OPUS_INLINE opus_int32 silk_A2NLSF_eval_poly( /* return the polynomial ev
|
|||
|
||||
if ( opus_likely( 8 == dd ) )
|
||||
{
|
||||
y32 = silk_SMLAWW( p[ 7 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 6 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 5 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 4 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 3 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 2 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 1 ], y32, x_Q16 );
|
||||
y32 = silk_SMLAWW( p[ 0 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 7 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 6 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 5 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 4 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 3 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 2 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 1 ], y32, x_Q16 );
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ 0 ], y32, x_Q16 );
|
||||
}
|
||||
else
|
||||
{
|
||||
for( n = dd - 1; n >= 0; n-- ) {
|
||||
y32 = silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */
|
||||
y32 = (opus_int32) silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */
|
||||
}
|
||||
}
|
||||
return y32;
|
||||
|
|
|
@ -128,14 +128,14 @@ void silk_CNG(
|
|||
ALLOC( CNG_sig_Q10, length + MAX_LPC_ORDER, opus_int32 );
|
||||
|
||||
/* Generate CNG excitation */
|
||||
gain_Q16 = silk_SMULWW( psDec->sPLC.randScale_Q14, psDec->sPLC.prevGain_Q16[1] );
|
||||
gain_Q16 = (opus_int32) silk_SMULWW( psDec->sPLC.randScale_Q14, psDec->sPLC.prevGain_Q16[1] );
|
||||
if( gain_Q16 >= (1 << 21) || psCNG->CNG_smth_Gain_Q16 > (1 << 23) ) {
|
||||
gain_Q16 = silk_SMULTT( gain_Q16, gain_Q16 );
|
||||
gain_Q16 = silk_SUB_LSHIFT32(silk_SMULTT( psCNG->CNG_smth_Gain_Q16, psCNG->CNG_smth_Gain_Q16 ), gain_Q16, 5 );
|
||||
gain_Q16 = silk_LSHIFT32( silk_SQRT_APPROX( gain_Q16 ), 16 );
|
||||
} else {
|
||||
gain_Q16 = silk_SMULWW( gain_Q16, gain_Q16 );
|
||||
gain_Q16 = silk_SUB_LSHIFT32(silk_SMULWW( psCNG->CNG_smth_Gain_Q16, psCNG->CNG_smth_Gain_Q16 ), gain_Q16, 5 );
|
||||
gain_Q16 = (opus_int32) silk_SMULWW( gain_Q16, gain_Q16 );
|
||||
gain_Q16 = (opus_int32) silk_SUB_LSHIFT32(silk_SMULWW( psCNG->CNG_smth_Gain_Q16, psCNG->CNG_smth_Gain_Q16 ), gain_Q16, 5 );
|
||||
gain_Q16 = silk_LSHIFT32( silk_SQRT_APPROX( gain_Q16 ), 8 );
|
||||
}
|
||||
silk_CNG_exc( CNG_sig_Q10 + MAX_LPC_ORDER, psCNG->CNG_exc_buf_Q14, gain_Q16, length, &psCNG->rand_seed );
|
||||
|
@ -149,23 +149,23 @@ void silk_CNG(
|
|||
silk_assert( psDec->LPC_order == 10 || psDec->LPC_order == 16 );
|
||||
/* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */
|
||||
sum_Q6 = silk_RSHIFT( psDec->LPC_order, 1 );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 1 ], A_Q12[ 0 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 2 ], A_Q12[ 1 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 3 ], A_Q12[ 2 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 4 ], A_Q12[ 3 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 5 ], A_Q12[ 4 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 6 ], A_Q12[ 5 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 7 ], A_Q12[ 6 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 8 ], A_Q12[ 7 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 9 ], A_Q12[ 8 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 10 ], A_Q12[ 9 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 1 ], A_Q12[ 0 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 2 ], A_Q12[ 1 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 3 ], A_Q12[ 2 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 4 ], A_Q12[ 3 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 5 ], A_Q12[ 4 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 6 ], A_Q12[ 5 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 7 ], A_Q12[ 6 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 8 ], A_Q12[ 7 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 9 ], A_Q12[ 8 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 10 ], A_Q12[ 9 ] );
|
||||
if( psDec->LPC_order == 16 ) {
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 11 ], A_Q12[ 10 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 12 ], A_Q12[ 11 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 13 ], A_Q12[ 12 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 14 ], A_Q12[ 13 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 15 ], A_Q12[ 14 ] );
|
||||
sum_Q6 = silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 16 ], A_Q12[ 15 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 11 ], A_Q12[ 10 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 12 ], A_Q12[ 11 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 13 ], A_Q12[ 12 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 14 ], A_Q12[ 13 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 15 ], A_Q12[ 14 ] );
|
||||
sum_Q6 = (opus_int32) silk_SMLAWB( sum_Q6, CNG_sig_Q10[ MAX_LPC_ORDER + i - 16 ], A_Q12[ 15 ] );
|
||||
}
|
||||
|
||||
/* Update states */
|
||||
|
|
|
@ -52,7 +52,7 @@ void silk_HP_variable_cutoff(
|
|||
|
||||
/* adjustment based on quality */
|
||||
quality_Q15 = psEncC1->input_quality_bands_Q15[ 0 ];
|
||||
pitch_freq_log_Q7 = silk_SMLAWB( pitch_freq_log_Q7, silk_SMULWB( silk_LSHIFT( -quality_Q15, 2 ), quality_Q15 ),
|
||||
pitch_freq_log_Q7 = (opus_int32) silk_SMLAWB( pitch_freq_log_Q7, silk_SMULWB( silk_LSHIFT( -quality_Q15, 2 ), quality_Q15 ),
|
||||
pitch_freq_log_Q7 - ( silk_lin2log( SILK_FIX_CONST( VARIABLE_HP_MIN_CUTOFF_HZ, 16 ) ) - ( 16 << 7 ) ) );
|
||||
|
||||
/* delta_freq = pitch_freq_log - psEnc->variable_HP_smth1; */
|
||||
|
|
|
@ -88,7 +88,7 @@ static OPUS_INLINE opus_int32 silk_SQRT_APPROX( opus_int32 x )
|
|||
y >>= silk_RSHIFT(lz, 1);
|
||||
|
||||
/* increment using fractional part of input */
|
||||
y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
|
||||
y = (opus_int32) silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
|
||||
|
||||
return y;
|
||||
}
|
||||
|
@ -116,14 +116,14 @@ static OPUS_INLINE opus_int32 silk_DIV32_varQ( /* O returns a good approxim
|
|||
b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) ); /* Q: 29 + 16 - b_headrm */
|
||||
|
||||
/* First approximation */
|
||||
result = silk_SMULWB(a32_nrm, b32_inv); /* Q: 29 + a_headrm - b_headrm */
|
||||
result = (opus_int32) silk_SMULWB(a32_nrm, b32_inv); /* Q: 29 + a_headrm - b_headrm */
|
||||
|
||||
/* Compute residual by subtracting product of denominator and first approximation */
|
||||
/* It's OK to overflow because the final value of a32_nrm should always be small */
|
||||
a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 )); /* Q: a_headrm */
|
||||
|
||||
/* Refinement */
|
||||
result = silk_SMLAWB(result, a32_nrm, b32_inv); /* Q: 29 + a_headrm - b_headrm */
|
||||
result = (opus_int32) silk_SMLAWB(result, a32_nrm, b32_inv); /* Q: 29 + a_headrm - b_headrm */
|
||||
|
||||
/* Convert to Qres domain */
|
||||
lshift = 29 + a_headrm - b_headrm - Qres;
|
||||
|
@ -165,7 +165,7 @@ static OPUS_INLINE opus_int32 silk_INVERSE32_varQ( /* O returns a good appr
|
|||
err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 ); /* Q32 */
|
||||
|
||||
/* Refinement */
|
||||
result = silk_SMLAWW(result, err_Q32, b32_inv); /* Q: 61 - b_headrm */
|
||||
result = (opus_int32) silk_SMLAWW(result, err_Q32, b32_inv); /* Q: 61 - b_headrm */
|
||||
|
||||
/* Convert to Qres domain */
|
||||
lshift = 61 - b_headrm - Qres;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue