forked from mirrors/linphone-iphone
xcode: remove manually created xcode projects. Instead one should use ./prepare.py -G Xcode to generate them
This commit is contained in:
parent
43eade8df8
commit
8cf3f4d380
28 changed files with 0 additions and 5162 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB |
|
|
@ -1,606 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
F03A97691AFA48E800651655 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97681AFA48E800651655 /* main.m */; };
|
||||
F03A976C1AFA48E800651655 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A976B1AFA48E800651655 /* AppDelegate.m */; };
|
||||
F03A976F1AFA48E800651655 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A976E1AFA48E800651655 /* ViewController.m */; };
|
||||
F03A97721AFA48E800651655 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F03A97701AFA48E800651655 /* Main.storyboard */; };
|
||||
F03A97741AFA48E800651655 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F03A97731AFA48E800651655 /* Images.xcassets */; };
|
||||
F03A97771AFA48E800651655 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = F03A97751AFA48E800651655 /* LaunchScreen.xib */; };
|
||||
F03A97831AFA48E900651655 /* MS2Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97821AFA48E900651655 /* MS2Tests.m */; };
|
||||
F03A97931AFA561900651655 /* libmsamr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978D1AFA561900651655 /* libmsamr.a */; };
|
||||
F03A97941AFA561A00651655 /* libmsbcg729.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978E1AFA561900651655 /* libmsbcg729.a */; };
|
||||
F03A97951AFA561A00651655 /* libmsilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978F1AFA561900651655 /* libmsilbc.a */; };
|
||||
F03A97961AFA561A00651655 /* libmsopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97901AFA561900651655 /* libmsopenh264.a */; };
|
||||
F03A97971AFA561A00651655 /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97911AFA561900651655 /* libmssilk.a */; };
|
||||
F03A97981AFA561A00651655 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97921AFA561900651655 /* libmsx264.a */; };
|
||||
F03A97AE1AFA563200651655 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97991AFA563200651655 /* libavcodec.a */; };
|
||||
F03A97AF1AFA563200651655 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979A1AFA563200651655 /* libavutil.a */; };
|
||||
F03A97B01AFA563200651655 /* libbzrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979B1AFA563200651655 /* libbzrtp.a */; };
|
||||
F03A97B11AFA563200651655 /* libgsm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979C1AFA563200651655 /* libgsm.a */; };
|
||||
F03A97B21AFA563200651655 /* libilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979D1AFA563200651655 /* libilbc.a */; };
|
||||
F03A97B31AFA563200651655 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979E1AFA563200651655 /* libmediastreamer_base.a */; };
|
||||
F03A97B41AFA563200651655 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979F1AFA563200651655 /* libmediastreamer_voip.a */; };
|
||||
F03A97B51AFA563200651655 /* libopencore-amrnb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A01AFA563200651655 /* libopencore-amrnb.a */; };
|
||||
F03A97B61AFA563200651655 /* libopencore-amrwb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A11AFA563200651655 /* libopencore-amrwb.a */; };
|
||||
F03A97B71AFA563200651655 /* libopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A21AFA563200651655 /* libopenh264.a */; };
|
||||
F03A97B81AFA563200651655 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A31AFA563200651655 /* libopus.a */; };
|
||||
F03A97B91AFA563200651655 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A41AFA563200651655 /* libortp.a */; };
|
||||
F03A97BC1AFA563200651655 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A71AFA563200651655 /* libspeex.a */; };
|
||||
F03A97BD1AFA563200651655 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A81AFA563200651655 /* libspeexdsp.a */; };
|
||||
F03A97BE1AFA563200651655 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A91AFA563200651655 /* libsrtp.a */; };
|
||||
F03A97BF1AFA563200651655 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AA1AFA563200651655 /* libswresample.a */; };
|
||||
F03A97C01AFA563200651655 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AB1AFA563200651655 /* libswscale.a */; };
|
||||
F03A97C11AFA563200651655 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AC1AFA563200651655 /* libvpx.a */; };
|
||||
F03A97C21AFA563200651655 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AD1AFA563200651655 /* libx264.a */; };
|
||||
F03A97C61AFA565000651655 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C31AFA565000651655 /* AudioToolbox.framework */; };
|
||||
F03A97C71AFA565000651655 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C41AFA565000651655 /* AVFoundation.framework */; };
|
||||
F03A97C81AFA565000651655 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C51AFA565000651655 /* CoreAudio.framework */; };
|
||||
F03A97CA1AFA565C00651655 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C91AFA565C00651655 /* libxml2.a */; };
|
||||
F03A97CC1AFA572600651655 /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97CB1AFA572600651655 /* libstdc++.dylib */; };
|
||||
F03A97D81AFA580100651655 /* UITextField+DoneButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97D71AFA580100651655 /* UITextField+DoneButton.m */; };
|
||||
F03A97DA1AFA589E00651655 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97D91AFA589E00651655 /* Foundation.framework */; };
|
||||
F03A97DC1AFA58B600651655 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97DB1AFA58B600651655 /* UIKit.framework */; };
|
||||
F03A97E11AFA5B4A00651655 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97E01AFA5B4A00651655 /* CoreMedia.framework */; };
|
||||
F03A97E31AFA64D200651655 /* nowebcamCIF.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
F03A977D1AFA48E900651655 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = F03A975B1AFA48E800651655 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = F03A97621AFA48E800651655;
|
||||
remoteInfo = MS2;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
F03A97631AFA48E800651655 /* MS2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MS2.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F03A97671AFA48E800651655 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
F03A97681AFA48E800651655 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
F03A976A1AFA48E800651655 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
F03A976B1AFA48E800651655 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
F03A976D1AFA48E800651655 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
F03A976E1AFA48E800651655 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
F03A97711AFA48E800651655 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
F03A97731AFA48E800651655 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
F03A97761AFA48E800651655 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
|
||||
F03A977C1AFA48E900651655 /* MS2Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MS2Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F03A97811AFA48E900651655 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
F03A97821AFA48E900651655 /* MS2Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MS2Tests.m; sourceTree = "<group>"; };
|
||||
F03A978D1AFA561900651655 /* libmsamr.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsamr.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsamr.a"; sourceTree = "<group>"; };
|
||||
F03A978E1AFA561900651655 /* libmsbcg729.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsbcg729.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsbcg729.a"; sourceTree = "<group>"; };
|
||||
F03A978F1AFA561900651655 /* libmsilbc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsilbc.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsilbc.a"; sourceTree = "<group>"; };
|
||||
F03A97901AFA561900651655 /* libmsopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsopenh264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsopenh264.a"; sourceTree = "<group>"; };
|
||||
F03A97911AFA561900651655 /* libmssilk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmssilk.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmssilk.a"; sourceTree = "<group>"; };
|
||||
F03A97921AFA561900651655 /* libmsx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsx264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsx264.a"; sourceTree = "<group>"; };
|
||||
F03A97991AFA563200651655 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libavcodec.a"; sourceTree = "<group>"; };
|
||||
F03A979A1AFA563200651655 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libavutil.a"; sourceTree = "<group>"; };
|
||||
F03A979B1AFA563200651655 /* libbzrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbzrtp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libbzrtp.a"; sourceTree = "<group>"; };
|
||||
F03A979C1AFA563200651655 /* libgsm.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgsm.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libgsm.a"; sourceTree = "<group>"; };
|
||||
F03A979D1AFA563200651655 /* libilbc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libilbc.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libilbc.a"; sourceTree = "<group>"; };
|
||||
F03A979E1AFA563200651655 /* libmediastreamer_base.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_base.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libmediastreamer_base.a"; sourceTree = "<group>"; };
|
||||
F03A979F1AFA563200651655 /* libmediastreamer_voip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_voip.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libmediastreamer_voip.a"; sourceTree = "<group>"; };
|
||||
F03A97A01AFA563200651655 /* libopencore-amrnb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrnb.a"; path = "../../../liblinphone-sdk/apple-darwin/lib/libopencore-amrnb.a"; sourceTree = "<group>"; };
|
||||
F03A97A11AFA563200651655 /* libopencore-amrwb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrwb.a"; path = "../../../liblinphone-sdk/apple-darwin/lib/libopencore-amrwb.a"; sourceTree = "<group>"; };
|
||||
F03A97A21AFA563200651655 /* libopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopenh264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libopenh264.a"; sourceTree = "<group>"; };
|
||||
F03A97A31AFA563200651655 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libopus.a"; sourceTree = "<group>"; };
|
||||
F03A97A41AFA563200651655 /* libortp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libortp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libortp.a"; sourceTree = "<group>"; };
|
||||
F03A97A71AFA563200651655 /* libspeex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeex.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libspeex.a"; sourceTree = "<group>"; };
|
||||
F03A97A81AFA563200651655 /* libspeexdsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeexdsp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libspeexdsp.a"; sourceTree = "<group>"; };
|
||||
F03A97A91AFA563200651655 /* libsrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsrtp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libsrtp.a"; sourceTree = "<group>"; };
|
||||
F03A97AA1AFA563200651655 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libswresample.a"; sourceTree = "<group>"; };
|
||||
F03A97AB1AFA563200651655 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswscale.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libswscale.a"; sourceTree = "<group>"; };
|
||||
F03A97AC1AFA563200651655 /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libvpx.a"; sourceTree = "<group>"; };
|
||||
F03A97AD1AFA563200651655 /* libx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libx264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libx264.a"; sourceTree = "<group>"; };
|
||||
F03A97C31AFA565000651655 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
F03A97C41AFA565000651655 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
F03A97C51AFA565000651655 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||
F03A97C91AFA565C00651655 /* libxml2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxml2.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libxml2.a"; sourceTree = "<group>"; };
|
||||
F03A97CB1AFA572600651655 /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "usr/lib/libstdc++.dylib"; sourceTree = SDKROOT; };
|
||||
F03A97D61AFA580100651655 /* UITextField+DoneButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+DoneButton.h"; sourceTree = "<group>"; };
|
||||
F03A97D71AFA580100651655 /* UITextField+DoneButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+DoneButton.m"; sourceTree = "<group>"; };
|
||||
F03A97D91AFA589E00651655 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
F03A97DB1AFA58B600651655 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
F03A97E01AFA5B4A00651655 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
|
||||
F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = nowebcamCIF.jpg; path = "../../../liblinphone-sdk/apple-darwin/share/images/nowebcamCIF.jpg"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
F03A97601AFA48E800651655 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F03A97E11AFA5B4A00651655 /* CoreMedia.framework in Frameworks */,
|
||||
F03A97DC1AFA58B600651655 /* UIKit.framework in Frameworks */,
|
||||
F03A97DA1AFA589E00651655 /* Foundation.framework in Frameworks */,
|
||||
F03A97CC1AFA572600651655 /* libstdc++.dylib in Frameworks */,
|
||||
F03A97C61AFA565000651655 /* AudioToolbox.framework in Frameworks */,
|
||||
F03A97C71AFA565000651655 /* AVFoundation.framework in Frameworks */,
|
||||
F03A97C81AFA565000651655 /* CoreAudio.framework in Frameworks */,
|
||||
F03A97971AFA561A00651655 /* libmssilk.a in Frameworks */,
|
||||
F03A97B61AFA563200651655 /* libopencore-amrwb.a in Frameworks */,
|
||||
F03A97B91AFA563200651655 /* libortp.a in Frameworks */,
|
||||
F03A97CA1AFA565C00651655 /* libxml2.a in Frameworks */,
|
||||
F03A97981AFA561A00651655 /* libmsx264.a in Frameworks */,
|
||||
F03A97B81AFA563200651655 /* libopus.a in Frameworks */,
|
||||
F03A97B31AFA563200651655 /* libmediastreamer_base.a in Frameworks */,
|
||||
F03A97B41AFA563200651655 /* libmediastreamer_voip.a in Frameworks */,
|
||||
F03A97B21AFA563200651655 /* libilbc.a in Frameworks */,
|
||||
F03A97931AFA561900651655 /* libmsamr.a in Frameworks */,
|
||||
F03A97B11AFA563200651655 /* libgsm.a in Frameworks */,
|
||||
F03A97C21AFA563200651655 /* libx264.a in Frameworks */,
|
||||
F03A97951AFA561A00651655 /* libmsilbc.a in Frameworks */,
|
||||
F03A97B71AFA563200651655 /* libopenh264.a in Frameworks */,
|
||||
F03A97941AFA561A00651655 /* libmsbcg729.a in Frameworks */,
|
||||
F03A97AE1AFA563200651655 /* libavcodec.a in Frameworks */,
|
||||
F03A97B01AFA563200651655 /* libbzrtp.a in Frameworks */,
|
||||
F03A97C01AFA563200651655 /* libswscale.a in Frameworks */,
|
||||
F03A97BF1AFA563200651655 /* libswresample.a in Frameworks */,
|
||||
F03A97C11AFA563200651655 /* libvpx.a in Frameworks */,
|
||||
F03A97BC1AFA563200651655 /* libspeex.a in Frameworks */,
|
||||
F03A97BE1AFA563200651655 /* libsrtp.a in Frameworks */,
|
||||
F03A97B51AFA563200651655 /* libopencore-amrnb.a in Frameworks */,
|
||||
F03A97AF1AFA563200651655 /* libavutil.a in Frameworks */,
|
||||
F03A97961AFA561A00651655 /* libmsopenh264.a in Frameworks */,
|
||||
F03A97BD1AFA563200651655 /* libspeexdsp.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F03A97791AFA48E900651655 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
F03A975A1AFA48E800651655 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A978C1AFA560800651655 /* Frameworks */,
|
||||
F03A97651AFA48E800651655 /* MS2 */,
|
||||
F03A977F1AFA48E900651655 /* MS2Tests */,
|
||||
F03A97641AFA48E800651655 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A97641AFA48E800651655 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A97631AFA48E800651655 /* MS2.app */,
|
||||
F03A977C1AFA48E900651655 /* MS2Tests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A97651AFA48E800651655 /* MS2 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A976A1AFA48E800651655 /* AppDelegate.h */,
|
||||
F03A976B1AFA48E800651655 /* AppDelegate.m */,
|
||||
F03A976D1AFA48E800651655 /* ViewController.h */,
|
||||
F03A976E1AFA48E800651655 /* ViewController.m */,
|
||||
F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */,
|
||||
F03A97D61AFA580100651655 /* UITextField+DoneButton.h */,
|
||||
F03A97D71AFA580100651655 /* UITextField+DoneButton.m */,
|
||||
F03A97701AFA48E800651655 /* Main.storyboard */,
|
||||
F03A97731AFA48E800651655 /* Images.xcassets */,
|
||||
F03A97751AFA48E800651655 /* LaunchScreen.xib */,
|
||||
F03A97661AFA48E800651655 /* Supporting Files */,
|
||||
);
|
||||
path = MS2;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A97661AFA48E800651655 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A97671AFA48E800651655 /* Info.plist */,
|
||||
F03A97681AFA48E800651655 /* main.m */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A977F1AFA48E900651655 /* MS2Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A97821AFA48E900651655 /* MS2Tests.m */,
|
||||
F03A97801AFA48E900651655 /* Supporting Files */,
|
||||
);
|
||||
path = MS2Tests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A97801AFA48E900651655 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A97811AFA48E900651655 /* Info.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A978C1AFA560800651655 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F03A97E01AFA5B4A00651655 /* CoreMedia.framework */,
|
||||
F03A97DB1AFA58B600651655 /* UIKit.framework */,
|
||||
F03A97D91AFA589E00651655 /* Foundation.framework */,
|
||||
F03A97CB1AFA572600651655 /* libstdc++.dylib */,
|
||||
F03A97C31AFA565000651655 /* AudioToolbox.framework */,
|
||||
F03A97C41AFA565000651655 /* AVFoundation.framework */,
|
||||
F03A97C51AFA565000651655 /* CoreAudio.framework */,
|
||||
F03A978D1AFA561900651655 /* libmsamr.a */,
|
||||
F03A978E1AFA561900651655 /* libmsbcg729.a */,
|
||||
F03A97991AFA563200651655 /* libavcodec.a */,
|
||||
F03A979A1AFA563200651655 /* libavutil.a */,
|
||||
F03A979B1AFA563200651655 /* libbzrtp.a */,
|
||||
F03A979C1AFA563200651655 /* libgsm.a */,
|
||||
F03A979D1AFA563200651655 /* libilbc.a */,
|
||||
F03A979E1AFA563200651655 /* libmediastreamer_base.a */,
|
||||
F03A979F1AFA563200651655 /* libmediastreamer_voip.a */,
|
||||
F03A97A01AFA563200651655 /* libopencore-amrnb.a */,
|
||||
F03A97A11AFA563200651655 /* libopencore-amrwb.a */,
|
||||
F03A97C91AFA565C00651655 /* libxml2.a */,
|
||||
F03A97A21AFA563200651655 /* libopenh264.a */,
|
||||
F03A97A31AFA563200651655 /* libopus.a */,
|
||||
F03A97A41AFA563200651655 /* libortp.a */,
|
||||
F03A97A71AFA563200651655 /* libspeex.a */,
|
||||
F03A97A81AFA563200651655 /* libspeexdsp.a */,
|
||||
F03A97A91AFA563200651655 /* libsrtp.a */,
|
||||
F03A97AA1AFA563200651655 /* libswresample.a */,
|
||||
F03A97AB1AFA563200651655 /* libswscale.a */,
|
||||
F03A97AC1AFA563200651655 /* libvpx.a */,
|
||||
F03A97AD1AFA563200651655 /* libx264.a */,
|
||||
F03A978F1AFA561900651655 /* libmsilbc.a */,
|
||||
F03A97901AFA561900651655 /* libmsopenh264.a */,
|
||||
F03A97911AFA561900651655 /* libmssilk.a */,
|
||||
F03A97921AFA561900651655 /* libmsx264.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
path = MS2;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
F03A97621AFA48E800651655 /* MS2 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = F03A97861AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2" */;
|
||||
buildPhases = (
|
||||
F03A975F1AFA48E800651655 /* Sources */,
|
||||
F03A97601AFA48E800651655 /* Frameworks */,
|
||||
F03A97611AFA48E800651655 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = MS2;
|
||||
productName = MS2;
|
||||
productReference = F03A97631AFA48E800651655 /* MS2.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
F03A977B1AFA48E900651655 /* MS2Tests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = F03A97891AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2Tests" */;
|
||||
buildPhases = (
|
||||
F03A97781AFA48E900651655 /* Sources */,
|
||||
F03A97791AFA48E900651655 /* Frameworks */,
|
||||
F03A977A1AFA48E900651655 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
F03A977E1AFA48E900651655 /* PBXTargetDependency */,
|
||||
);
|
||||
name = MS2Tests;
|
||||
productName = MS2Tests;
|
||||
productReference = F03A977C1AFA48E900651655 /* MS2Tests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
F03A975B1AFA48E800651655 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0630;
|
||||
ORGANIZATIONNAME = "Belldonne Communications";
|
||||
TargetAttributes = {
|
||||
F03A97621AFA48E800651655 = {
|
||||
CreatedOnToolsVersion = 6.3;
|
||||
};
|
||||
F03A977B1AFA48E900651655 = {
|
||||
CreatedOnToolsVersion = 6.3;
|
||||
TestTargetID = F03A97621AFA48E800651655;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = F03A975E1AFA48E800651655 /* Build configuration list for PBXProject "MS2" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = F03A975A1AFA48E800651655;
|
||||
productRefGroup = F03A97641AFA48E800651655 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
F03A97621AFA48E800651655 /* MS2 */,
|
||||
F03A977B1AFA48E900651655 /* MS2Tests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
F03A97611AFA48E800651655 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F03A97E31AFA64D200651655 /* nowebcamCIF.jpg in Resources */,
|
||||
F03A97721AFA48E800651655 /* Main.storyboard in Resources */,
|
||||
F03A97771AFA48E800651655 /* LaunchScreen.xib in Resources */,
|
||||
F03A97741AFA48E800651655 /* Images.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F03A977A1AFA48E900651655 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
F03A975F1AFA48E800651655 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F03A976F1AFA48E800651655 /* ViewController.m in Sources */,
|
||||
F03A976C1AFA48E800651655 /* AppDelegate.m in Sources */,
|
||||
F03A97691AFA48E800651655 /* main.m in Sources */,
|
||||
F03A97D81AFA580100651655 /* UITextField+DoneButton.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F03A97781AFA48E900651655 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F03A97831AFA48E900651655 /* MS2Tests.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
F03A977E1AFA48E900651655 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = F03A97621AFA48E800651655 /* MS2 */;
|
||||
targetProxy = F03A977D1AFA48E900651655 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
F03A97701AFA48E800651655 /* Main.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F03A97711AFA48E800651655 /* Base */,
|
||||
);
|
||||
name = Main.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F03A97751AFA48E800651655 /* LaunchScreen.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F03A97761AFA48E800651655 /* Base */,
|
||||
);
|
||||
name = LaunchScreen.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
F03A97841AFA48E900651655 /* 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[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = 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_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
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;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F03A97851AFA48E900651655 /* 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[sdk=iphoneos*]" = "iPhone Developer";
|
||||
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;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F03A97871AFA48E900651655 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/include",
|
||||
);
|
||||
INFOPLIST_FILE = MS2/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins",
|
||||
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F03A97881AFA48E900651655 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/include",
|
||||
);
|
||||
INFOPLIST_FILE = MS2/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins",
|
||||
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F03A978A1AFA48E900651655 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = MS2Tests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MS2.app/MS2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F03A978B1AFA48E900651655 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = MS2Tests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MS2.app/MS2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
F03A975E1AFA48E800651655 /* Build configuration list for PBXProject "MS2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F03A97841AFA48E900651655 /* Debug */,
|
||||
F03A97851AFA48E900651655 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
F03A97861AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F03A97871AFA48E900651655 /* Debug */,
|
||||
F03A97881AFA48E900651655 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
F03A97891AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2Tests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F03A978A1AFA48E900651655 /* Debug */,
|
||||
F03A978B1AFA48E900651655 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = F03A975B1AFA48E800651655 /* Project object */;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:MS2.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
//
|
||||
// AppDelegate.h
|
||||
// MS2
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property(strong, nonatomic) UIWindow *window;
|
||||
|
||||
@end
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
//
|
||||
// AppDelegate.m
|
||||
// MS2
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
// Override point for customization after application launch.
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of
|
||||
// temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application
|
||||
// and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use
|
||||
// this method to pause the game.
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application
|
||||
// state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate:
|
||||
// when the user quits.
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application {
|
||||
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes
|
||||
// made on entering the background.
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application
|
||||
// was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application {
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also
|
||||
// applicationDidEnterBackground:.
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 Belldonne Communications. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
|
||||
<rect key="frame" x="20" y="439" width="441" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MS2" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
|
||||
<rect key="frame" x="20" y="140" width="441" height="43"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
|
||||
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
|
||||
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
|
||||
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
|
||||
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
|
||||
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
|
||||
</constraints>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<point key="canvasLocation" x="548" y="455"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7531" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7520"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="tne-QT-ifu">
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" horizontalHuggingPriority="249" verticalHuggingPriority="249" verticalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="NEX-36-MqC">
|
||||
<rect key="frame" x="16" y="20" width="568" height="200"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CBm-CY-BBe" userLabel="remoteVideo">
|
||||
<rect key="frame" x="0.0" y="0.0" width="282" height="200"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VjN-5I-lOb" userLabel="localVideo">
|
||||
<rect key="frame" x="287" y="0.0" width="281" height="200"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="VjN-5I-lOb" secondAttribute="bottom" id="5Fh-Fw-eZA"/>
|
||||
<constraint firstItem="VjN-5I-lOb" firstAttribute="leading" secondItem="CBm-CY-BBe" secondAttribute="trailing" constant="5" id="DEQ-jV-auz"/>
|
||||
<constraint firstAttribute="bottom" secondItem="CBm-CY-BBe" secondAttribute="bottom" id="Ffv-Mf-Llx"/>
|
||||
<constraint firstItem="VjN-5I-lOb" firstAttribute="width" secondItem="CBm-CY-BBe" secondAttribute="width" id="JHc-Aa-x2i"/>
|
||||
<constraint firstItem="VjN-5I-lOb" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="top" id="Jio-xo-NA4"/>
|
||||
<constraint firstItem="CBm-CY-BBe" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="top" id="T70-va-mQD"/>
|
||||
<constraint firstItem="CBm-CY-BBe" firstAttribute="leading" secondItem="NEX-36-MqC" secondAttribute="leading" id="dF0-pU-nUR"/>
|
||||
<constraint firstAttribute="trailing" secondItem="VjN-5I-lOb" secondAttribute="trailing" id="nkU-HU-fxu"/>
|
||||
<constraint firstAttribute="height" constant="200" id="trC-wz-mxI"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dof-dF-W5E">
|
||||
<rect key="frame" x="16" y="230" width="568" height="360"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Infos" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ahO-FT-Buh" userLabel="InfoLabel">
|
||||
<rect key="frame" x="10" y="58" width="548" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dpE-4Z-Bca">
|
||||
<rect key="frame" x="10" y="8" width="100" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="100" id="ULh-vL-P6x"/>
|
||||
</constraints>
|
||||
<state key="normal" title="Start streams">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onStartStreamsClick:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Ef8-CC-iky"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hJG-dO-y2z" userLabel="Change Cam">
|
||||
<rect key="frame" x="458" y="8" width="100" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="100" id="ucZ-rB-FYo"/>
|
||||
</constraints>
|
||||
<state key="normal" title="Push To Cam!">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="changeCamDown:" destination="BYZ-38-t0r" eventType="touchDown" id="v1t-qp-dZb"/>
|
||||
<action selector="changeCamUp:" destination="BYZ-38-t0r" eventType="touchUpInside" id="i7t-HS-skE"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Bandwidth" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qRc-kS-kqP" userLabel="BWLabel">
|
||||
<rect key="frame" x="12" y="87" width="548" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="ahO-FT-Buh" secondAttribute="trailing" constant="10" id="IMo-n1-N9M"/>
|
||||
<constraint firstItem="hJG-dO-y2z" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="top" constant="8" id="Koi-ap-9Ac"/>
|
||||
<constraint firstItem="ahO-FT-Buh" firstAttribute="leading" secondItem="Dof-dF-W5E" secondAttribute="leading" constant="10" id="NeM-ch-QXt"/>
|
||||
<constraint firstItem="ahO-FT-Buh" firstAttribute="height" secondItem="qRc-kS-kqP" secondAttribute="height" id="TFn-Oz-nA8"/>
|
||||
<constraint firstItem="ahO-FT-Buh" firstAttribute="leading" secondItem="qRc-kS-kqP" secondAttribute="leading" constant="-2" id="TSw-Fw-4gv"/>
|
||||
<constraint firstItem="ahO-FT-Buh" firstAttribute="top" secondItem="dpE-4Z-Bca" secondAttribute="bottom" constant="20" id="bHD-BD-qfs"/>
|
||||
<constraint firstItem="qRc-kS-kqP" firstAttribute="top" secondItem="ahO-FT-Buh" secondAttribute="bottom" constant="8" id="bQ1-79-qUP"/>
|
||||
<constraint firstItem="dpE-4Z-Bca" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="top" constant="8" id="bff-S2-ssI"/>
|
||||
<constraint firstItem="hJG-dO-y2z" firstAttribute="centerY" secondItem="dpE-4Z-Bca" secondAttribute="centerY" id="cpB-ox-u06"/>
|
||||
<constraint firstItem="dpE-4Z-Bca" firstAttribute="leading" secondItem="Dof-dF-W5E" secondAttribute="leading" constant="10" id="lGn-tx-JZk"/>
|
||||
<constraint firstAttribute="centerX" secondItem="ahO-FT-Buh" secondAttribute="centerX" id="qGi-4Q-dov"/>
|
||||
<constraint firstItem="ahO-FT-Buh" firstAttribute="width" secondItem="qRc-kS-kqP" secondAttribute="width" id="s5k-sE-Di2"/>
|
||||
<constraint firstAttribute="trailing" secondItem="hJG-dO-y2z" secondAttribute="trailing" constant="10" id="yuZ-Up-tVt"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="Dof-dF-W5E" firstAttribute="width" secondItem="NEX-36-MqC" secondAttribute="width" id="HPK-aJ-ipr"/>
|
||||
<constraint firstItem="wfy-db-euE" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="bottom" constant="10" id="L6J-IF-iaB"/>
|
||||
<constraint firstItem="NEX-36-MqC" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" id="SKF-lO-hHH"/>
|
||||
<constraint firstItem="Dof-dF-W5E" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="bottom" constant="10" id="VpA-cB-0ae"/>
|
||||
<constraint firstItem="NEX-36-MqC" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" id="YcI-o7-27u"/>
|
||||
<constraint firstItem="Dof-dF-W5E" firstAttribute="leading" secondItem="NEX-36-MqC" secondAttribute="leading" id="iHb-xY-F8j"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="NEX-36-MqC" secondAttribute="trailing" id="pOO-hc-WkC"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="bandwidthLabel" destination="qRc-kS-kqP" id="6Y0-4e-J9B"/>
|
||||
<outlet property="infoLabel" destination="ahO-FT-Buh" id="EZr-MB-hUS"/>
|
||||
<outlet property="localView" destination="VjN-5I-lOb" id="Hee-ge-Sjd"/>
|
||||
<outlet property="remoteView" destination="CBm-CY-BBe" id="avg-4V-Kse"/>
|
||||
<outlet property="startStreamLabel" destination="dpE-4Z-Bca" id="NzX-dg-Wok"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="325" y="387"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.belledonne-communications.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
//
|
||||
// UITextField+DoneButton.h
|
||||
// linphone
|
||||
//
|
||||
// Created by Gautier Pelloux-Prayer on 14/10/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface UITextField (DoneButton)
|
||||
- (void)addDoneButton;
|
||||
@end
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
//
|
||||
// UITextField+DoneButton.m
|
||||
// linphone
|
||||
//
|
||||
// Created by Gautier Pelloux-Prayer on 14/10/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "UITextField+DoneButton.h"
|
||||
|
||||
@implementation UITextField (DoneButton)
|
||||
|
||||
- (void)addDoneButton {
|
||||
// actually on iPad there is a done button
|
||||
UIToolbar *numberToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
|
||||
numberToolbar.items = [NSArray
|
||||
arrayWithObjects:[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Cancel", nil)
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(cancelNumberPad)],
|
||||
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
|
||||
target:nil
|
||||
action:nil],
|
||||
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil)
|
||||
style:UIBarButtonItemStyleDone
|
||||
target:self
|
||||
action:@selector(doneWithNumberPad)],
|
||||
nil];
|
||||
[numberToolbar sizeToFit];
|
||||
|
||||
self.inputAccessoryView = numberToolbar;
|
||||
}
|
||||
|
||||
- (void)cancelNumberPad {
|
||||
[self resignFirstResponder];
|
||||
self.text = @"";
|
||||
}
|
||||
|
||||
- (void)doneWithNumberPad {
|
||||
[self resignFirstResponder];
|
||||
}
|
||||
@end
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
//
|
||||
// ViewController.h
|
||||
// MS2
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface ViewController : UIViewController
|
||||
|
||||
- (IBAction)onStartStreamsClick:(id)sender;
|
||||
- (IBAction)changeCamUp:(id)sender;
|
||||
- (IBAction)changeCamDown:(id)sender;
|
||||
|
||||
@property(weak, nonatomic) IBOutlet UIView *remoteView;
|
||||
@property(weak, nonatomic) IBOutlet UIView *localView;
|
||||
@property(weak, nonatomic) IBOutlet UIButton *startStreamLabel;
|
||||
|
||||
@property(weak, nonatomic) IBOutlet UILabel *infoLabel;
|
||||
@property(weak, nonatomic) IBOutlet UILabel *bandwidthLabel;
|
||||
|
||||
@end
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
//
|
||||
// ViewController.m
|
||||
// MS2
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ViewController.h"
|
||||
#include <ifaddrs.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#import "mediastreamer2/mediastream.h"
|
||||
#import "oRTP/rtpsession.h"
|
||||
#import "UITextField+DoneButton.h"
|
||||
extern void libmsopenh264_init();
|
||||
|
||||
@interface ViewController () {
|
||||
|
||||
MSWebCam *videoCam;
|
||||
MSWebCam *noCam;
|
||||
MSFilter *noWebCamFilter;
|
||||
MSFilter *videoCamFilter;
|
||||
|
||||
RtpProfile *profile;
|
||||
VideoStream *currentStream;
|
||||
IceSession *iceSession;
|
||||
PayloadType *vp8_pt;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation ViewController
|
||||
#define CAM_NAME "AV Capture: com.apple.avfoundation.avcapturedevice.built-in_video:1"
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
|
||||
ortp_init();
|
||||
ortp_set_log_level_mask(ORTP_DEBUG | ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL);
|
||||
ms_init();
|
||||
libmsopenh264_init(); /*no plugin on IOS/Android */
|
||||
|
||||
NSString *nowebFile = @"nowebcamCIF.jpg";
|
||||
NSString *path = [[NSBundle mainBundle] pathForResource:[nowebFile stringByDeletingPathExtension]
|
||||
ofType:[nowebFile pathExtension]];
|
||||
ms_static_image_set_default_image([path UTF8String]);
|
||||
|
||||
noCam = ms_web_cam_manager_get_cam(ms_web_cam_manager_get(), "StaticImage: Static picture");
|
||||
videoCam = ms_web_cam_manager_get_cam(ms_web_cam_manager_get(), CAM_NAME);
|
||||
|
||||
noWebCamFilter = ms_web_cam_create_reader(noCam);
|
||||
videoCamFilter = ms_web_cam_create_reader(videoCam);
|
||||
|
||||
currentStream = NULL;
|
||||
profile = rtp_profile_clone_full(&av_profile);
|
||||
rtp_profile_set_payload(profile, 103, &payload_type_vp8);
|
||||
|
||||
vp8_pt = payload_type_clone(rtp_profile_get_payload(profile, 103));
|
||||
|
||||
// Enable AVPF
|
||||
PayloadTypeAvpfParams avpf_params;
|
||||
payload_type_set_flag(vp8_pt, PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED);
|
||||
avpf_params.features =
|
||||
PAYLOAD_TYPE_AVPF_FIR | PAYLOAD_TYPE_AVPF_PLI | PAYLOAD_TYPE_AVPF_SLI | PAYLOAD_TYPE_AVPF_RPSI;
|
||||
avpf_params.trr_interval = 3000;
|
||||
payload_type_set_avpf_params(vp8_pt, avpf_params);
|
||||
|
||||
vp8_pt->normal_bitrate = 500000;
|
||||
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timer:) userInfo:nil repeats:TRUE];
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(infoTimer:) userInfo:nil repeats:TRUE];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
- (void)updateInfo {
|
||||
if (currentStream == NULL) {
|
||||
self.infoLabel.text = @"No stream";
|
||||
self.bandwidthLabel.text = @"";
|
||||
return;
|
||||
}
|
||||
const MSWebCam *currentCam = video_stream_get_camera(currentStream);
|
||||
if (currentCam)
|
||||
self.infoLabel.text = [NSString stringWithFormat:@"Stream running, current cam: %s", currentCam->name];
|
||||
else
|
||||
self.infoLabel.text = @"No Webcam ?!";
|
||||
|
||||
MediaStream *ms = (MediaStream *)currentStream;
|
||||
float upload = rtp_session_get_rtp_send_bandwidth(ms->sessions.rtp_session);
|
||||
float download = rtp_session_get_rtp_recv_bandwidth(ms->sessions.rtp_session);
|
||||
|
||||
self.bandwidthLabel.text =
|
||||
[NSString stringWithFormat:@"Upload: %f kbit/s, Download: %f kbit/s", upload / 1000.0, download / 1000.0];
|
||||
}
|
||||
|
||||
#pragma mark - Timer callbacks
|
||||
- (void)timer:(NSTimer *)timer {
|
||||
if (currentStream) {
|
||||
media_stream_iterate((MediaStream *)currentStream);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)infoTimer:(NSTimer *)timer {
|
||||
[self updateInfo];
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (IBAction)onStartStreamsClick:(id)sender {
|
||||
if (currentStream) {
|
||||
VideoStream *stream = currentStream;
|
||||
currentStream = NULL;
|
||||
video_stream_stop_keep_source(stream);
|
||||
[self.startStreamLabel setTitle:@"Start streams" forState:UIControlStateNormal];
|
||||
|
||||
} else {
|
||||
VideoStream *stream = video_stream_new(3456, 3457, FALSE);
|
||||
video_stream_set_native_window_id(stream, (unsigned long)self.remoteView);
|
||||
video_stream_set_native_preview_window_id(stream, (unsigned long)self.localView);
|
||||
video_stream_start_with_source(stream, profile, "127.0.0.1", 3456, "127.0.0.1", 3457, 103, 30, noCam,
|
||||
noWebCamFilter);
|
||||
currentStream = stream;
|
||||
[self.startStreamLabel setTitle:@"Stop streams" forState:UIControlStateNormal];
|
||||
[self updateInfo];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)changeCamUp:(id)sender {
|
||||
if (currentStream == NULL)
|
||||
return;
|
||||
|
||||
NSLog(@"Restore static cam (%p)", noWebCamFilter);
|
||||
video_stream_change_source_filter(currentStream, noCam, noWebCamFilter, TRUE);
|
||||
|
||||
[self updateInfo];
|
||||
}
|
||||
|
||||
- (IBAction)changeCamDown:(id)sender {
|
||||
if (currentStream == NULL) {
|
||||
return;
|
||||
}
|
||||
NSLog(@"Use real camera (%p)", videoCamFilter);
|
||||
video_stream_change_source_filter(currentStream, videoCam, videoCamFilter, TRUE);
|
||||
[self updateInfo];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
//
|
||||
// main.m
|
||||
// MS2
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "AppDelegate.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.belledonne-communications.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
//
|
||||
// MS2Tests.m
|
||||
// MS2Tests
|
||||
//
|
||||
// Created by guillaume on 06/05/2015.
|
||||
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
@interface MS2Tests : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation MS2Tests
|
||||
|
||||
- (void)setUp {
|
||||
[super setUp];
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
- (void)tearDown {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testExample {
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(YES, @"Pass");
|
||||
}
|
||||
|
||||
- (void)testPerformanceExample {
|
||||
// This is an example of a performance test case.
|
||||
[self measureBlock:^{
|
||||
// Put the code you want to measure the time of here.
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
## Simple example of MediaStreamer 2 usage
|
||||
|
||||
This Xcode project is a simple local (not using the network) example of use of the MediaStreamer2 API. **This project only works on a real device with a camera onboard: running it on the simulator will not work**.
|
||||
|
||||
It requires first that you compile the liblinphone SDK into the `submodules/build` directory. Please read theroot directory README for instructions on how to build this SDK.
|
||||
|
||||
After that, simply open the MS2.xcodeproj file with Xcode and press the Run button on the top.
|
||||
|
||||
You will be presented with a munimal UI that lets you start a streaming session, and switch rapidly between a static image and the live image coming from the camera sensor of the device.
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
############################################################################
|
||||
# Makefile
|
||||
# Copyright (C) 2009 Belledonne Communications,Grenoble France
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
all:
|
||||
@echo "*******************************************************************************"
|
||||
@echo "This makefile is deprecated. Please see README.md for compilation instructions. Here are some equivalents:"
|
||||
@echo "Equivalent of make is: cd ../../ && ./prepare.py && make"
|
||||
@echo "Equivalent of make enable_gpl_third_parties=no is: cd ../../ && ./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO && make"
|
||||
@echo "Equivalent of make enable_debug=yes is: cd ../../ && ./prepare.py -d && make"
|
||||
@echo "Equivalent of make enable_i386=yes is: cd ../../ && ./prepare.py all && make"
|
||||
@echo "Equivalent of make enable_zrpt=yes enable_opus=yes enable_ffmpeg is: cd ../../ && ./prepare.py -DENABLE_ZRTP=YES -DENABLE_OPUS=YES -DENABLE_FFMPEG=YES && make"
|
||||
@echo "*******************************************************************************"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:liblinphone.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
|
||||
<false/>
|
||||
<key>IDESourceControlProjectIdentifier</key>
|
||||
<string>9A1D1003-FB23-4CFA-98EE-023D9D0776DB</string>
|
||||
<key>IDESourceControlProjectName</key>
|
||||
<string>liblinphone</string>
|
||||
<key>IDESourceControlProjectOriginsDictionary</key>
|
||||
<dict>
|
||||
<key>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</key>
|
||||
<string>git.linphone.org:linphone-iphone.git</string>
|
||||
<key>B9A509D4F3D25560F565CB53A09A75E2140C5232</key>
|
||||
<string>git://git.linphone.org/mediastreamer2.git</string>
|
||||
</dict>
|
||||
<key>IDESourceControlProjectPath</key>
|
||||
<string>submodules/liblinphone.xcodeproj</string>
|
||||
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
|
||||
<dict>
|
||||
<key>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</key>
|
||||
<string>../../..</string>
|
||||
<key>B9A509D4F3D25560F565CB53A09A75E2140C5232</key>
|
||||
<string>../../..submodules/linphone/mediastreamer2</string>
|
||||
</dict>
|
||||
<key>IDESourceControlProjectURL</key>
|
||||
<string>git.linphone.org:linphone-iphone.git</string>
|
||||
<key>IDESourceControlProjectVersion</key>
|
||||
<integer>111</integer>
|
||||
<key>IDESourceControlProjectWCCIdentifier</key>
|
||||
<string>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</string>
|
||||
<key>IDESourceControlProjectWCConfigurations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
|
||||
<string>public.vcs.git</string>
|
||||
<key>IDESourceControlWCCIdentifierKey</key>
|
||||
<string>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</string>
|
||||
<key>IDESourceControlWCCName</key>
|
||||
<string>linphone-iphone</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
|
||||
<string>public.vcs.git</string>
|
||||
<key>IDESourceControlWCCIdentifierKey</key>
|
||||
<string>B9A509D4F3D25560F565CB53A09A75E2140C5232</string>
|
||||
<key>IDESourceControlWCCName</key>
|
||||
<string>mediastreamer2</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
//
|
||||
// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Foundation/Foundation.h>
|
||||
#endif
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
//
|
||||
// DTObjectBlockExecutor.h
|
||||
// DTFoundation
|
||||
//
|
||||
// Created by Oliver Drobnik on 12.02.13.
|
||||
// Copyright (c) 2013 Cocoanetics. All rights reserved.
|
||||
//
|
||||
|
||||
/**
|
||||
This class is used by [NSObject addDeallocBlock:] to execute blocks on dealloc
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface DTObjectBlockExecutor : NSObject
|
||||
|
||||
/**
|
||||
Convenience method to create a block executor with a deallocation block
|
||||
@param block The block to execute when the created receiver is being deallocated
|
||||
*/
|
||||
+ (id)blockExecutorWithDeallocBlock:(void (^)())block;
|
||||
|
||||
/**
|
||||
Block to execute when dealloc of the receiver is called
|
||||
*/
|
||||
@property(nonatomic, copy) void (^deallocBlock)();
|
||||
|
||||
@end
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
//
|
||||
// DTObjectBlockExecutor.m
|
||||
// DTFoundation
|
||||
//
|
||||
// Created by Oliver Drobnik on 12.02.13.
|
||||
// Copyright (c) 2013 Cocoanetics. All rights reserved.
|
||||
//
|
||||
|
||||
#import "DTObjectBlockExecutor.h"
|
||||
|
||||
@implementation DTObjectBlockExecutor
|
||||
|
||||
+ (id)blockExecutorWithDeallocBlock:(void (^)())block {
|
||||
DTObjectBlockExecutor *executor = [[DTObjectBlockExecutor alloc] init];
|
||||
executor.deallocBlock = block; // copy
|
||||
return executor;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
if (_deallocBlock) {
|
||||
_deallocBlock();
|
||||
_deallocBlock = nil;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.belledonne-communications.tester.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
//
|
||||
// NSObject+DTRuntime.h
|
||||
// DTFoundation
|
||||
//
|
||||
// Created by Oliver Drobnik on 4/25/12.
|
||||
// Copyright (c) 2012 Cocoanetics. All rights reserved.
|
||||
//
|
||||
|
||||
/**
|
||||
Methods to dynamically modify objects at runtime
|
||||
*/
|
||||
|
||||
@interface NSObject (DTRuntime)
|
||||
|
||||
/**-------------------------------------------------------------------------------------
|
||||
@name Blocks
|
||||
---------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
Adds a block to be executed as soon as the receiver's memory is deallocated
|
||||
@param block The block to execute when the receiver is being deallocated
|
||||
*/
|
||||
- (void)addDeallocBlock:(void (^)())block;
|
||||
|
||||
/**
|
||||
Adds a new instance method to a class. All instances of this class will have this method.
|
||||
|
||||
The block captures `self` in the calling context. To allow access to the instance from within the block it is passed as
|
||||
parameter to the block.
|
||||
@param selectorName The name of the method.
|
||||
@param block The block to execute for the instance method, a pointer to the instance is passed as the only parameter.
|
||||
@returns `YES` if the operation was successful
|
||||
*/
|
||||
+ (BOOL)addInstanceMethodWithSelectorName:(NSString *)selectorName block:(void (^)(id))block;
|
||||
|
||||
/**-------------------------------------------------------------------------------------
|
||||
@name Method Swizzling
|
||||
---------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
Exchanges two method implementations. After the call methods to the first selector will now go to the second one and
|
||||
vice versa.
|
||||
@param selector The first method
|
||||
@param otherSelector The second method
|
||||
*/
|
||||
+ (void)swizzleMethod:(SEL)selector withMethod:(SEL)otherSelector;
|
||||
|
||||
/**
|
||||
Exchanges two class method implementations. After the call methods to the first selector will now go to the second one
|
||||
and vice versa.
|
||||
@param selector The first method
|
||||
@param otherSelector The second method
|
||||
*/
|
||||
+ (void)swizzleClassMethod:(SEL)selector withMethod:(SEL)otherSelector;
|
||||
|
||||
@end
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
//
|
||||
// NSObject_DTRuntime.h
|
||||
// DTFoundation
|
||||
//
|
||||
// Created by Oliver Drobnik on 4/25/12.
|
||||
// Copyright (c) 2012 Cocoanetics. All rights reserved.
|
||||
//
|
||||
|
||||
#import <objc/runtime.h>
|
||||
#import "DTObjectBlockExecutor.h"
|
||||
|
||||
@implementation NSObject (DTRuntime)
|
||||
|
||||
static char DTRuntimeDeallocBlocks;
|
||||
|
||||
#pragma mark - Blocks
|
||||
|
||||
- (void)addDeallocBlock:(void (^)())block {
|
||||
// don't accept NULL block
|
||||
NSParameterAssert(block);
|
||||
|
||||
NSMutableArray *deallocBlocks = objc_getAssociatedObject(self, &DTRuntimeDeallocBlocks);
|
||||
|
||||
// add array of dealloc blocks if not existing yet
|
||||
if (!deallocBlocks) {
|
||||
deallocBlocks = [[NSMutableArray alloc] init];
|
||||
|
||||
objc_setAssociatedObject(self, &DTRuntimeDeallocBlocks, deallocBlocks, OBJC_ASSOCIATION_RETAIN);
|
||||
}
|
||||
|
||||
DTObjectBlockExecutor *executor = [DTObjectBlockExecutor blockExecutorWithDeallocBlock:block];
|
||||
|
||||
[deallocBlocks addObject:executor];
|
||||
}
|
||||
|
||||
+ (BOOL)addInstanceMethodWithSelectorName:(NSString *)selectorName block:(void (^)(id))block {
|
||||
// don't accept nil name
|
||||
NSParameterAssert(selectorName);
|
||||
|
||||
// don't accept NULL block
|
||||
NSParameterAssert(block);
|
||||
|
||||
// See http://stackoverflow.com/questions/6357663/casting-a-block-to-a-void-for-dynamic-class-method-resolution
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_7
|
||||
void *impBlockForIMP = (void *)objc_unretainedPointer(block);
|
||||
#else
|
||||
id impBlockForIMP = (__bridge id)objc_unretainedPointer(block);
|
||||
#endif
|
||||
|
||||
IMP myIMP = imp_implementationWithBlock(impBlockForIMP);
|
||||
|
||||
SEL selector = NSSelectorFromString(selectorName);
|
||||
return class_addMethod(self, selector, myIMP, "v@:");
|
||||
}
|
||||
|
||||
#pragma mark - Method Swizzling
|
||||
|
||||
+ (void)swizzleMethod:(SEL)selector withMethod:(SEL)otherSelector {
|
||||
// my own class is being targetted
|
||||
Class c = [self class];
|
||||
|
||||
// get the methods from the selectors
|
||||
Method originalMethod = class_getInstanceMethod(c, selector);
|
||||
Method otherMethod = class_getInstanceMethod(c, otherSelector);
|
||||
|
||||
if (class_addMethod(c, selector, method_getImplementation(otherMethod), method_getTypeEncoding(otherMethod))) {
|
||||
class_replaceMethod(c, otherSelector, method_getImplementation(originalMethod),
|
||||
method_getTypeEncoding(originalMethod));
|
||||
} else {
|
||||
method_exchangeImplementations(originalMethod, otherMethod);
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)swizzleClassMethod:(SEL)selector withMethod:(SEL)otherSelector {
|
||||
// my own class is being targetted
|
||||
Class c = [self class];
|
||||
|
||||
// get the methods from the selectors
|
||||
Method originalMethod = class_getClassMethod(c, selector);
|
||||
Method otherMethod = class_getClassMethod(c, otherSelector);
|
||||
|
||||
// if (class_addMethod(c, selector, method_getImplementation(otherMethod), method_getTypeEncoding(otherMethod)))
|
||||
// {
|
||||
// class_replaceMethod(c, otherSelector, method_getImplementation(originalMethod),
|
||||
// method_getTypeEncoding(originalMethod));
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
method_exchangeImplementations(originalMethod, otherMethod);
|
||||
// }
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
//
|
||||
// mediastream_tester_Tests.m
|
||||
// mediastream-tester Tests
|
||||
//
|
||||
// Created by guillaume on 21/11/2014.
|
||||
//
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <XCTest/XCTest.h>
|
||||
#include "ortp.h"
|
||||
#import "NSObject+DTRuntime.h"
|
||||
|
||||
#include "mediastreamer2_tester.h"
|
||||
|
||||
@interface mediastream_tester_Tests : XCTestCase
|
||||
@property(nonatomic, retain) NSString *bundlePath;
|
||||
@property(nonatomic, retain) NSString *documentPath;
|
||||
@property(nonatomic, retain) NSString *staticImagePath;
|
||||
@end
|
||||
|
||||
@implementation mediastream_tester_Tests
|
||||
|
||||
+ (NSArray *)skippedSuites {
|
||||
NSArray *skipped_suites = @[];
|
||||
return skipped_suites;
|
||||
}
|
||||
|
||||
+ (NSString *)safeifyTestString:(NSString *)testString {
|
||||
NSArray *invalidChars = @[ @"[", @"]", @" ", @"-", @"." ];
|
||||
NSString *safeString = testString;
|
||||
|
||||
for (NSString *c in invalidChars) {
|
||||
safeString = [safeString stringByReplacingOccurrencesOfString:c withString:@"_"];
|
||||
}
|
||||
return safeString;
|
||||
}
|
||||
|
||||
static void log_handler(int lev, const char *fmt, va_list args) {
|
||||
va_list cap;
|
||||
va_copy(cap, args);
|
||||
/* Otherwise, we must use stdio to avoid log formatting (for autocompletion etc.) */
|
||||
vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, cap);
|
||||
fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n");
|
||||
va_end(cap);
|
||||
}
|
||||
|
||||
+ (void)initialize {
|
||||
bc_tester_init(log_handler, ORTP_MESSAGE, ORTP_ERROR);
|
||||
ortp_set_log_level_mask(ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL);
|
||||
|
||||
int count = bc_tester_nb_suites();
|
||||
for (int i = 0; i < count; i++) {
|
||||
const char *suite = bc_tester_suite_name(i);
|
||||
|
||||
int test_count = bc_tester_nb_tests(suite);
|
||||
for (int k = 0; k < test_count; k++) {
|
||||
const char *test = bc_tester_test_name(suite, k);
|
||||
NSString *sSuite = [NSString stringWithUTF8String:suite];
|
||||
NSString *sTest = [NSString stringWithUTF8String:test];
|
||||
|
||||
if ([[mediastream_tester_Tests skippedSuites] containsObject:sSuite])
|
||||
continue;
|
||||
|
||||
// prepend test_ so that it gets found by introspection
|
||||
NSString *safesTest = [self safeifyTestString:sTest];
|
||||
NSString *safesSuite = [self safeifyTestString:sSuite];
|
||||
NSString *selectorName = [NSString stringWithFormat:@"test_%@__%@", safesSuite, safesTest];
|
||||
NSLog(@"Adding test: %@", selectorName);
|
||||
[mediastream_tester_Tests addInstanceMethodWithSelectorName:selectorName
|
||||
block:^(mediastream_tester_Tests *myself) {
|
||||
[myself testForSuite:sSuite andTest:sTest];
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setUp {
|
||||
[super setUp];
|
||||
self.bundlePath = [[NSBundle mainBundle] bundlePath];
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||
self.documentPath = [paths objectAtIndex:0];
|
||||
self.staticImagePath = [[self.bundlePath stringByAppendingString:@"/"] stringByAppendingString:@"nowebcamCIF.jpg"];
|
||||
|
||||
NSLog(@"Bundle path: %@", self.bundlePath);
|
||||
NSLog(@"Document path: %@", self.documentPath);
|
||||
|
||||
bc_tester_writable_dir_prefix = [self.documentPath UTF8String];
|
||||
bc_tester_read_dir_prefix = [self.bundlePath UTF8String];
|
||||
|
||||
ms_static_image_set_default_image([self.staticImagePath UTF8String]);
|
||||
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
- (void)tearDown {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testForSuite:(NSString *)suite andTest:(NSString *)test {
|
||||
NSLog(@"Launching test %@ from suite %@", test, suite);
|
||||
XCTAssertFalse(bc_tester_run_tests([suite UTF8String], [test UTF8String]), @"Suite '%@' / Test '%@' failed", suite,
|
||||
test);
|
||||
}
|
||||
|
||||
@end
|
||||
Loading…
Add table
Reference in a new issue