pidgin/plugins/crazychat/QTUtilities.c

Sun, 09 Nov 2008 20:55:10 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Sun, 09 Nov 2008 20:55:10 +0000
branch
maiku.vv
changeset 26159
24ffae1874f1
parent 15435
4b933b06d75e
child 16238
33bf2fd32108
child 18068
b6554e3c8224
child 20478
46933dc62880
child 31294
73607ab89c6f
permissions
-rw-r--r--

Added menu items to buddy list context menu to start voice and video sessions
After discussing the matter with Maiku, we decided to have two choises.
"Audio call" which will show up if audio sessions is possible with a buddy and
the other item is either "Audio/Video" or "Video" depending on if the buddy
supports both at the same time or not

11218
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
1 /*
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
2 File: QTUtilities.c
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
3
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
4 Description: Miscellaneous QuickTime utility routines.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
5
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
6 Copyright: © Copyright 2003 Apple Computer, Inc. All rights reserved.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
7
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
8 Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
9 ("Apple") in consideration of your agreement to the following terms, and your
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
10 use, installation, modification or redistribution of this Apple software
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
11 constitutes acceptance of these terms. If you do not agree with these terms,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
12 please do not use, install, modify or redistribute this Apple software.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
13
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
14 In consideration of your agreement to abide by the following terms, and subject
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
15 to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
16 copyrights in this original Apple software (the "Apple Software"), to use,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
17 reproduce, modify and redistribute the Apple Software, with or without
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
18 modifications, in source and/or binary forms; provided that if you redistribute
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
19 the Apple Software in its entirety and without modifications, you must retain
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
20 this notice and the following text and disclaimers in all such redistributions of
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
21 the Apple Software. Neither the name, trademarks, service marks or logos of
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
22 Apple Computer, Inc. may be used to endorse or promote products derived from the
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
23 Apple Software without specific prior written permission from Apple. Except as
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
24 expressly stated in this notice, no other rights or licenses, express or implied,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
25 are granted by Apple herein, including but not limited to any patent rights that
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
26 may be infringed by your derivative works or by other works in which the Apple
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
27 Software may be incorporated.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
28
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
29 The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
30 WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
31 WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
32 PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
33 COMBINATION WITH YOUR PRODUCTS.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
34
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
35 IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
36 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
37 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
38 ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
39 OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
40 (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
41 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
42
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
43 Change History (most recent first):
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
44
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
45 */
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
46
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
47 #include "QTUtilities.h"
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
48 #include "Utilities.h"
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
49
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
50 #define BailErr(x) {if (x != noErr) goto bail;}
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
51
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
52 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
53 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
54 // GetMovieFromFile
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
55 // Opens a movie file, then creates a new movie for the file
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
56 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
57 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
58
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
59 OSErr GetMovieFromFile(FSSpec *fsspecPtr, Movie *theMovie)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
60 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
61 short resRefNum = -1;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
62 OSErr result;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
63
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
64 *theMovie = NULL;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
65
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
66 result = OpenMovieFile(fsspecPtr, &resRefNum, 0);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
67 if (result == noErr)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
68 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
69 short actualResId = DoTheRightThing;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
70
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
71 result = NewMovieFromFile(theMovie,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
72 resRefNum,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
73 &actualResId,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
74 (unsigned char *) 0,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
75 0,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
76 (Boolean *) 0);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
77 CloseMovieFile(resRefNum);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
78 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
79
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
80 return result;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
81 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
82
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
83 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
84 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
85 // GetAMovieFile
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
86 // Prompt the user for a movie file, then open
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
87 // the file and create a movie for it.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
88 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
89 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
90
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
91 OSErr GetAMovieFile(Movie *theMovie)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
92 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
93 OSType myTypeList[2] = {kQTFileTypeMovie, kQTFileTypeQuickTimeImage};
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
94 FSSpec theFSSpec;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
95 OSErr result = noErr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
96
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
97 *theMovie = nil;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
98
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
99 result = GetOneFileWithPreview(2, myTypeList, &theFSSpec, NULL);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
100 if (result != userCanceledErr)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
101 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
102 result = GetMovieFromFile(&theFSSpec, theMovie);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
103 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
104
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
105 return result;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
106 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
107
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
108 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
109 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
110 // NormalizeMovieRect
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
111 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
112 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
113
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
114 void NormalizeMovieRect(Movie theMovie)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
115 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
116 Rect movieBounds;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
117
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
118 GetMovieBox(theMovie, &movieBounds);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
119 OffsetRect(&movieBounds, -movieBounds.left, -movieBounds.top);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
120 movieBounds.right = movieBounds.left + 640;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
121 movieBounds.bottom = movieBounds.top + 480;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
122 SetMovieBox(theMovie, &movieBounds);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
123 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
124
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
125 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
126 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
127 // EraseRectAndAlpha
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
128 // Zeros out a section of the GWorld, including alpha.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
129 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
130 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
131
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
132 void EraseRectAndAlpha(GWorldPtr gWorld, Rect *pRect)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
133 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
134 PixMapHandle pixMap = GetGWorldPixMap(gWorld);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
135 long rows;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
136 Ptr rowBaseAddr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
137
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
138
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
139 LockPixels(pixMap);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
140 rows = pRect->bottom - pRect->top;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
141
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
142 rowBaseAddr = GetPixBaseAddr(pixMap) + (GetPixRowBytes(pixMap) & 0x3fff) * pRect->top + pRect->left * GetPixDepth(pixMap) / 8;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
143 do
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
144 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
145 long cols;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
146 UInt32 *baseAddr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
147
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
148 cols = pRect->right - pRect->left;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
149 baseAddr = (UInt32*)rowBaseAddr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
150 rowBaseAddr += (**pixMap).rowBytes & 0x3fff;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
151 do
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
152 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
153 *baseAddr++ = 0;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
154 } while (--cols);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
155 } while (--rows);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
156
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
157 UnlockPixels(pixMap);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
158
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
159 } // EraseRectAndAlpha
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
160
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
161 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
162 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
163 // CreateDecompSeqForSGChannelData
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
164 // Create a decompression sequence for the passed
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
165 // Sequence Grabber channel data
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
166 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
167 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
168
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
169 OSErr CreateDecompSeqForSGChannelData(SGChannel sgChannel, Rect *srcBounds, GWorldPtr imageDestination, ImageSequence *imageSeqID)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
170 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
171 OSErr err = noErr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
172
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
173 ImageDescriptionHandle imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
174 if (imageDesc)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
175 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
176
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
177 err = SGGetChannelSampleDescription(sgChannel,(Handle)imageDesc);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
178 // The original version of this code had a bug - it passed in a Crop Rect to DecompressSequenceBegin instead of a scaling matrix
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
179 // This only worked because of another bug inside QT that reated the crop Rect as a destination rect for DV
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
180 // the following code does the right thing in all cases.
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
181
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
182 if (err == noErr)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
183 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
184 MatrixRecord mr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
185 Rect fromR;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
186
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
187 fromR.left = 0;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
188 fromR.top = 0;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
189 fromR.right = (**imageDesc).width;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
190 fromR.bottom = (**imageDesc).height;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
191 RectMatrix(&mr, &fromR, srcBounds);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
192
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
193 err = DecompressSequenceBegin(imageSeqID, imageDesc, imageDestination, 0, nil, &mr,srcCopy,nil,0, codecNormalQuality, bestSpeedCodec);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
194 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
195
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
196 DisposeHandle((Handle)imageDesc);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
197 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
198 else
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
199 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
200 err = MemError();
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
201 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
202
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
203 return err;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
204 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
205
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
206
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
207 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
208 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
209 // CreateDecompSeqForGWorldData
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
210 // Create a decompression sequence for the specified gworld data
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
211 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
212 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
213
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
214 OSErr CreateDecompSeqForGWorldData(GWorldPtr srcGWorld, Rect *srcBounds, MatrixRecordPtr mr, GWorldPtr imageDestination, ImageSequence *imageSeqID)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
215 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
216 OSErr err;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
217
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
218 ImageDescriptionHandle imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
219 if (imageDesc)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
220 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
221 err = MakeImageDescriptionForPixMap (GetGWorldPixMap(srcGWorld), &imageDesc);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
222 err = DecompressSequenceBegin( imageSeqID,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
223 imageDesc,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
224 imageDestination,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
225 0,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
226 srcBounds,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
227 mr,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
228 srcCopy,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
229 nil,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
230 0,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
231 codecNormalQuality,
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
232 bestSpeedCodec);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
233 DisposeHandle((Handle)imageDesc);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
234 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
235 else
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
236 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
237 err = MemError();
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
238 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
239
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
240 return err;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
241 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
242
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
243 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
244 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
245 // CreateNewSGChannelForRecording
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
246 // - create a new Sequence Grabber video channel
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
247 // - let the use configure the channel
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
248 // - set the channel bounds, usage
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
249 // - set a data proc for the channel
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
250 // - start recording data
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
251 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
252 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
253
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
254 OSErr CreateNewSGChannelForRecording(ComponentInstance seqGrab, SGDataUPP dataProc, CGrafPtr drawPort, Rect *theRect, SGChannel *sgChannel, long refCon)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
255 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
256 OSErr err = noErr;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
257
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
258 BailErr((err = SGInitialize(seqGrab)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
259
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
260 // tell it we're not making a movie
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
261 BailErr((err = SGSetDataRef(seqGrab,0,0,seqGrabDontMakeMovie)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
262 // It wants a port, even if its not drawing to it
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
263 BailErr((err = SGSetGWorld(seqGrab, drawPort, GetMainDevice())));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
264 BailErr((err = SGNewChannel(seqGrab, VideoMediaType, sgChannel)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
265
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
266 // let the user configure the video channel
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
267 //BailErr((err = SGSettingsDialog(seqGrab, *sgChannel, 0, nil, 0, nil, 0))); // ************************
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
268 // ************************************************************
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
269
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
270
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
271
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
272 BailErr((err = SGSetChannelBounds(*sgChannel, theRect)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
273 // set usage for new video channel to avoid playthrough
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
274 BailErr((err = SGSetChannelUsage(*sgChannel, seqGrabRecord ))); //note we don't set seqGrabPlayDuringRecord
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
275 BailErr((err = SGSetDataProc(seqGrab, dataProc, refCon)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
276 BailErr((err = SGStartRecord(seqGrab)));
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
277
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
278 bail:
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
279 return err;
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
280 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
281
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
282 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
283 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
284 // DoCloseSG
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
285 // Terminate recording for our SG channel - dispose of the channel and
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
286 // the associated SG component instance
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
287 //
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
288 //////////
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
289
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
290 void DoCloseSG(ComponentInstance seqGrab, SGChannel sgChannel, SGDataUPP dataProc)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
291 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
292 if(seqGrab)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
293 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
294 SGStop(seqGrab);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
295 SGSetDataProc(seqGrab, NULL ,NULL);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
296 if (dataProc)
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
297 {
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
298 DisposeSGDataUPP(dataProc);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
299 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
300
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
301 SGDisposeChannel(seqGrab, sgChannel);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
302 CloseComponent(seqGrab);
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
303 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
304 }
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
305
886e6862af56 [gaim-migrate @ 13350]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
306

mercurial