Skip to content

Commit d700fa0

Browse files
author
Mischa Spiegelmock
authored
Merge pull request #327 from coast77777777777/master
Init Xcode with Brew dependencies
2 parents 533e554 + a98ba2c commit d700fa0

File tree

7 files changed

+110
-47
lines changed

7 files changed

+110
-47
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,6 @@ m4/lt~obsolete.m4
4747
_sync.bat
4848
_sync.sh
4949
to_sync/
50+
.DS_Store
51+
src/projectM-sdl/build/
52+
src/libprojectM/build/

mac/config.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#define projectm_mac 1
2+
3+

src/libprojectM/libprojectM.xcodeproj/project.pbxproj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@
671671
161789B8207A675B00D3B0C8 /* Project object */ = {
672672
isa = PBXProject;
673673
attributes = {
674-
LastUpgradeCheck = 0920;
674+
LastUpgradeCheck = 1130;
675675
ORGANIZATIONNAME = MVSTG;
676676
TargetAttributes = {
677677
1612C9A3207A855D00862A3A = {
@@ -698,6 +698,7 @@
698698
hasScannedForEncodings = 0;
699699
knownRegions = (
700700
en,
701+
Base,
701702
);
702703
mainGroup = 161789B7207A675B00D3B0C8;
703704
productRefGroup = 161789C1207A675B00D3B0C8 /* Products */;
@@ -884,13 +885,15 @@
884885
CLANG_WARN_BOOL_CONVERSION = YES;
885886
CLANG_WARN_COMMA = YES;
886887
CLANG_WARN_CONSTANT_CONVERSION = YES;
888+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
887889
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
888890
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
889891
CLANG_WARN_EMPTY_BODY = YES;
890892
CLANG_WARN_ENUM_CONVERSION = YES;
891893
CLANG_WARN_INFINITE_RECURSION = YES;
892894
CLANG_WARN_INT_CONVERSION = YES;
893895
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
896+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
894897
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
895898
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
896899
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -921,6 +924,7 @@
921924
GCC_WARN_UNUSED_FUNCTION = YES;
922925
GCC_WARN_UNUSED_VARIABLE = YES;
923926
HEADER_SEARCH_PATHS = (
927+
"$(SRCROOT)/../../mac",
924928
"$(SRCROOT)/../..",
925929
"$(SRCROOT)/Renderer",
926930
"$(SRCROOT)/",
@@ -948,13 +952,15 @@
948952
CLANG_WARN_BOOL_CONVERSION = YES;
949953
CLANG_WARN_COMMA = YES;
950954
CLANG_WARN_CONSTANT_CONVERSION = YES;
955+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
951956
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
952957
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
953958
CLANG_WARN_EMPTY_BODY = YES;
954959
CLANG_WARN_ENUM_CONVERSION = YES;
955960
CLANG_WARN_INFINITE_RECURSION = YES;
956961
CLANG_WARN_INT_CONVERSION = YES;
957962
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
963+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
958964
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
959965
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
960966
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -982,6 +988,7 @@
982988
GCC_WARN_UNUSED_FUNCTION = YES;
983989
GCC_WARN_UNUSED_VARIABLE = YES;
984990
HEADER_SEARCH_PATHS = (
991+
"$(SRCROOT)/../../mac",
985992
"$(SRCROOT)/../..",
986993
"$(SRCROOT)/Renderer",
987994
"$(SRCROOT)/",

src/projectM-sdl/SDLprojectM.xcodeproj/project.pbxproj

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
168F7156211248E4001806E7 /* SDLprojectM in Executable */ = {isa = PBXBuildFile; fileRef = C34521441BF02294001707D2 /* SDLprojectM */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
1717
168F715921124C0E001806E7 /* config.inp in Support files */ = {isa = PBXBuildFile; fileRef = 16B52AAA21105A6900830F34 /* config.inp */; };
1818
168F715A21124C14001806E7 /* fonts in Support files */ = {isa = PBXBuildFile; fileRef = C3D30B8F1BF02BE5009AAACD /* fonts */; };
19-
168F715C21124CDF001806E7 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 166853F02105E2850042793A /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
2019
168F718021126256001806E7 /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 168F717F21126256001806E7 /* AppIcon.icns */; };
2120
C345215C1BF025A9001707D2 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C345215B1BF025A9001707D2 /* OpenGL.framework */; };
2221
C345215E1BF025CF001707D2 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C345215D1BF025CF001707D2 /* CoreFoundation.framework */; };
@@ -121,7 +120,6 @@
121120
dstPath = "";
122121
dstSubfolderSpec = 10;
123122
files = (
124-
168F715C21124CDF001806E7 /* SDL2.framework in Frameworks */,
125123
);
126124
name = Frameworks;
127125
runOnlyForDeploymentPostprocessing = 0;
@@ -140,8 +138,6 @@
140138

141139
/* Begin PBXFileReference section */
142140
1612C98C207A807000862A3A /* libprojectM.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libprojectM.xcodeproj; path = ../libprojectM/libprojectM.xcodeproj; sourceTree = "<group>"; };
143-
166853F02105E2850042793A /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = ../../../../../../Library/Frameworks/SDL2.framework; sourceTree = "<group>"; };
144-
166853F22105E2CF0042793A /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SDL2.framework; sourceTree = "<group>"; };
145141
168F714921120210001806E7 /* projectM SDL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "projectM SDL.app"; sourceTree = BUILT_PRODUCTS_DIR; };
146142
168F714B21120211001806E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
147143
168F717F21126256001806E7 /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = "<group>"; };
@@ -190,7 +186,6 @@
190186
161070CE1F7041B0001905AB /* Frameworks */ = {
191187
isa = PBXGroup;
192188
children = (
193-
166853F22105E2CF0042793A /* SDL2.framework */,
194189
C345215D1BF025CF001707D2 /* CoreFoundation.framework */,
195190
C345215B1BF025A9001707D2 /* OpenGL.framework */,
196191
);
@@ -242,7 +237,6 @@
242237
C345214E1BF022A5001707D2 /* projectM_SDL_main.cpp */,
243238
16B52AAA21105A6900830F34 /* config.inp */,
244239
16B52AA8211054E900830F34 /* projectMSDL-pkg.plist */,
245-
166853F02105E2850042793A /* SDL2.framework */,
246240
1612C98C207A807000862A3A /* libprojectM.xcodeproj */,
247241
C307DFD31D565B57002F6B9E /* presets */,
248242
16A42128207802AF006F30CE /* Dependencies */,
@@ -316,7 +310,7 @@
316310
C345213C1BF02293001707D2 /* Project object */ = {
317311
isa = PBXProject;
318312
attributes = {
319-
LastUpgradeCheck = 0920;
313+
LastUpgradeCheck = 1130;
320314
ORGANIZATIONNAME = int80;
321315
TargetAttributes = {
322316
168F714821120210001806E7 = {
@@ -331,11 +325,11 @@
331325
};
332326
buildConfigurationList = C345213F1BF02293001707D2 /* Build configuration list for PBXProject "SDLprojectM" */;
333327
compatibilityVersion = "Xcode 3.2";
334-
developmentRegion = English;
328+
developmentRegion = en;
335329
hasScannedForEncodings = 0;
336330
knownRegions = (
337-
English,
338331
en,
332+
Base,
339333
);
340334
mainGroup = C345213B1BF02293001707D2;
341335
productRefGroup = C34521451BF02294001707D2 /* Products */;
@@ -535,6 +529,7 @@
535529
C34521491BF02294001707D2 /* Debug */ = {
536530
isa = XCBuildConfiguration;
537531
buildSettings = {
532+
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
538533
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
539534
CLANG_CXX_LIBRARY = "libc++";
540535
CLANG_ENABLE_MODULES = YES;
@@ -543,12 +538,14 @@
543538
CLANG_WARN_BOOL_CONVERSION = YES;
544539
CLANG_WARN_COMMA = YES;
545540
CLANG_WARN_CONSTANT_CONVERSION = YES;
541+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
546542
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
547543
CLANG_WARN_EMPTY_BODY = YES;
548544
CLANG_WARN_ENUM_CONVERSION = YES;
549545
CLANG_WARN_INFINITE_RECURSION = YES;
550546
CLANG_WARN_INT_CONVERSION = YES;
551547
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
548+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
552549
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
553550
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
554551
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -592,6 +589,7 @@
592589
C345214A1BF02294001707D2 /* Release */ = {
593590
isa = XCBuildConfiguration;
594591
buildSettings = {
592+
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
595593
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
596594
CLANG_CXX_LIBRARY = "libc++";
597595
CLANG_ENABLE_MODULES = YES;
@@ -600,12 +598,14 @@
600598
CLANG_WARN_BOOL_CONVERSION = YES;
601599
CLANG_WARN_COMMA = YES;
602600
CLANG_WARN_CONSTANT_CONVERSION = YES;
601+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
603602
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
604603
CLANG_WARN_EMPTY_BODY = YES;
605604
CLANG_WARN_ENUM_CONVERSION = YES;
606605
CLANG_WARN_INFINITE_RECURSION = YES;
607606
CLANG_WARN_INT_CONVERSION = YES;
608607
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
608+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
609609
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
610610
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
611611
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -646,15 +646,22 @@
646646
CODE_SIGN_STYLE = Manual;
647647
DEVELOPMENT_TEAM = "";
648648
GCC_LINK_WITH_DYNAMIC_LIBRARIES = YES;
649+
HEADER_SEARCH_PATHS = (
650+
"$(SRCROOT)/../libprojectM",
651+
/usr/local/include,
652+
"$(SRCROOT)/../../mac",
653+
);
649654
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
650655
LD_RUNPATH_SEARCH_PATHS = "@executable_path/ @loader_path/../Frameworks/ @loader_path/Frameworks/";
651-
OTHER_LDFLAGS = (
652-
"-framework",
653-
SDL2,
656+
LIBRARY_SEARCH_PATHS = (
657+
"$(SRCROOT)/../projectM-iTunes/macos/contrib",
658+
/usr/local/lib,
654659
);
660+
OTHER_LDFLAGS = "-lSDL2";
655661
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
656662
PRODUCT_NAME = "$(TARGET_NAME)";
657663
PROVISIONING_PROFILE_SPECIFIER = "";
664+
SYMROOT = "$(SRCROOT)/build";
658665
};
659666
name = Debug;
660667
};
@@ -665,15 +672,22 @@
665672
CODE_SIGN_STYLE = Manual;
666673
DEVELOPMENT_TEAM = "";
667674
GCC_LINK_WITH_DYNAMIC_LIBRARIES = YES;
675+
HEADER_SEARCH_PATHS = (
676+
"$(SRCROOT)/../libprojectM",
677+
/usr/local/include,
678+
"$(SRCROOT)/../../mac",
679+
);
668680
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
669681
LD_RUNPATH_SEARCH_PATHS = "@executable_path/ @loader_path/../Frameworks/ @loader_path/Frameworks/";
670-
OTHER_LDFLAGS = (
671-
"-framework",
672-
SDL2,
682+
LIBRARY_SEARCH_PATHS = (
683+
"$(SRCROOT)/../projectM-iTunes/macos/contrib",
684+
/usr/local/lib,
673685
);
686+
OTHER_LDFLAGS = "-lSDL2";
674687
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
675688
PRODUCT_NAME = "$(TARGET_NAME)";
676689
PROVISIONING_PROFILE_SPECIFIER = "";
690+
SYMROOT = "$(SRCROOT)/build";
677691
};
678692
name = Release;
679693
};

src/projectM-sdl/pmSDL.cpp

Lines changed: 59 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -75,30 +75,18 @@ SDL_AudioDeviceID projectMSDL::selectAudioInput(int _count) {
7575
return 0;
7676
}
7777

78-
int projectMSDL::openAudioInput() {
79-
// get audio driver name (static)
80-
const char* driver_name = SDL_GetCurrentAudioDriver();
81-
SDL_Log("Using audio driver: %s\n", driver_name);
82-
83-
// get audio input device
84-
unsigned int i, count2 = SDL_GetNumAudioDevices(true); // capture, please
85-
if (count2 == 0) {
86-
SDL_LogCritical(SDL_LOG_CATEGORY_APPLICATION, "No audio capture devices found");
87-
SDL_Quit();
88-
}
89-
for (i = 0; i < count2; i++) {
90-
SDL_Log("Found audio capture device %d: %s", i, SDL_GetAudioDeviceName(i, true));
91-
}
78+
int projectMSDL::toggleAudioInput() {
79+
80+
CurAudioDevice++;
81+
if (CurAudioDevice >= NumAudioDevices)
82+
CurAudioDevice = 0;
83+
selectedAudioDevice = CurAudioDevice;
84+
initAudioInput();
85+
return 1;
86+
}
9287

93-
SDL_AudioDeviceID selectedAudioDevice = 0; // device to open
94-
if (count2 > 1) {
95-
// need to choose which input device to use
96-
selectedAudioDevice = selectAudioInput(count2);
97-
if (selectedAudioDevice > count2) {
98-
SDL_LogCritical(SDL_LOG_CATEGORY_APPLICATION, "No audio input device specified.");
99-
SDL_Quit();
100-
}
101-
}
88+
int projectMSDL::initAudioInput() {
89+
10290

10391
// params for audio input
10492
SDL_AudioSpec want, have;
@@ -128,6 +116,41 @@ int projectMSDL::openAudioInput() {
128116
audioSampleCount = have.samples;
129117
audioFormat = have.format;
130118
audioInputDevice = audioDeviceID;
119+
120+
return 1;
121+
}
122+
123+
int projectMSDL::openAudioInput() {
124+
// get audio driver name (static)
125+
const char* driver_name = SDL_GetCurrentAudioDriver();
126+
SDL_Log("Using audio driver: %s\n", driver_name);
127+
128+
// get audio input device
129+
unsigned int i;
130+
NumAudioDevices = SDL_GetNumAudioDevices(true); // capture, please
131+
132+
CurAudioDevice = 0;
133+
if (NumAudioDevices == 0) {
134+
SDL_LogCritical(SDL_LOG_CATEGORY_APPLICATION, "No audio capture devices found");
135+
SDL_Quit();
136+
}
137+
for (i = 0; i < NumAudioDevices; i++) {
138+
SDL_Log("Found audio capture device %d: %s", i, SDL_GetAudioDeviceName(i, true));
139+
}
140+
141+
// device to open
142+
selectedAudioDevice = 0;
143+
if (NumAudioDevices > 1) {
144+
// need to choose which input device to use
145+
selectedAudioDevice = selectAudioInput(CurAudioDevice);
146+
if (selectedAudioDevice > NumAudioDevices) {
147+
SDL_LogCritical(SDL_LOG_CATEGORY_APPLICATION, "No audio input device specified.");
148+
SDL_Quit();
149+
}
150+
}
151+
152+
initAudioInput();
153+
131154
return 1;
132155
}
133156

@@ -267,6 +290,13 @@ void projectMSDL::keyHandler(SDL_Event *sdl_evt) {
267290
return;
268291
}
269292
break;
293+
case SDLK_i:
294+
if (sdl_mod & KMOD_LGUI || sdl_mod & KMOD_RGUI || sdl_mod & KMOD_LCTRL)
295+
{
296+
toggleAudioInput();
297+
return; // handled
298+
}
299+
break;
270300
case SDLK_s:
271301
if (sdl_mod & KMOD_LGUI || sdl_mod & KMOD_RGUI || sdl_mod & KMOD_LCTRL)
272302
{
@@ -402,12 +432,14 @@ void projectMSDL::pollEvent() {
402432
{
403433
switch (evt.type) {
404434
case SDL_WINDOWEVENT:
435+
int h, w;
436+
SDL_GL_GetDrawableSize(win,&w,&h);
405437
switch (evt.window.event) {
406-
case SDL_WINDOWEVENT_RESIZED:
407-
resize(evt.window.data1, evt.window.data2);
438+
case SDL_WINDOWEVENT_RESIZED:
439+
resize(w, h);
408440
break;
409-
case SDL_WINDOWEVENT_SIZE_CHANGED:
410-
resize(evt.window.data1, evt.window.data2);
441+
case SDL_WINDOWEVENT_SIZE_CHANGED:
442+
resize(w, h);
411443
break;
412444
}
413445
break;

src/projectM-sdl/pmSDL.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,12 @@ class projectMSDL : public projectM {
8888

8989

9090
bool done;
91-
9291
projectMSDL(Settings settings, int flags);
9392
projectMSDL(std::string config_file, int flags);
9493
void init(SDL_Window *window, SDL_GLContext *glCtx, const bool renderToTexture = false);
9594
int openAudioInput();
95+
int toggleAudioInput();
96+
int initAudioInput();
9697
void beginAudioCapture();
9798
void endAudioCapture();
9899
void stretchMonitors();
@@ -120,11 +121,14 @@ class projectMSDL : public projectM {
120121
GLuint textureID = 0;
121122

122123
// audio input device characteristics
124+
unsigned int NumAudioDevices;
125+
unsigned int CurAudioDevice;
123126
unsigned short audioChannelsCount;
124127
unsigned short audioSampleRate;
125128
unsigned short audioSampleCount;
126129
SDL_AudioFormat audioFormat;
127130
SDL_AudioDeviceID audioDeviceID;
131+
SDL_AudioDeviceID selectedAudioDevice;
128132

129133
static void audioInputCallbackF32(void *userdata, unsigned char *stream, int len);
130134
static void audioInputCallbackS16(void *userdata, unsigned char *stream, int len);

0 commit comments

Comments
 (0)