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