Repository: CocoaHeadsBrasil/MuteUnmuteMic
Branch: master
Commit: 95deb647a6c7
Files: 16
Total size: 30.4 KB
Directory structure:
gitextract_87rlpqzd/
├── .gitignore
├── LICENSE
├── README.md
├── [Un]MuteMic/
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets/
│ │ ├── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── mic_off.imageset/
│ │ │ └── Contents.json
│ │ └── mic_on.imageset/
│ │ └── Contents.json
│ ├── AudioMixer.c
│ ├── AudioMixer.h
│ ├── Base.lproj/
│ │ └── MainMenu.xib
│ ├── Info.plist
│ └── main.m
└── [Un]MuteMic.xcodeproj/
├── project.pbxproj
└── project.xcworkspace/
└── contents.xcworkspacedata
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# OS X Finder
.DS_Store
# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
xcuserdata
*.xccheckout
# Build products
build/
*.o
*.LinkFileList
*.hmap
# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep
# Cocoapods
Pods
# AppCode specific files
.idea/
*.iml
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2016 CocoaHeads Brasil
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
[Un]MuteMic
macOS app to mute & unmute the input volume of your microphone.
Perfect for podcasters.
## Requirements
macOS 10.10 Yosemite or higher version.
## Installation
Download the [latest stable version](https://github.com/CocoaHeadsBrasil/MuteUnmuteMic/releases/download/1.4.2/Un.MuteMic.zip) or clone this repo and build & run.
## Usage
![[Un]MuteMic usage](https://cloud.githubusercontent.com/assets/235208/10419593/143171fc-704a-11e5-8270-374ca898685b.gif)
## Authors
CocoaHeads Brasil: [http://www.cocoaheads.com.br/](http://www.cocoaheads.com.br/)
## License
[The MIT License](https://raw.githubusercontent.com/CocoaHeadsBrasil/MuteUnmuteMic/master/LICENSE)
================================================
FILE: [Un]MuteMic/AppDelegate.h
================================================
//
// AppDelegate.h
// MuteUnmuteMic
//
// Copyright © 2015 CocoaHeads Brasil. All rights reserved.
//
#import
@interface AppDelegate : NSObject
@property (weak, nonatomic) IBOutlet NSMenu *menu;
@end
================================================
FILE: [Un]MuteMic/AppDelegate.m
================================================
//
// AppDelegate.m
// MuteUnmuteMic
//
// Copyright © 2015 CocoaHeads Brasil. All rights reserved.
//
#import "AppDelegate.h"
#import "AudioMixer.h"
static NSInteger const kDefaultVolume = 70;
@interface AppDelegate ()
@property (nonatomic) NSStatusItem *menuItem;
@property (nonatomic) BOOL muted;
@property (nonatomic) NSInteger inputVolumeToUnmute;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self initDefaults];
[self configureStatusBar];
[self updateInputVolume];
}
- (void)initDefaults
{
_muted = IsHardwareMuted();
_inputVolumeToUnmute = kDefaultVolume;
}
- (void)configureStatusBar
{
NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
NSStatusItem *menuItem =
[statusBar statusItemWithLength:NSVariableStatusItemLength];
[menuItem setToolTip:@"[Un]MuteMic by CocoaHeads Brazil"];
[menuItem setImage:[NSImage imageNamed:@"mic_on"]];
[menuItem setHighlightMode:YES];
[menuItem setTarget:self];
[menuItem setAction:@selector(menuItemClicked:)];
[menuItem.button sendActionOn:NSLeftMouseUpMask|NSRightMouseUpMask];
self.menuItem = menuItem;
}
- (void)menuItemClicked:(id)sender
{
NSEvent *event = [[NSApplication sharedApplication] currentEvent];
if ((event.modifierFlags & NSControlKeyMask) || (event.type == NSRightMouseUp)) {
[self showMenu];
} else {
[self toggleMute];
}
}
- (void)toggleMute
{
self.muted = !self.muted;
[self updateInputVolume];
}
- (void)updateInputVolume
{
BOOL muted = self.muted;
NSInteger volume;
NSString *imageName;
if (muted) {
volume = 0;
imageName = @"mic_off";
} else {
volume = self.inputVolumeToUnmute;
imageName = @"mic_on";
}
// set volume
NSString *source =
[NSString stringWithFormat:@"set volume input volume %ld", (long)volume];
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:source];
NSDictionary *errorInfo = nil;
[script executeAndReturnError:&errorInfo];
if (errorInfo) {
NSLog(@"Error on script %@", errorInfo);
}
// set hardware mute
SetHardwareMute(muted);
// set image
self.menuItem.image = [NSImage imageNamed:imageName];
}
- (void)showMenu
{
[self.menuItem popUpStatusItemMenu:self.menu];
}
- (IBAction)didSetVolumeInput:(NSMenuItem *)sender
{
for (NSMenuItem *item in sender.menu.itemArray) {
item.state = 0;
}
sender.state = 1;
self.inputVolumeToUnmute = [sender.title integerValue];
[self updateInputVolume];
}
@end
================================================
FILE: [Un]MuteMic/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "128.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "128x128",
"filename" : "256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "256.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "256x256",
"filename" : "512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: [Un]MuteMic/Assets.xcassets/Contents.json
================================================
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: [Un]MuteMic/Assets.xcassets/mic_off.imageset/Contents.json
================================================
{
"images" : [
{
"idiom" : "mac",
"filename" : "mic_off.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"filename" : "mic_off@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}
================================================
FILE: [Un]MuteMic/Assets.xcassets/mic_on.imageset/Contents.json
================================================
{
"images" : [
{
"idiom" : "mac",
"filename" : "mic_on.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"filename" : "mic_on@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}
================================================
FILE: [Un]MuteMic/AudioMixer.c
================================================
//
// AudioMixer.c
// MuteUnmuteMic
//
// Created by Diogo Tridapalli on 10/5/15.
// Copyright © 2015 CocoaHeads Brasil. All rights reserved.
//
#include "AudioMixer.h"
Boolean GetDefaultInputAudioDevice(AudioDeviceID *defaultInputDeviceID)
{
UInt32 thePropSize = sizeof(AudioDeviceID);
AudioObjectPropertyAddress thePropertyAddress =
{ kAudioHardwarePropertyDefaultInputDevice,
kAudioObjectPropertyScopeGlobal,
kAudioObjectPropertyElementMaster };
OSStatus errorCode =
AudioObjectGetPropertyData(kAudioObjectSystemObject,
&thePropertyAddress,
0,
NULL,
&thePropSize,
defaultInputDeviceID);
if (errorCode) {
printf("Error in GetDefaultInputAudioDevice: %d\n", errorCode);
}
return errorCode == 0;
}
Boolean GetAudioDeviceName(const AudioDeviceID deviceID,
CFStringRef *deviceName)
{
UInt32 thePropSize = sizeof(CFStringRef);
AudioObjectPropertyAddress thePropertyAddress =
{ kAudioObjectPropertyName,
kAudioObjectPropertyScopeGlobal,
kAudioObjectPropertyElementMaster };
OSStatus errorCode =
AudioObjectGetPropertyData(deviceID,
&thePropertyAddress,
0,
NULL,
&thePropSize,
deviceName);
if (errorCode) {
printf("Error in GetAudioDeviceName: %d\n", errorCode);
}
return errorCode == 0;
}
Boolean GetMuteOnInputAudioDevice(const AudioDeviceID inputDeviceID,
Boolean *isMuted)
{
AudioObjectPropertyAddress thePropertyAddress =
{ kAudioDevicePropertyMute,
kAudioDevicePropertyScopeInput,
kAudioObjectPropertyElementMaster };
UInt32 mute = 0;
UInt32 thePropSize = sizeof(mute);
OSStatus errorCode;
if (AudioObjectHasProperty(inputDeviceID, &thePropertyAddress)) {
errorCode = AudioObjectGetPropertyData(inputDeviceID,
&thePropertyAddress,
0,
NULL,
&thePropSize,
&mute);
if (errorCode) {
printf("Error in GetMuteOnInputAudioDevice: %d\n", errorCode);
}
*isMuted = mute > 0;
return errorCode == 0;
} else {
printf("Error in GetMuteOnInputAudioDevice: mute not supported\n");
return false;
}
}
Boolean SetMuteOnInputAudioDevice(const AudioDeviceID inputDeviceID,
const Boolean mute)
{
AudioObjectPropertyAddress thePropertyAddress =
{ kAudioDevicePropertyMute,
kAudioDevicePropertyScopeInput,
kAudioObjectPropertyElementMaster };
UInt32 theMute = mute;
UInt32 thePropSize = sizeof(theMute);
const char *inputDeviceString;
CFStringRef inputDeviceName;
if (GetAudioDeviceName(inputDeviceID, &inputDeviceName)) {
inputDeviceString =
CFStringGetCStringPtr(inputDeviceName, CFStringGetSystemEncoding());
CFRelease(inputDeviceName);
} else {
inputDeviceString = "";
}
Boolean setMute = true;
if (AudioObjectHasProperty(inputDeviceID, &thePropertyAddress)) {
printf("\tSetting %s mute %s\n", inputDeviceString, (theMute) ? "on" : "off");
OSStatus errorCode = AudioObjectSetPropertyData(inputDeviceID,
&thePropertyAddress,
0,
NULL,
thePropSize,
&theMute);
if (errorCode) {
printf("Error in SetMuteOnInputAudioDevice: %d\n", errorCode);
setMute = false;
}
} else {
printf("Error in SetMuteOnInputAudioDevice: mute not supported\n");
setMute = false;
}
return setMute;
}
Boolean IsHardwareMuted()
{
AudioDeviceID theDefaultInputDeviceID;
Boolean isMuted = false;
if (GetDefaultInputAudioDevice(&theDefaultInputDeviceID)) {
GetMuteOnInputAudioDevice(theDefaultInputDeviceID, &isMuted);
}
return isMuted;
}
void SetHardwareMute(Boolean theMute)
{
AudioDeviceID theDefaultInputDeviceID;
if (GetDefaultInputAudioDevice(&theDefaultInputDeviceID)) {
SetMuteOnInputAudioDevice(theDefaultInputDeviceID, theMute);
}
}
================================================
FILE: [Un]MuteMic/AudioMixer.h
================================================
//
// AudioMixer.h
// MuteUnmuteMic
//
// Created by Diogo Tridapalli on 10/5/15.
// Copyright © 2015 CocoaHeads Brasil. All rights reserved.
//
#ifndef AudioMixer_h
#define AudioMixer_h
#import
/**
* Get device id for the default input device
*
* @param defaultInputDeviceID AudioDeviceID pointer
*
* @return @a true if success @a false otherwise
*/
extern Boolean GetDefaultInputAudioDevice(AudioDeviceID *defaultInputDeviceID);
/**
* Get the name of an audio device
*
* @param deviceID AudioDeviceID
* @param deviceName CFStringRef reference, must be release after use
*
* @return @a true if success @a false otherwise
*/
extern Boolean GetAudioDeviceName(const AudioDeviceID deviceID,
CFStringRef *deviceName);
/**
* Get mute state on input device
*
* @param inputDeviceID AudioDeviceID
* @param isMuted @a true if device is muted @a false otherwise
*
* @return @a true if success @a false otherwise
*/
extern Boolean GetMuteOnInputAudioDevice(const AudioDeviceID inputDeviceID,
Boolean *isMuted);
/**
* Mute or unmute an inpute device
*
* @param inputDeviceID AudioDeviceID
* @param mute @a true if device should be muted @a false otherwise
*
* @return @a true if success @a false otherwise
*/
extern Boolean SetMuteOnInputAudioDevice(const AudioDeviceID inputDeviceID,
const Boolean mute);
/**
* Get the mute state of default input via HAL
*
* @return @a true if is muted @a false otherwise
*/
extern Boolean IsHardwareMuted();
/**
* Set the mute state of default input via HAL
*
* @param theMute @a true if should be muted @a false otherwise
*/
extern void SetHardwareMute(Boolean theMute);
#endif /* AudioMixer_h */
================================================
FILE: [Un]MuteMic/Base.lproj/MainMenu.xib
================================================
================================================
FILE: [Un]MuteMic/Info.plist
================================================
CFBundleDevelopmentRegion
en
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIconFile
CFBundleIdentifier
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
6.0
CFBundleName
$(PRODUCT_NAME)
CFBundlePackageType
APPL
CFBundleShortVersionString
1.4.2
CFBundleSignature
????
CFBundleVersion
5
LSApplicationCategoryType
public.app-category.utilities
LSMinimumSystemVersion
$(MACOSX_DEPLOYMENT_TARGET)
LSUIElement
NSHumanReadableCopyright
Copyright © 2015 CocoaHeads Brasil. All rights reserved.
NSMainNibFile
MainMenu
NSPrincipalClass
NSApplication
================================================
FILE: [Un]MuteMic/main.m
================================================
#import
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}
================================================
FILE: [Un]MuteMic.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
D9A9F66F1BC35EDC004395E8 /* AudioMixer.c in Sources */ = {isa = PBXBuildFile; fileRef = D9A9F66D1BC35EDC004395E8 /* AudioMixer.c */; };
ECF208BE1BAF2DE6000D3C2C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF208BD1BAF2DE6000D3C2C /* AppDelegate.m */; };
ECF208C11BAF2DE6000D3C2C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF208C01BAF2DE6000D3C2C /* main.m */; };
ECF208C31BAF2DE6000D3C2C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECF208C21BAF2DE6000D3C2C /* Assets.xcassets */; };
ECF208C61BAF2DE6000D3C2C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = ECF208C41BAF2DE6000D3C2C /* MainMenu.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
D9A9F66D1BC35EDC004395E8 /* AudioMixer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AudioMixer.c; path = "[Un]MuteMic/AudioMixer.c"; sourceTree = ""; };
D9A9F66E1BC35EDC004395E8 /* AudioMixer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioMixer.h; path = "[Un]MuteMic/AudioMixer.h"; sourceTree = ""; };
ECF208B91BAF2DE6000D3C2C /* [Un]MuteMic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "[Un]MuteMic.app"; sourceTree = BUILT_PRODUCTS_DIR; };
ECF208BC1BAF2DE6000D3C2C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
ECF208BD1BAF2DE6000D3C2C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
ECF208C01BAF2DE6000D3C2C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
ECF208C21BAF2DE6000D3C2C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
ECF208C51BAF2DE6000D3C2C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
ECF208C71BAF2DE6000D3C2C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
ECF208B61BAF2DE6000D3C2C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
D9A9F6701BC5830F004395E8 /* AudioMixer */ = {
isa = PBXGroup;
children = (
D9A9F66D1BC35EDC004395E8 /* AudioMixer.c */,
D9A9F66E1BC35EDC004395E8 /* AudioMixer.h */,
);
name = AudioMixer;
path = ..;
sourceTree = "";
};
ECF208B01BAF2DE6000D3C2C = {
isa = PBXGroup;
children = (
ECF208BB1BAF2DE6000D3C2C /* [Un]MuteMic */,
ECF208BA1BAF2DE6000D3C2C /* Products */,
);
sourceTree = "";
};
ECF208BA1BAF2DE6000D3C2C /* Products */ = {
isa = PBXGroup;
children = (
ECF208B91BAF2DE6000D3C2C /* [Un]MuteMic.app */,
);
name = Products;
sourceTree = "";
};
ECF208BB1BAF2DE6000D3C2C /* [Un]MuteMic */ = {
isa = PBXGroup;
children = (
ECF208BC1BAF2DE6000D3C2C /* AppDelegate.h */,
ECF208BD1BAF2DE6000D3C2C /* AppDelegate.m */,
ECF208C21BAF2DE6000D3C2C /* Assets.xcassets */,
ECF208C41BAF2DE6000D3C2C /* MainMenu.xib */,
ECF208C71BAF2DE6000D3C2C /* Info.plist */,
ECF208BF1BAF2DE6000D3C2C /* Supporting Files */,
D9A9F6701BC5830F004395E8 /* AudioMixer */,
);
path = "[Un]MuteMic";
sourceTree = "";
};
ECF208BF1BAF2DE6000D3C2C /* Supporting Files */ = {
isa = PBXGroup;
children = (
ECF208C01BAF2DE6000D3C2C /* main.m */,
);
name = "Supporting Files";
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
ECF208B81BAF2DE6000D3C2C /* [Un]MuteMic */ = {
isa = PBXNativeTarget;
buildConfigurationList = ECF208CA1BAF2DE6000D3C2C /* Build configuration list for PBXNativeTarget "[Un]MuteMic" */;
buildPhases = (
ECF208B51BAF2DE6000D3C2C /* Sources */,
ECF208B61BAF2DE6000D3C2C /* Frameworks */,
ECF208B71BAF2DE6000D3C2C /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "[Un]MuteMic";
productName = MuteUnmuteMic;
productReference = ECF208B91BAF2DE6000D3C2C /* [Un]MuteMic.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
ECF208B11BAF2DE6000D3C2C /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0700;
ORGANIZATIONNAME = "CocoaHeads Brasil";
TargetAttributes = {
ECF208B81BAF2DE6000D3C2C = {
CreatedOnToolsVersion = 7.0;
};
};
};
buildConfigurationList = ECF208B41BAF2DE6000D3C2C /* Build configuration list for PBXProject "[Un]MuteMic" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = ECF208B01BAF2DE6000D3C2C;
productRefGroup = ECF208BA1BAF2DE6000D3C2C /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
ECF208B81BAF2DE6000D3C2C /* [Un]MuteMic */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
ECF208B71BAF2DE6000D3C2C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
ECF208C31BAF2DE6000D3C2C /* Assets.xcassets in Resources */,
ECF208C61BAF2DE6000D3C2C /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
ECF208B51BAF2DE6000D3C2C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
ECF208C11BAF2DE6000D3C2C /* main.m in Sources */,
ECF208BE1BAF2DE6000D3C2C /* AppDelegate.m in Sources */,
D9A9F66F1BC35EDC004395E8 /* AudioMixer.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
ECF208C41BAF2DE6000D3C2C /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
ECF208C51BAF2DE6000D3C2C /* Base */,
);
name = MainMenu.xib;
sourceTree = "";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
ECF208C81BAF2DE6000D3C2C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
ECF208C91BAF2DE6000D3C2C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
ECF208CB1BAF2DE6000D3C2C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "[Un]MuteMic/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = br.com.cocoaheads.MuteUnmuteMic;
PRODUCT_NAME = "[Un]MuteMic";
};
name = Debug;
};
ECF208CC1BAF2DE6000D3C2C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "[Un]MuteMic/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = br.com.cocoaheads.MuteUnmuteMic;
PRODUCT_NAME = "[Un]MuteMic";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
ECF208B41BAF2DE6000D3C2C /* Build configuration list for PBXProject "[Un]MuteMic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
ECF208C81BAF2DE6000D3C2C /* Debug */,
ECF208C91BAF2DE6000D3C2C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
ECF208CA1BAF2DE6000D3C2C /* Build configuration list for PBXNativeTarget "[Un]MuteMic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
ECF208CB1BAF2DE6000D3C2C /* Debug */,
ECF208CC1BAF2DE6000D3C2C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = ECF208B11BAF2DE6000D3C2C /* Project object */;
}
================================================
FILE: [Un]MuteMic.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================