Skip to content

Commit 019f00f

Browse files
committed
itunes plugin works again
1 parent f2d5187 commit 019f00f

File tree

4 files changed

+48
-29
lines changed

4 files changed

+48
-29
lines changed

src/projectM-iTunes/iprojectM.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ struct VisualPluginData
130130

131131
Boolean playing; // is iTunes currently playing audio?
132132
Boolean padding[3];
133+
134+
Boolean readyToDraw;
133135

134136
time_t drawInfoTimeOut; // when should we stop showing info/artwork?
135137

src/projectM-iTunes/iprojectM.mm

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void initProjectM( VisualPluginData * visualPluginData ) {
1919
settings.textureSize = 2048; // idk?
2020
settings.windowWidth = 1920;
2121
settings.windowHeight = 1280;
22-
settings.smoothPresetDuration = 3; // seconds
22+
settings.smoothPresetDuration = 1; // seconds
2323
settings.presetDuration = 5; // seconds
2424
settings.beatSensitivity = 0.8;
2525
settings.aspectCorrection = 1;
@@ -35,11 +35,9 @@ void initProjectM( VisualPluginData * visualPluginData ) {
3535
NSLog(@"GL_SHADING_LANGUAGE_VERSION: %s", glGetString(GL_SHADING_LANGUAGE_VERSION));
3636
NSLog(@"GL_VENDOR: %s", glGetString(GL_VENDOR));
3737

38-
NSLog(@"opening config");
39-
4038
// use config file
4139
projectM *pm = new projectM(cfg_path);
42-
40+
4341
visualPluginData->pm = pm;
4442

4543
pm->selectRandom(true);

src/projectM-iTunes/iprojectM_mac.mm

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,9 @@ void DrawVisual( VisualPluginData * visualPluginData )
4141
{
4242
CGPoint where;
4343

44-
#if USE_SUBVIEW
4544
VISUAL_PLATFORM_VIEW drawView = visualPluginData->subview;
46-
47-
if ( drawView == NULL )
48-
return;
49-
50-
[[drawView openGLContext] makeCurrentContext];
51-
#endif
52-
if (visualPluginData->pm == NULL) {
53-
initProjectM(visualPluginData);
54-
55-
// correctly size it
56-
ResizeVisual(visualPluginData);
57-
}
45+
if (!visualPluginData->readyToDraw)
46+
return;
5847

5948
glClearColor( 0.0, 0.5, 0.0, 0.0 );
6049
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -63,8 +52,8 @@ void DrawVisual( VisualPluginData * visualPluginData )
6352
visualPluginData->pm->renderFrame();
6453
//renderProjectMTexture(visualPluginData);
6554

66-
[[drawView openGLContext] flushBuffer];
67-
// glFlush();
55+
// [[drawView openGLContext] flushBuffer];
56+
glFlush();
6857

6958
return;
7059

@@ -149,6 +138,7 @@ OSStatus ActivateVisual( VisualPluginData * visualPluginData, VISUAL_PLATFORM_VI
149138
visualPluginData->destView = destView;
150139
visualPluginData->destRect = [destView bounds];
151140
visualPluginData->destOptions = options;
141+
visualPluginData->readyToDraw = false;
152142

153143
UpdateInfoTimeOut( visualPluginData );
154144

@@ -169,7 +159,20 @@ OSStatus ActivateVisual( VisualPluginData * visualPluginData, VISUAL_PLATFORM_VI
169159
status = memFullErr;
170160
}
171161

162+
163+
[[visualPluginData->subview openGLContext] makeCurrentContext];
164+
165+
172166
#endif
167+
NSLog(@"activate visual");
168+
if (visualPluginData->pm == NULL) {
169+
initProjectM(visualPluginData);
170+
171+
// correctly size it
172+
ResizeVisual(visualPluginData);
173+
}
174+
175+
NSLog(@"activated visual");
173176

174177
return status;
175178
}
@@ -203,7 +206,8 @@ OSStatus DeactivateVisual( VisualPluginData * visualPluginData )
203206
visualPluginData->destView = NULL;
204207
visualPluginData->destRect = CGRectNull;
205208
visualPluginData->drawInfoTimeOut = 0;
206-
209+
visualPluginData->readyToDraw = false;
210+
207211
if (visualPluginData->pm != NULL) {
208212
delete(visualPluginData->pm);
209213
visualPluginData->pm = NULL;
@@ -218,10 +222,13 @@ OSStatus DeactivateVisual( VisualPluginData * visualPluginData )
218222
//
219223
OSStatus ResizeVisual( VisualPluginData * visualPluginData )
220224
{
221-
visualPluginData->destRect = [visualPluginData->destView bounds];
225+
visualPluginData->destRect = [visualPluginData->subview bounds];
222226

223227
if (visualPluginData->pm != NULL) {
224228
visualPluginData->pm->projectM_resetGL(visualPluginData->destRect.size.width, visualPluginData->destRect.size.height);
229+
NSLog(@"resized to %@ %@", [NSNumber numberWithDouble: visualPluginData->destRect.size.width], [NSNumber numberWithDouble: visualPluginData->destRect.size.height]);
230+
231+
visualPluginData->readyToDraw = true;
225232
}
226233

227234
return noErr;
@@ -259,15 +266,27 @@ - (id)initWithFrame:(NSRect)frame
259266
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
260267
// NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion4_1Core,
261268
NSOpenGLPFAColorSize , 24 ,
262-
NSOpenGLPFAAlphaSize , 8 ,
263-
NSOpenGLPFADoubleBuffer ,
269+
// NSOpenGLPFAAlphaSize , 8 ,
270+
// NSOpenGLPFADoubleBuffer ,
264271
NSOpenGLPFAAccelerated ,
265272
NSOpenGLPFANoRecovery ,
266273
0
267274
};
268275
NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes];
276+
if (pixelFormat == nil)
277+
{
278+
NSLog(@"Unable to create pixel format.");
279+
return self;
280+
}
269281
self = [super initWithFrame:frame pixelFormat:pixelFormat];
270-
282+
if (self == nil)
283+
{
284+
NSLog(@"Unable to create an OpenGL context.");
285+
return self;
286+
}
287+
288+
NSLog(@"super initWithFrame called");
289+
271290
return self;
272291
}
273292

@@ -383,7 +402,7 @@ void GetVisualName( ITUniStr255 name )
383402
//
384403
OptionBits GetVisualOptions( void )
385404
{
386-
OptionBits options = (kVisualSupportsMuxedGraphics | kVisualWantsIdleMessages);
405+
OptionBits options = (kVisualUsesOnly3D | kVisualWantsIdleMessages);
387406

388407
#if USE_SUBVIEW
389408
options |= kVisualUsesSubview;

src/projectM-iTunes/projectM Visualizer.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
C37EBD3B19A0112900220265 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C37EBD3A19A0112900220265 /* AppDelegate.m */; };
2424
C37EBD3E19A0112900220265 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD3C19A0112900220265 /* MainMenu.xib */; };
2525
C37EBD4019A0112900220265 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD3F19A0112900220265 /* Images.xcassets */; };
26-
C37EBD5B19A0118600220265 /* iProjectM.pkg in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD5A19A0118600220265 /* iProjectM.pkg */; };
26+
C37EBD5B19A0118600220265 /* iTunes Visualizer.pkg in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD5A19A0118600220265 /* iTunes Visualizer.pkg */; };
2727
C37EBD5D19A0146F00220265 /* images in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD5C19A0146F00220265 /* images */; };
2828
C37EBD5F19A0164400220265 /* selectViz.png in Resources */ = {isa = PBXBuildFile; fileRef = C37EBD5E19A0164400220265 /* selectViz.png */; };
2929
C38E8C881B1A12540029901E /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = C38E8C871B1A12540029901E /* Preferences.xib */; };
@@ -139,7 +139,7 @@
139139
C37EBD3D19A0112900220265 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
140140
C37EBD3F19A0112900220265 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
141141
C37EBD4619A0112900220265 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
142-
C37EBD5A19A0118600220265 /* iProjectM.pkg */ = {isa = PBXFileReference; lastKnownFileType = text; path = iProjectM.pkg; sourceTree = "<group>"; };
142+
C37EBD5A19A0118600220265 /* iTunes Visualizer.pkg */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunes Visualizer.pkg"; sourceTree = "<group>"; };
143143
C37EBD5C19A0146F00220265 /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; name = images; path = ../images; sourceTree = "<group>"; };
144144
C37EBD5E19A0164400220265 /* selectViz.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = selectViz.png; path = images/selectViz.png; sourceTree = "<group>"; };
145145
C37EBD6019A01BEE00220265 /* projectM Visualizer.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "projectM Visualizer.entitlements"; sourceTree = "<group>"; };
@@ -250,7 +250,7 @@
250250
168F716121125D85001806E7 /* libprojectM.xcodeproj */,
251251
C38212791A5A2114002A8D78 /* gles_conv.txt */,
252252
C37EBD5E19A0164400220265 /* selectViz.png */,
253-
C37EBD5A19A0118600220265 /* iProjectM.pkg */,
253+
C37EBD5A19A0118600220265 /* iTunes Visualizer.pkg */,
254254
C34E81191956D0C3001AC5B5 /* contrib */,
255255
C3FAF97A17B8A44100F4B110 /* share */,
256256
C3FAE5A417B88C5B00F4B110 /* libprojectM */,
@@ -476,7 +476,7 @@
476476
C37EBD4019A0112900220265 /* Images.xcassets in Resources */,
477477
C37EBD3819A0112900220265 /* Credits.rtf in Resources */,
478478
C37EBD3E19A0112900220265 /* MainMenu.xib in Resources */,
479-
C37EBD5B19A0118600220265 /* iProjectM.pkg in Resources */,
479+
C37EBD5B19A0118600220265 /* iTunes Visualizer.pkg in Resources */,
480480
);
481481
runOnlyForDeploymentPostprocessing = 0;
482482
};

0 commit comments

Comments
 (0)