diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 9545731036..1fd1843193 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -19,6 +19,12 @@ + + + + + location = "group:submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj"> + location = "group:submodules/RaiseToListen/RaiseToListen_Xcode.xcodeproj"> +#import + +UIImage * _Nullable applyScreenshotEffectToImage(UIImage * _Nonnull image); diff --git a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m b/submodules/ImageBlur/Sources/ApplyScreenshotEffect.m similarity index 80% rename from submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m rename to submodules/ImageBlur/Sources/ApplyScreenshotEffect.m index cdb6322cf2..769a870df3 100644 --- a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m +++ b/submodules/ImageBlur/Sources/ApplyScreenshotEffect.m @@ -1,73 +1,62 @@ - - -#import "UIImage+ImageEffects.h" +#import "ApplyScreenshotEffect.h" #import #import -@implementation UIImage (ImageEffects) - -- (UIImage *)applyScreenshotEffect -{ - UIColor *tintColor = [UIColor colorWithWhite:1.0f alpha:0.3f]; - return [self applyBlurWithRadius:10 tintColor:tintColor saturationDeltaFactor:1.8f maskImage:nil]; -} - -- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage -{ +UIImage * _Nullable applyBlurWithRadius(UIImage *image, CGFloat blurRadius, UIColor * tintColor, CGFloat saturationDeltaFactor, UIImage * _Nullable maskImage) { // Check pre-conditions. - if (self.size.width < 1 || self.size.height < 1) { - NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", self.size.width, self.size.height, self); + if (image.size.width < 1 || image.size.height < 1) { + NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", image.size.width, image.size.height, image); return nil; } - if (!self.CGImage) { - NSLog (@"*** error: image must be backed by a CGImage: %@", self); + if (!image.CGImage) { + NSLog (@"*** error: image must be backed by a CGImage: %@", image); return nil; } if (maskImage && !maskImage.CGImage) { NSLog (@"*** error: maskImage must be backed by a CGImage: %@", maskImage); return nil; } - - CGRect imageRect = { CGPointZero, self.size }; - UIImage *effectImage = self; + + CGRect imageRect = { CGPointZero, image.size }; + UIImage *effectImage = image; BOOL hasBlur = blurRadius > __FLT_EPSILON__; BOOL hasSaturationChange = fabs(saturationDeltaFactor - 1.) > __FLT_EPSILON__; if (hasBlur || hasSaturationChange) { - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef effectInContext = UIGraphicsGetCurrentContext(); CGContextScaleCTM(effectInContext, 1.0, -1.0); - CGContextTranslateCTM(effectInContext, 0, -self.size.height); - CGContextDrawImage(effectInContext, imageRect, self.CGImage); - + CGContextTranslateCTM(effectInContext, 0, -image.size.height); + CGContextDrawImage(effectInContext, imageRect, image.CGImage); + vImage_Buffer effectInBuffer; effectInBuffer.data = CGBitmapContextGetData(effectInContext); effectInBuffer.width = CGBitmapContextGetWidth(effectInContext); effectInBuffer.height = CGBitmapContextGetHeight(effectInContext); effectInBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectInContext); - - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef effectOutContext = UIGraphicsGetCurrentContext(); vImage_Buffer effectOutBuffer; effectOutBuffer.data = CGBitmapContextGetData(effectOutContext); effectOutBuffer.width = CGBitmapContextGetWidth(effectOutContext); effectOutBuffer.height = CGBitmapContextGetHeight(effectOutContext); effectOutBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectOutContext); - + if (hasBlur) { // A description of how to compute the box kernel width from the Gaussian // radius (aka standard deviation) appears in the SVG spec: // http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement - // + // // For larger values of 's' (s >= 2.0), an approximation can be used: Three // successive box-blurs build a piece-wise quadratic convolution kernel, which // approximates the Gaussian kernel to within roughly 3%. // // let d = floor(s * 3*sqrt(2*pi)/4 + 0.5) - // + // // ... if d is odd, use three box-blurs of size 'd', centered on the output pixel. - // + // CGFloat inputRadius = blurRadius * [[UIScreen mainScreen] scale]; NSUInteger radius = (NSUInteger)(floor(inputRadius * 3.0f * ((CGFloat)sqrt(2 * M_PI)) / 4 + 0.5f)); if (radius % 2 != 1) { @@ -84,7 +73,7 @@ 0.0722f + 0.9278f * s, 0.0722f - 0.0722f * s, 0.0722f - 0.0722f * s, 0, 0.7152f - 0.7152f * s, 0.7152f + 0.2848f * s, 0.7152f - 0.7152f * s, 0, 0.2126f - 0.2126f * s, 0.2126f - 0.2126f * s, 0.2126f + 0.7873f * s, 0, - 0, 0, 0, 1, + 0, 0, 0, 1, }; const int32_t divisor = 256; NSUInteger matrixSize = sizeof(floatingPointSaturationMatrix)/sizeof(floatingPointSaturationMatrix[0]); @@ -103,21 +92,21 @@ if (!effectImageBuffersAreSwapped) effectImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); - + if (effectImageBuffersAreSwapped) effectImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } - + // Set up output context. - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef outputContext = UIGraphicsGetCurrentContext(); CGContextScaleCTM(outputContext, 1.0, -1.0); - CGContextTranslateCTM(outputContext, 0, -self.size.height); - + CGContextTranslateCTM(outputContext, 0, -image.size.height); + // Draw base image. - CGContextDrawImage(outputContext, imageRect, self.CGImage); - + CGContextDrawImage(outputContext, imageRect, image.CGImage); + // Draw effect image. if (hasBlur) { CGContextSaveGState(outputContext); @@ -127,7 +116,7 @@ CGContextDrawImage(outputContext, imageRect, effectImage.CGImage); CGContextRestoreGState(outputContext); } - + // Add in color tint. if (tintColor) { CGContextSaveGState(outputContext); @@ -135,13 +124,15 @@ CGContextFillRect(outputContext, imageRect); CGContextRestoreGState(outputContext); } - + // Output image is ready. UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); - + return outputImage; } - -@end +UIImage * _Nullable applyScreenshotEffectToImage(UIImage * _Nonnull image) { + UIColor *tintColor = [UIColor colorWithWhite:1.0f alpha:0.3f]; + return applyBlurWithRadius(image, 10.0f, tintColor, 1.8f, nil); +} diff --git a/submodules/ImageBlur/Sources/ImageBlur.h b/submodules/ImageBlur/Sources/ImageBlur.h index 21ab6cdb46..c70dd7a483 100644 --- a/submodules/ImageBlur/Sources/ImageBlur.h +++ b/submodules/ImageBlur/Sources/ImageBlur.h @@ -7,5 +7,6 @@ FOUNDATION_EXPORT double ImageBlurVersionNumber; FOUNDATION_EXPORT const unsigned char ImageBlurVersionString[]; #import +#import diff --git a/submodules/Opus/Info.plist b/submodules/Opus/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Opus/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/TelegramUI/third-party/opus/lib/libopus.a b/submodules/Opus/Sources/opus/lib/libopus.a similarity index 100% rename from submodules/TelegramUI/third-party/opus/lib/libopus.a rename to submodules/Opus/Sources/opus/lib/libopus.a diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus.h b/submodules/Opus/Sources/opus/opus.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus.h rename to submodules/Opus/Sources/opus/opus.h index d282f21d25..dd5a8fe2d2 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus.h +++ b/submodules/Opus/Sources/opus/opus.h @@ -33,8 +33,8 @@ #ifndef OPUS_H #define OPUS_H -#include "opus_types.h" -#include "opus_defines.h" +#include +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h b/submodules/Opus/Sources/opus_defines.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h rename to submodules/Opus/Sources/opus_defines.h index fbf5d0eb74..2239c3ec50 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h +++ b/submodules/Opus/Sources/opus_defines.h @@ -33,7 +33,7 @@ #ifndef OPUS_DEFINES_H #define OPUS_DEFINES_H -#include "opus_types.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h b/submodules/Opus/Sources/opus_multistream.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h rename to submodules/Opus/Sources/opus_multistream.h index babcee6905..0347310a00 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h +++ b/submodules/Opus/Sources/opus_multistream.h @@ -33,7 +33,7 @@ #ifndef OPUS_MULTISTREAM_H #define OPUS_MULTISTREAM_H -#include "opus.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h b/submodules/Opus/Sources/opus_projection.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h rename to submodules/Opus/Sources/opus_projection.h index 9dabf4e85c..d33d9e332c 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h +++ b/submodules/Opus/Sources/opus_projection.h @@ -33,7 +33,7 @@ #ifndef OPUS_PROJECTION_H #define OPUS_PROJECTION_H -#include "opus_multistream.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_types.h b/submodules/Opus/Sources/opus_types.h similarity index 100% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_types.h rename to submodules/Opus/Sources/opus_types.h diff --git a/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj b/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..d34be5aafd --- /dev/null +++ b/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,540 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E43DB23058AC90049C28B /* opus.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D423058AC90049C28B /* opus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DC23058AC90049C28B /* opus_multistream.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D523058AC90049C28B /* opus_multistream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DE23058ACA0049C28B /* opus_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D823058AC90049C28B /* opus_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DF23058ACA0049C28B /* opus_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D923058AC90049C28B /* opus_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43E023058ACA0049C28B /* opus_projection.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43DA23058AC90049C28B /* opus_projection.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E43C4230582870049C28B /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Opus.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43C8230582870049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E43D423058AC90049C28B /* opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus.h; path = opus/opus.h; sourceTree = ""; }; + D03E43D523058AC90049C28B /* opus_multistream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_multistream.h; sourceTree = ""; }; + D03E43D823058AC90049C28B /* opus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_types.h; sourceTree = ""; }; + D03E43D923058AC90049C28B /* opus_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_defines.h; sourceTree = ""; }; + D03E43DA23058AC90049C28B /* opus_projection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_projection.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E43C1230582870049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E43BA230582870049C28B = { + isa = PBXGroup; + children = ( + D03E43C8230582870049C28B /* Info.plist */, + D03E43C6230582870049C28B /* Sources */, + D03E43C5230582870049C28B /* Products */, + ); + sourceTree = ""; + }; + D03E43C5230582870049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E43C4230582870049C28B /* Opus.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E43C6230582870049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E43D423058AC90049C28B /* opus.h */, + D03E43D523058AC90049C28B /* opus_multistream.h */, + D03E43D823058AC90049C28B /* opus_types.h */, + D03E43D923058AC90049C28B /* opus_defines.h */, + D03E43DA23058AC90049C28B /* opus_projection.h */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E43BF230582870049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E43DE23058ACA0049C28B /* opus_types.h in Headers */, + D03E43DB23058AC90049C28B /* opus.h in Headers */, + D03E43DC23058AC90049C28B /* opus_multistream.h in Headers */, + D03E43E023058ACA0049C28B /* opus_projection.h in Headers */, + D03E43DF23058ACA0049C28B /* opus_defines.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E43C3230582870049C28B /* opus */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E43CC230582870049C28B /* Build configuration list for PBXNativeTarget "opus" */; + buildPhases = ( + D03E43BF230582870049C28B /* Headers */, + D03E43C0230582870049C28B /* Sources */, + D03E43C1230582870049C28B /* Frameworks */, + D03E43C2230582870049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = opus; + productName = Opus; + productReference = D03E43C4230582870049C28B /* Opus.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E43BB230582870049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E43C3230582870049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E43BE230582870049C28B /* Build configuration list for PBXProject "opus_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E43BA230582870049C28B; + productRefGroup = D03E43C5230582870049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E43C3230582870049C28B /* opus */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E43C2230582870049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E43C0230582870049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E43CA230582870049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E43CB230582870049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E43CD230582870049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E43CE230582870049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E43CF230582D70049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E43D0230582D70049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E43D1230582E40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E43D2230582E40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E43BE230582870049C28B /* Build configuration list for PBXProject "opus_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E43CA230582870049C28B /* DebugAppStoreLLC */, + D03E43CF230582D70049C28B /* DebugHockeyapp */, + D03E43CB230582870049C28B /* ReleaseAppStoreLLC */, + D03E43D1230582E40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E43CC230582870049C28B /* Build configuration list for PBXNativeTarget "opus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E43CD230582870049C28B /* DebugAppStoreLLC */, + D03E43D0230582D70049C28B /* DebugHockeyapp */, + D03E43CE230582870049C28B /* ReleaseAppStoreLLC */, + D03E43D2230582E40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E43BB230582870049C28B /* Project object */; +} diff --git a/submodules/OpusBinding/Info.plist b/submodules/OpusBinding/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/OpusBinding/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj b/submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..b0f40fb056 --- /dev/null +++ b/submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,672 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E434D23057EBE0049C28B /* OpusBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E434B23057EBE0049C28B /* OpusBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E437D23057FD50049C28B /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E435E23057FD50049C28B /* internal.h */; }; + D03E437E23057FD50049C28B /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E435F23057FD50049C28B /* opusfile.c */; }; + D03E437F23057FD50049C28B /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436023057FD50049C28B /* info.c */; }; + D03E438023057FD50049C28B /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436123057FD50049C28B /* internal.c */; }; + D03E438123057FD50049C28B /* opusfile.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E436223057FD50049C28B /* opusfile.h */; }; + D03E438223057FD50049C28B /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436323057FD50049C28B /* stream.c */; }; + D03E438923057FD50049C28B /* picture.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E436F23057FD50049C28B /* picture.h */; }; + D03E438A23057FD50049C28B /* opusenc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E437023057FD50049C28B /* opusenc.m */; }; + D03E438B23057FD50049C28B /* opus_header.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437123057FD50049C28B /* opus_header.c */; }; + D03E438C23057FD50049C28B /* wav_io.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437223057FD50049C28B /* wav_io.c */; }; + D03E438D23057FD50049C28B /* diag_range.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437323057FD50049C28B /* diag_range.h */; }; + D03E438E23057FD50049C28B /* picture.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437423057FD50049C28B /* picture.c */; }; + D03E438F23057FD50049C28B /* opus_header.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437523057FD50049C28B /* opus_header.h */; }; + D03E439123057FD50049C28B /* wav_io.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437723057FD50049C28B /* wav_io.h */; }; + D03E439223057FD50049C28B /* diag_range.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437823057FD50049C28B /* diag_range.c */; }; + D03E439F230581B30049C28B /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E439D230581B30049C28B /* TGDataItem.m */; }; + D03E43A0230581B30049C28B /* TGDataItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E439E230581B30049C28B /* TGDataItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43E3230590210049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43E2230590210049C28B /* Foundation.framework */; }; + D03E43E8230593140049C28B /* TGOggOpusWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43E6230593140049C28B /* TGOggOpusWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44122305ACC10049C28B /* opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44112305ACC10049C28B /* opus.framework */; }; + D03E441C2305AEE30049C28B /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44182305AEE30049C28B /* ogg.h */; }; + D03E441D2305AEE30049C28B /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E44192305AEE30049C28B /* framing.c */; }; + D03E441E2305AEE30049C28B /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E441A2305AEE30049C28B /* os_types.h */; }; + D03E441F2305AEE30049C28B /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E441B2305AEE30049C28B /* bitwise.c */; }; + D03E44222305AFEB0049C28B /* OggOpusReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44202305AFEB0049C28B /* OggOpusReader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44232305AFEB0049C28B /* OggOpusReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44212305AFEB0049C28B /* OggOpusReader.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E434823057EBE0049C28B /* OpusBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpusBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E434B23057EBE0049C28B /* OpusBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpusBinding.h; sourceTree = ""; }; + D03E434C23057EBE0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E435E23057FD50049C28B /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; + D03E435F23057FD50049C28B /* opusfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opusfile.c; sourceTree = ""; }; + D03E436023057FD50049C28B /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; + D03E436123057FD50049C28B /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; + D03E436223057FD50049C28B /* opusfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = ""; }; + D03E436323057FD50049C28B /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; + D03E436F23057FD50049C28B /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = ""; }; + D03E437023057FD50049C28B /* opusenc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = opusenc.m; sourceTree = ""; }; + D03E437123057FD50049C28B /* opus_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_header.c; sourceTree = ""; }; + D03E437223057FD50049C28B /* wav_io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav_io.c; sourceTree = ""; }; + D03E437323057FD50049C28B /* diag_range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diag_range.h; sourceTree = ""; }; + D03E437423057FD50049C28B /* picture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = picture.c; sourceTree = ""; }; + D03E437523057FD50049C28B /* opus_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_header.h; sourceTree = ""; }; + D03E437723057FD50049C28B /* wav_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wav_io.h; sourceTree = ""; }; + D03E437823057FD50049C28B /* diag_range.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = diag_range.c; sourceTree = ""; }; + D03E439D230581B30049C28B /* TGDataItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGDataItem.m; sourceTree = ""; }; + D03E439E230581B30049C28B /* TGDataItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGDataItem.h; sourceTree = ""; }; + D03E43E2230590210049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E43E4230590240049C28B /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43E6230593140049C28B /* TGOggOpusWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TGOggOpusWriter.h; sourceTree = ""; }; + D03E440F2305ACBB0049C28B /* ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44112305ACC10049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44182305AEE30049C28B /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = ""; }; + D03E44192305AEE30049C28B /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = framing.c; sourceTree = ""; }; + D03E441A2305AEE30049C28B /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = ""; }; + D03E441B2305AEE30049C28B /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitwise.c; sourceTree = ""; }; + D03E44202305AFEB0049C28B /* OggOpusReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OggOpusReader.h; sourceTree = ""; }; + D03E44212305AFEB0049C28B /* OggOpusReader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OggOpusReader.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E434523057EBE0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44122305ACC10049C28B /* opus.framework in Frameworks */, + D03E43E3230590210049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E433E23057EBE0049C28B = { + isa = PBXGroup; + children = ( + D03E434C23057EBE0049C28B /* Info.plist */, + D03E434A23057EBE0049C28B /* Sources */, + D03E434923057EBE0049C28B /* Products */, + D03E43E1230590200049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E434923057EBE0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E434823057EBE0049C28B /* OpusBinding.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E434A23057EBE0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E439E230581B30049C28B /* TGDataItem.h */, + D03E439D230581B30049C28B /* TGDataItem.m */, + D03E43E6230593140049C28B /* TGOggOpusWriter.h */, + D03E44202305AFEB0049C28B /* OggOpusReader.h */, + D03E44212305AFEB0049C28B /* OggOpusReader.m */, + D03E44172305AEE30049C28B /* ogg */, + D03E436E23057FD50049C28B /* opusenc */, + D03E435D23057FD50049C28B /* opusfile */, + D03E434B23057EBE0049C28B /* OpusBinding.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E435D23057FD50049C28B /* opusfile */ = { + isa = PBXGroup; + children = ( + D03E435E23057FD50049C28B /* internal.h */, + D03E435F23057FD50049C28B /* opusfile.c */, + D03E436023057FD50049C28B /* info.c */, + D03E436123057FD50049C28B /* internal.c */, + D03E436223057FD50049C28B /* opusfile.h */, + D03E436323057FD50049C28B /* stream.c */, + ); + path = opusfile; + sourceTree = ""; + }; + D03E436E23057FD50049C28B /* opusenc */ = { + isa = PBXGroup; + children = ( + D03E436F23057FD50049C28B /* picture.h */, + D03E437023057FD50049C28B /* opusenc.m */, + D03E437123057FD50049C28B /* opus_header.c */, + D03E437223057FD50049C28B /* wav_io.c */, + D03E437323057FD50049C28B /* diag_range.h */, + D03E437423057FD50049C28B /* picture.c */, + D03E437523057FD50049C28B /* opus_header.h */, + D03E437723057FD50049C28B /* wav_io.h */, + D03E437823057FD50049C28B /* diag_range.c */, + ); + path = opusenc; + sourceTree = ""; + }; + D03E43E1230590200049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E44112305ACC10049C28B /* opus.framework */, + D03E440F2305ACBB0049C28B /* ogg.framework */, + D03E43E4230590240049C28B /* Opus.framework */, + D03E43E2230590210049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D03E44172305AEE30049C28B /* ogg */ = { + isa = PBXGroup; + children = ( + D03E44182305AEE30049C28B /* ogg.h */, + D03E44192305AEE30049C28B /* framing.c */, + D03E441A2305AEE30049C28B /* os_types.h */, + D03E441B2305AEE30049C28B /* bitwise.c */, + ); + path = ogg; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E434323057EBE0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E438923057FD50049C28B /* picture.h in Headers */, + D03E438F23057FD50049C28B /* opus_header.h in Headers */, + D03E439123057FD50049C28B /* wav_io.h in Headers */, + D03E437D23057FD50049C28B /* internal.h in Headers */, + D03E44222305AFEB0049C28B /* OggOpusReader.h in Headers */, + D03E441C2305AEE30049C28B /* ogg.h in Headers */, + D03E434D23057EBE0049C28B /* OpusBinding.h in Headers */, + D03E43A0230581B30049C28B /* TGDataItem.h in Headers */, + D03E438123057FD50049C28B /* opusfile.h in Headers */, + D03E441E2305AEE30049C28B /* os_types.h in Headers */, + D03E438D23057FD50049C28B /* diag_range.h in Headers */, + D03E43E8230593140049C28B /* TGOggOpusWriter.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E434723057EBE0049C28B /* OpusBinding */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E435023057EBE0049C28B /* Build configuration list for PBXNativeTarget "OpusBinding" */; + buildPhases = ( + D03E434323057EBE0049C28B /* Headers */, + D03E434423057EBE0049C28B /* Sources */, + D03E434523057EBE0049C28B /* Frameworks */, + D03E434623057EBE0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OpusBinding; + productName = OpusBinding; + productReference = D03E434823057EBE0049C28B /* OpusBinding.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E433F23057EBE0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E434723057EBE0049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E434223057EBE0049C28B /* Build configuration list for PBXProject "OpusBinding_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E433E23057EBE0049C28B; + productRefGroup = D03E434923057EBE0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E434723057EBE0049C28B /* OpusBinding */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E434623057EBE0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E434423057EBE0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E437E23057FD50049C28B /* opusfile.c in Sources */, + D03E437F23057FD50049C28B /* info.c in Sources */, + D03E438E23057FD50049C28B /* picture.c in Sources */, + D03E438A23057FD50049C28B /* opusenc.m in Sources */, + D03E438C23057FD50049C28B /* wav_io.c in Sources */, + D03E44232305AFEB0049C28B /* OggOpusReader.m in Sources */, + D03E441F2305AEE30049C28B /* bitwise.c in Sources */, + D03E439223057FD50049C28B /* diag_range.c in Sources */, + D03E439F230581B30049C28B /* TGDataItem.m in Sources */, + D03E438B23057FD50049C28B /* opus_header.c in Sources */, + D03E438023057FD50049C28B /* internal.c in Sources */, + D03E438223057FD50049C28B /* stream.c in Sources */, + D03E441D2305AEE30049C28B /* framing.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E434E23057EBE0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E434F23057EBE0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E435123057EBE0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = DebugAppStoreLLC; + }; + D03E435223057EBE0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E435323057F620049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E435423057F620049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = DebugHockeyapp; + }; + D03E435523057F6B0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E435623057F6B0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E434223057EBE0049C28B /* Build configuration list for PBXProject "OpusBinding_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E434E23057EBE0049C28B /* DebugAppStoreLLC */, + D03E435323057F620049C28B /* DebugHockeyapp */, + D03E434F23057EBE0049C28B /* ReleaseAppStoreLLC */, + D03E435523057F6B0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E435023057EBE0049C28B /* Build configuration list for PBXNativeTarget "OpusBinding" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E435123057EBE0049C28B /* DebugAppStoreLLC */, + D03E435423057F620049C28B /* DebugHockeyapp */, + D03E435223057EBE0049C28B /* ReleaseAppStoreLLC */, + D03E435623057F6B0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E433F23057EBE0049C28B /* Project object */; +} diff --git a/submodules/OpusBinding/Sources/OggOpusReader.h b/submodules/OpusBinding/Sources/OggOpusReader.h new file mode 100644 index 0000000000..2bfe4c5438 --- /dev/null +++ b/submodules/OpusBinding/Sources/OggOpusReader.h @@ -0,0 +1,13 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface OggOpusReader : NSObject + +- (instancetype _Nullable)initWithPath:(NSString *)path; + +- (int32_t)read:(void *)pcmData bufSize:(int)bufSize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/submodules/OpusBinding/Sources/OggOpusReader.m b/submodules/OpusBinding/Sources/OggOpusReader.m new file mode 100644 index 0000000000..bf569da19f --- /dev/null +++ b/submodules/OpusBinding/Sources/OggOpusReader.m @@ -0,0 +1,35 @@ +#import "OggOpusReader.h" + +#import "opusfile/opusfile.h" + +@interface OggOpusReader () { + OggOpusFile *_opusFile; +} + +@end + +@implementation OggOpusReader + +- (instancetype _Nullable)init:(NSString *)path { + self = [super init]; + if (self != nil) { + int error = OPUS_OK; + _opusFile = op_open_file(path.UTF8String, &error); + if (_opusFile == NULL || error != OPUS_OK) { + return nil; + } + } + return self; +} + +- (void)dealloc { + if (_opusFile) { + op_free(_opusFile); + } +} + +- (int32_t)read:(void *)pcmData bufSize:(int)bufSize { + return op_read(_opusFile, pcmData, bufSize, NULL); +} + +@end diff --git a/submodules/OpusBinding/Sources/OpusBinding.h b/submodules/OpusBinding/Sources/OpusBinding.h new file mode 100644 index 0000000000..43fe2aebe3 --- /dev/null +++ b/submodules/OpusBinding/Sources/OpusBinding.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for OpusBinding. +FOUNDATION_EXPORT double OpusBindingVersionNumber; + +//! Project version string for OpusBinding. +FOUNDATION_EXPORT const unsigned char OpusBindingVersionString[]; + +#import +#import +#import diff --git a/submodules/TelegramUI/TelegramUI/TGDataItem.h b/submodules/OpusBinding/Sources/TGDataItem.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGDataItem.h rename to submodules/OpusBinding/Sources/TGDataItem.h diff --git a/submodules/TelegramUI/TelegramUI/TGDataItem.m b/submodules/OpusBinding/Sources/TGDataItem.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGDataItem.m rename to submodules/OpusBinding/Sources/TGDataItem.m diff --git a/submodules/TelegramUI/third-party/opusenc/opusenc.h b/submodules/OpusBinding/Sources/TGOggOpusWriter.h similarity index 58% rename from submodules/TelegramUI/third-party/opusenc/opusenc.h rename to submodules/OpusBinding/Sources/TGOggOpusWriter.h index 03d6425ede..ffaaaf8564 100644 --- a/submodules/TelegramUI/third-party/opusenc/opusenc.h +++ b/submodules/OpusBinding/Sources/TGOggOpusWriter.h @@ -1,17 +1,16 @@ -#ifndef __OPUSENC_H -#define __OPUSENC_H - #import +NS_ASSUME_NONNULL_BEGIN + @class TGDataItem; @interface TGOggOpusWriter : NSObject - (bool)beginWithDataItem:(TGDataItem *)dataItem; -- (bool)writeFrame:(uint8_t *)framePcmBytes frameByteCount:(NSUInteger)frameByteCount; +- (bool)writeFrame:(uint8_t * _Nullable)framePcmBytes frameByteCount:(NSUInteger)frameByteCount; - (NSUInteger)encodedBytes; - (NSTimeInterval)encodedDuration; @end -#endif /* __OPUSENC_H */ +NS_ASSUME_NONNULL_END diff --git a/submodules/TelegramUI/third-party/ogg/ogg/bitwise.c b/submodules/OpusBinding/Sources/ogg/bitwise.c similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/bitwise.c rename to submodules/OpusBinding/Sources/ogg/bitwise.c diff --git a/submodules/TelegramUI/third-party/ogg/ogg/framing.c b/submodules/OpusBinding/Sources/ogg/framing.c similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/framing.c rename to submodules/OpusBinding/Sources/ogg/framing.c diff --git a/submodules/TelegramUI/third-party/ogg/ogg/ogg.h b/submodules/OpusBinding/Sources/ogg/ogg.h similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/ogg.h rename to submodules/OpusBinding/Sources/ogg/ogg.h diff --git a/submodules/TelegramUI/third-party/ogg/ogg/os_types.h b/submodules/OpusBinding/Sources/ogg/os_types.h similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/os_types.h rename to submodules/OpusBinding/Sources/ogg/os_types.h diff --git a/submodules/TelegramUI/third-party/opusenc/diag_range.c b/submodules/OpusBinding/Sources/opusenc/diag_range.c similarity index 99% rename from submodules/TelegramUI/third-party/opusenc/diag_range.c rename to submodules/OpusBinding/Sources/opusenc/diag_range.c index 20bbfe20dd..cd304ef90e 100644 --- a/submodules/TelegramUI/third-party/opusenc/diag_range.c +++ b/submodules/OpusBinding/Sources/opusenc/diag_range.c @@ -40,11 +40,7 @@ #endif #include -#ifdef BUCK #include -#else -#include "opus.h" -#endif #include "diag_range.h" /*This is some non-exported code copied wholesale from libopus. diff --git a/submodules/TelegramUI/third-party/opusenc/diag_range.h b/submodules/OpusBinding/Sources/opusenc/diag_range.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/diag_range.h rename to submodules/OpusBinding/Sources/opusenc/diag_range.h diff --git a/submodules/TelegramUI/third-party/opusenc/opus_header.c b/submodules/OpusBinding/Sources/opusenc/opus_header.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/opus_header.c rename to submodules/OpusBinding/Sources/opusenc/opus_header.c diff --git a/submodules/TelegramUI/third-party/opusenc/opus_header.h b/submodules/OpusBinding/Sources/opusenc/opus_header.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/opus_header.h rename to submodules/OpusBinding/Sources/opusenc/opus_header.h diff --git a/submodules/TelegramUI/third-party/opusenc/opusenc.m b/submodules/OpusBinding/Sources/opusenc/opusenc.m similarity index 98% rename from submodules/TelegramUI/third-party/opusenc/opusenc.m rename to submodules/OpusBinding/Sources/opusenc/opusenc.m index d29eaa10ad..b8d7ef69fc 100644 --- a/submodules/TelegramUI/third-party/opusenc/opusenc.m +++ b/submodules/OpusBinding/Sources/opusenc/opusenc.m @@ -1,13 +1,8 @@ -#import "opusenc.h" - -#ifdef BUCK #include -#else -#include "opus_types.h" -#endif #include #import "TGDataItem.h" +#import "TGOggOpusWriter.h" #ifdef ENABLE_NLS #include @@ -52,13 +47,7 @@ typedef struct char *description; } input_format; -#ifdef BUCK #include -#include -#else -#include "opus.h" -#include "opus_multistream.h" -#endif #include #include "opus_header.h" diff --git a/submodules/TelegramUI/third-party/opusenc/picture.c b/submodules/OpusBinding/Sources/opusenc/picture.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/picture.c rename to submodules/OpusBinding/Sources/opusenc/picture.c diff --git a/submodules/TelegramUI/third-party/opusenc/picture.h b/submodules/OpusBinding/Sources/opusenc/picture.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/picture.h rename to submodules/OpusBinding/Sources/opusenc/picture.h diff --git a/submodules/TelegramUI/third-party/opusenc/wav_io.c b/submodules/OpusBinding/Sources/opusenc/wav_io.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/wav_io.c rename to submodules/OpusBinding/Sources/opusenc/wav_io.c diff --git a/submodules/TelegramUI/third-party/opusenc/wav_io.h b/submodules/OpusBinding/Sources/opusenc/wav_io.h similarity index 97% rename from submodules/TelegramUI/third-party/opusenc/wav_io.h rename to submodules/OpusBinding/Sources/opusenc/wav_io.h index 38c4423400..4309766d86 100644 --- a/submodules/TelegramUI/third-party/opusenc/wav_io.h +++ b/submodules/OpusBinding/Sources/opusenc/wav_io.h @@ -29,11 +29,7 @@ #define WAV_IO_H #include -#ifdef BUCK #include -#else -#include "opus_types.h" -#endif #if !defined(__LITTLE_ENDIAN__) && ( defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__) ) #define le_short(s) ((short) ((unsigned short) (s) << 8) | ((unsigned short) (s) >> 8)) diff --git a/submodules/TelegramUI/third-party/opusfile/info.c b/submodules/OpusBinding/Sources/opusfile/info.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/info.c rename to submodules/OpusBinding/Sources/opusfile/info.c diff --git a/submodules/TelegramUI/third-party/opusfile/internal.c b/submodules/OpusBinding/Sources/opusfile/internal.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/internal.c rename to submodules/OpusBinding/Sources/opusfile/internal.c diff --git a/submodules/TelegramUI/third-party/opusfile/internal.h b/submodules/OpusBinding/Sources/opusfile/internal.h similarity index 99% rename from submodules/TelegramUI/third-party/opusfile/internal.h rename to submodules/OpusBinding/Sources/opusfile/internal.h index b1109deb90..2487cf25db 100644 --- a/submodules/TelegramUI/third-party/opusfile/internal.h +++ b/submodules/OpusBinding/Sources/opusfile/internal.h @@ -29,7 +29,7 @@ # endif # include -# include "opusfile.h" +# include typedef struct OggOpusLink OggOpusLink; diff --git a/submodules/TelegramUI/third-party/opusfile/opusfile.c b/submodules/OpusBinding/Sources/opusfile/opusfile.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/opusfile.c rename to submodules/OpusBinding/Sources/opusfile/opusfile.c diff --git a/submodules/TelegramUI/third-party/opusfile/opusfile.h b/submodules/OpusBinding/Sources/opusfile/opusfile.h similarity index 99% rename from submodules/TelegramUI/third-party/opusfile/opusfile.h rename to submodules/OpusBinding/Sources/opusfile/opusfile.h index 2c4a9963e9..fd7317ec6d 100644 --- a/submodules/TelegramUI/third-party/opusfile/opusfile.h +++ b/submodules/OpusBinding/Sources/opusfile/opusfile.h @@ -107,11 +107,7 @@ extern "C" { # include # include # include -#ifdef BUCK # include -#else -# include "opus_multistream.h" -#endif /**@cond PRIVATE*/ diff --git a/submodules/TelegramUI/third-party/opusfile/stream.c b/submodules/OpusBinding/Sources/opusfile/stream.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/stream.c rename to submodules/OpusBinding/Sources/opusfile/stream.c diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index 621d517387..c71502fd18 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -16,6 +16,7 @@ import TelegramNotices import LegacyUI import TelegramPermissionsUI import PasscodeUI +import ImageBlur func isAccessLocked(data: PostboxAccessChallengeData, at timestamp: Int32) -> Bool { if data.isLockable, let autolockDeadline = data.autolockDeadline, autolockDeadline <= timestamp { @@ -870,7 +871,7 @@ final class AuthorizedApplicationContext { UIGraphicsPushContext(context) self.mainWindow.hostView.containerView.drawHierarchy(in: CGRect(origin: CGPoint(), size: unscaledSize), afterScreenUpdates: false) UIGraphicsPopContext() - })?.applyScreenshotEffect() + }).flatMap(applyScreenshotEffectToImage) self.lockedCoveringView.updateSnapshot(image) } else { self.lockedCoveringView.updateSnapshot(nil) diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm index a65f3d3aa7..eb9da777bc 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm +++ b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm @@ -5,8 +5,7 @@ #import -#import "opusfile.h" -#import "opusenc.h" +#import const NSInteger TGBridgeAudioDecoderInputSampleRate = 48000; const NSInteger TGBridgeAudioDecoderResultSampleRate = 24000; @@ -56,7 +55,7 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons NSURL *_url; NSURL *_resultURL; - OggOpusFile *_opusFile; + OggOpusReader *_opusReader; bool _finished; bool _cancelled; @@ -83,10 +82,8 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons { [[TGBridgeAudioDecoder processingQueue] dispatch:^ { - int error = OPUS_OK; - _opusFile = op_open_file(_url.path.UTF8String, &error); - if (_opusFile == NULL || error != OPUS_OK) - { + _opusReader = [[OggOpusReader alloc] initWithPath:_url.path]; + if (_opusReader == NULL) { return; } @@ -148,7 +145,7 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons uint32_t writtenOutputBytes = 0; while (writtenOutputBytes < TGBridgeAudioDecoderBufferSize) { - int32_t readSamples = op_read(_opusFile, (opus_int16 *)(srcBuffer + writtenOutputBytes), (TGBridgeAudioDecoderBufferSize - writtenOutputBytes) / sourceFormat.mBytesPerFrame, NULL); + int32_t readSamples = [_opusReader read:(uint16_t *)(srcBuffer + writtenOutputBytes) bufSize:(TGBridgeAudioDecoderBufferSize - writtenOutputBytes) / sourceFormat.mBytesPerFrame]; if (readSamples > 0) writtenOutputBytes += readSamples * sourceFormat.mBytesPerFrame; diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m index c2a137bfc0..bf32a17492 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m +++ b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m @@ -1,14 +1,8 @@ #import "TGBridgeAudioEncoder.h" #import -#ifdef BUCK #import -#else -#import "opus.h" -#endif -#import "opusenc.h" - -#import "TGDataItem.h" +#import static const char *AMQueueSpecific = "AMQueueSpecific"; diff --git a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift index 01052fb460..116d296f84 100644 --- a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift +++ b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramAudio import UniversalMediaPlayer import AccountContext +import OpusBinding private let kOutputBus: UInt32 = 0 private let kInputBus: UInt32 = 1 diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 715ab75f60..1cc43dffc0 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,6 +1,4 @@ module TelegramUIPrivateModule { - header "../../third-party/opusenc/opusenc.h" - header "../TGDataItem.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" header "../Bridge Audio/TGBridgeAudioEncoder.h" header "../TGContactModel.h" @@ -10,5 +8,4 @@ module TelegramUIPrivateModule { header "../TGAutoDownloadPreferences.h" header "../TGPresentationAutoNightPreferences.h" header "../TGProxyItem.h" - header "../UIImage+ImageEffects.h" } diff --git a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h b/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h deleted file mode 100644 index d13a415abf..0000000000 --- a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h +++ /dev/null @@ -1,9 +0,0 @@ - - -#import - -@interface UIImage (ImageEffects) - -- (UIImage *)applyScreenshotEffect; - -@end diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 076d144013..bad6b3e055 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -146,8 +146,6 @@ D00817DD22B47A14008A895F /* LockedWindowCoveringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */; }; D00817DE22B47A14008A895F /* TGBridgeServer.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C422B47A13008A895F /* TGBridgeServer.m */; }; D00817DF22B47A14008A895F /* LegacyDataImportSplash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */; }; - D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817C622B47A13008A895F /* UIImage+ImageEffects.h */; }; - D00817E222B47A14008A895F /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C822B47A14008A895F /* UIImage+ImageEffects.m */; }; D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */; }; D008184A22B57225008A895F /* WatchCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184922B57225008A895F /* WatchCommon.framework */; }; D00818CD22B595CB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CC22B595CB008A895F /* LightweightAccountData.framework */; }; @@ -216,6 +214,9 @@ D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E5230572530049C28B /* ItemListAddressItem.framework */; }; D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E430E2305775D0049C28B /* DeviceProximity.framework */; }; D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4338230578550049C28B /* RaiseToListen.framework */; }; + D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E439323057FDF0049C28B /* OpusBinding.framework */; }; + D03E43EC2305954C0049C28B /* opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43EB2305954C0049C28B /* opus.framework */; }; + D03E43EE230595600049C28B /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43ED230595600049C28B /* libopus.a */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; @@ -478,7 +479,6 @@ D0EB5ADF1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */; }; D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; - D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B221DECB1AD00220C46 /* TGDataItem.m */; }; D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */; }; D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */; }; D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; }; @@ -490,17 +490,6 @@ D0EC6CFD1EB9F58800EBF1C3 /* AudioWaveform.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B2B1DED9B8900220C46 /* AudioWaveform.swift */; }; D0EC6CFF1EB9F58800EBF1C3 /* OverlayMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B421EB92DF600EBF1C3 /* OverlayMediaController.swift */; }; D0EC6D001EB9F58800EBF1C3 /* OverlayMediaControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B441EB92E5A00EBF1C3 /* OverlayMediaControllerNode.swift */; }; - D0EC6D021EB9F58800EBF1C3 /* diag_range.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AE81DECB0FE00220C46 /* diag_range.c */; }; - D0EC6D031EB9F58800EBF1C3 /* opus_header.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AEA1DECB0FE00220C46 /* opus_header.c */; }; - D0EC6D041EB9F58800EBF1C3 /* opusenc.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AED1DECB0FE00220C46 /* opusenc.m */; }; - D0EC6D051EB9F58800EBF1C3 /* picture.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AEE1DECB0FE00220C46 /* picture.c */; }; - D0EC6D061EB9F58800EBF1C3 /* wav_io.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF01DECB0FE00220C46 /* wav_io.c */; }; - D0EC6D071EB9F58800EBF1C3 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF41DECB0FE00220C46 /* bitwise.c */; }; - D0EC6D081EB9F58800EBF1C3 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF51DECB0FE00220C46 /* framing.c */; }; - D0EC6D091EB9F58800EBF1C3 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B021DECB0FE00220C46 /* info.c */; }; - D0EC6D0A1EB9F58800EBF1C3 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B031DECB0FE00220C46 /* internal.c */; }; - D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B051DECB0FE00220C46 /* opusfile.c */; }; - D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B071DECB0FE00220C46 /* stream.c */; }; D0EC6D251EB9F58800EBF1C3 /* FetchCachedRepresentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */; }; D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */; }; D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8B51E83120A00B4C64C /* FetchResource.swift */; }; @@ -698,7 +687,6 @@ D0EC6E921EB9F5B200EBF1C3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452C1D5E340300A7428A /* SwiftSignalKit.framework */; }; D0EC6E931EB9F5B200EBF1C3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452D1D5E340300A7428A /* TelegramCore.framework */; }; D0EC6E961EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EC6E941EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework */; }; - D0EC6EA21EB9FAFA00EBF1C3 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D03B251DECB26D00220C46 /* libopus.a */; }; D0EC6EA31EB9FB7A00EBF1C3 /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D075518E1DDA4F9E0073E051 /* SSignalKit.framework */; }; D0EC6EA41EB9FB8000EBF1C3 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AB0BB21D6718EB002C78E7 /* libz.tbd */; }; D0EC6EA51EB9FBD300EBF1C3 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AB0BB01D6718DA002C78E7 /* libiconv.tbd */; }; @@ -861,8 +849,6 @@ D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockedWindowCoveringView.swift; sourceTree = ""; }; D00817C422B47A13008A895F /* TGBridgeServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeServer.m; sourceTree = ""; }; D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImportSplash.swift; sourceTree = ""; }; - D00817C622B47A13008A895F /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; - D00817C822B47A14008A895F /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGPresentationAutoNightPreferences.m; sourceTree = ""; }; D008184922B57225008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00818CC22B595CB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -974,6 +960,10 @@ D03E42E5230572530049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E430E2305775D0049C28B /* DeviceProximity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceProximity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E4338230578550049C28B /* RaiseToListen.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RaiseToListen.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E439323057FDF0049C28B /* OpusBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpusBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43EB2305954C0049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43ED230595600049C28B /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = ../Opus/Sources/opus/lib/libopus.a; sourceTree = ""; }; + D03E44132305ACFC0049C28B /* ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; @@ -1272,32 +1262,6 @@ D0CFBB901FD881A600B65C0D /* AudioRecordningToneData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioRecordningToneData.swift; sourceTree = ""; }; D0CFBB941FD8B05000B65C0D /* OverlayInstantVideoDecoration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoDecoration.swift; sourceTree = ""; }; D0D03AE41DECAE8900220C46 /* ManagedAudioRecorder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedAudioRecorder.swift; sourceTree = ""; }; - D0D03AE81DECB0FE00220C46 /* diag_range.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = diag_range.c; sourceTree = ""; }; - D0D03AE91DECB0FE00220C46 /* diag_range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diag_range.h; sourceTree = ""; }; - D0D03AEA1DECB0FE00220C46 /* opus_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_header.c; sourceTree = ""; }; - D0D03AEB1DECB0FE00220C46 /* opus_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_header.h; sourceTree = ""; }; - D0D03AEC1DECB0FE00220C46 /* opusenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusenc.h; sourceTree = ""; }; - D0D03AED1DECB0FE00220C46 /* opusenc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = opusenc.m; sourceTree = ""; }; - D0D03AEE1DECB0FE00220C46 /* picture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = picture.c; sourceTree = ""; }; - D0D03AEF1DECB0FE00220C46 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = ""; }; - D0D03AF01DECB0FE00220C46 /* wav_io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav_io.c; sourceTree = ""; }; - D0D03AF11DECB0FE00220C46 /* wav_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wav_io.h; sourceTree = ""; }; - D0D03AF41DECB0FE00220C46 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ogg/bitwise.c; sourceTree = ""; }; - D0D03AF51DECB0FE00220C46 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ogg/framing.c; sourceTree = ""; }; - D0D03AF61DECB0FE00220C46 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ogg/ogg.h; sourceTree = ""; }; - D0D03AF71DECB0FE00220C46 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ogg/os_types.h; sourceTree = ""; }; - D0D03AFB1DECB0FE00220C46 /* opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus.h; path = include/opus/opus.h; sourceTree = ""; }; - D0D03AFC1DECB0FE00220C46 /* opus_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_defines.h; path = include/opus/opus_defines.h; sourceTree = ""; }; - D0D03AFD1DECB0FE00220C46 /* opus_multistream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_multistream.h; path = include/opus/opus_multistream.h; sourceTree = ""; }; - D0D03AFE1DECB0FE00220C46 /* opus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_types.h; path = include/opus/opus_types.h; sourceTree = ""; }; - D0D03B021DECB0FE00220C46 /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; - D0D03B031DECB0FE00220C46 /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; - D0D03B041DECB0FE00220C46 /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; - D0D03B051DECB0FE00220C46 /* opusfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opusfile.c; sourceTree = ""; }; - D0D03B061DECB0FE00220C46 /* opusfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = ""; }; - D0D03B071DECB0FE00220C46 /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; - D0D03B211DECB1AD00220C46 /* TGDataItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGDataItem.h; sourceTree = ""; }; - D0D03B221DECB1AD00220C46 /* TGDataItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGDataItem.m; sourceTree = ""; }; D0D03B251DECB26D00220C46 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "third-party/opus/lib/libopus.a"; sourceTree = ""; }; D0D03B2B1DED9B8900220C46 /* AudioWaveform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioWaveform.swift; sourceTree = ""; }; D0D268661D78793B00C422DA /* ChatInterfaceStateNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateNavigationButtons.swift; sourceTree = ""; }; @@ -1467,6 +1431,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E43EE230595600049C28B /* libopus.a in Frameworks */, + D03E43EC2305954C0049C28B /* opus.framework in Frameworks */, + D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */, D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */, D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */, D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */, @@ -1609,7 +1576,6 @@ D0EC6EA51EB9FBD300EBF1C3 /* libiconv.tbd in Frameworks */, D0EC6EA41EB9FB8000EBF1C3 /* libz.tbd in Frameworks */, D0EC6EA31EB9FB7A00EBF1C3 /* SSignalKit.framework in Frameworks */, - D0EC6EA21EB9FAFA00EBF1C3 /* libopus.a in Frameworks */, D0EC6E961EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework in Frameworks */, D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */, D0EC6E901EB9F5B200EBF1C3 /* Display.framework in Frameworks */, @@ -1777,8 +1743,6 @@ D00817C222B47A13008A895F /* ManageSharedAccountInfo.swift */, D00817BD22B47A13008A895F /* TGBridgeServer.h */, D00817C422B47A13008A895F /* TGBridgeServer.m */, - D00817C622B47A13008A895F /* UIImage+ImageEffects.h */, - D00817C822B47A14008A895F /* UIImage+ImageEffects.m */, D00817B622B47A12008A895F /* WakeupManager.swift */, D00817B122B47A12008A895F /* WatchBridge.swift */, D00817B222B47A12008A895F /* WatchCommunicationManager.swift */, @@ -2176,8 +2140,6 @@ D0AE2FDB22B1D3610058D3BC /* Bridge Audio */, D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */, D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */, - D0D03B211DECB1AD00220C46 /* TGDataItem.h */, - D0D03B221DECB1AD00220C46 /* TGDataItem.m */, D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */, D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */, D0B21B1E22156D92003F741D /* LegacyCache.swift */, @@ -2215,6 +2177,10 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E44132305ACFC0049C28B /* ogg.framework */, + D03E43ED230595600049C28B /* libopus.a */, + D03E43EB2305954C0049C28B /* opus.framework */, + D03E439323057FDF0049C28B /* OpusBinding.framework */, D03E4338230578550049C28B /* RaiseToListen.framework */, D03E430E2305775D0049C28B /* DeviceProximity.framework */, D03E42E5230572530049C28B /* ItemListAddressItem.framework */, @@ -2575,73 +2541,6 @@ name = "Terms of Service"; sourceTree = ""; }; - D0D03AE61DECB0D200220C46 /* Audio Recorder */ = { - isa = PBXGroup; - children = ( - D0D03AE71DECB0FE00220C46 /* opusenc */, - D0D03AF21DECB0FE00220C46 /* ogg */, - D0D03AF81DECB0FE00220C46 /* opus */, - D0D03B011DECB0FE00220C46 /* opusfile */, - ); - name = "Audio Recorder"; - sourceTree = ""; - }; - D0D03AE71DECB0FE00220C46 /* opusenc */ = { - isa = PBXGroup; - children = ( - D0D03AE81DECB0FE00220C46 /* diag_range.c */, - D0D03AE91DECB0FE00220C46 /* diag_range.h */, - D0D03AEA1DECB0FE00220C46 /* opus_header.c */, - D0D03AEB1DECB0FE00220C46 /* opus_header.h */, - D0D03AEC1DECB0FE00220C46 /* opusenc.h */, - D0D03AED1DECB0FE00220C46 /* opusenc.m */, - D0D03AEE1DECB0FE00220C46 /* picture.c */, - D0D03AEF1DECB0FE00220C46 /* picture.h */, - D0D03AF01DECB0FE00220C46 /* wav_io.c */, - D0D03AF11DECB0FE00220C46 /* wav_io.h */, - ); - name = opusenc; - path = "third-party/opusenc"; - sourceTree = SOURCE_ROOT; - }; - D0D03AF21DECB0FE00220C46 /* ogg */ = { - isa = PBXGroup; - children = ( - D0D03AF41DECB0FE00220C46 /* bitwise.c */, - D0D03AF51DECB0FE00220C46 /* framing.c */, - D0D03AF61DECB0FE00220C46 /* ogg.h */, - D0D03AF71DECB0FE00220C46 /* os_types.h */, - ); - name = ogg; - path = "third-party/ogg"; - sourceTree = SOURCE_ROOT; - }; - D0D03AF81DECB0FE00220C46 /* opus */ = { - isa = PBXGroup; - children = ( - D0D03AFB1DECB0FE00220C46 /* opus.h */, - D0D03AFC1DECB0FE00220C46 /* opus_defines.h */, - D0D03AFD1DECB0FE00220C46 /* opus_multistream.h */, - D0D03AFE1DECB0FE00220C46 /* opus_types.h */, - ); - name = opus; - path = "third-party/opus"; - sourceTree = SOURCE_ROOT; - }; - D0D03B011DECB0FE00220C46 /* opusfile */ = { - isa = PBXGroup; - children = ( - D0D03B021DECB0FE00220C46 /* info.c */, - D0D03B031DECB0FE00220C46 /* internal.c */, - D0D03B041DECB0FE00220C46 /* internal.h */, - D0D03B051DECB0FE00220C46 /* opusfile.c */, - D0D03B061DECB0FE00220C46 /* opusfile.h */, - D0D03B071DECB0FE00220C46 /* stream.c */, - ); - name = opusfile; - path = "third-party/opusfile"; - sourceTree = SOURCE_ROOT; - }; D0D2686A1D788F6600C422DA /* Title Accessory Panels */ = { isa = PBXGroup; children = ( @@ -2842,7 +2741,6 @@ D0EC6B441EB92E5A00EBF1C3 /* OverlayMediaControllerNode.swift */, D0FE4DE31F0AEBB900E8A0B3 /* SharedVideoContextManager.swift */, D09E637D1F0E8C66003444CD /* Shared Media Player */, - D0D03AE61DECB0D200220C46 /* Audio Recorder */, D0F69E9D1D6B8E240046BCD6 /* Resources */, D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */, D0ADF965212E05A300310BBC /* TonePlayer.swift */, @@ -3235,7 +3133,6 @@ files = ( D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */, D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, - D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, @@ -3440,7 +3337,6 @@ D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */, D0754D1E1EEDDF6200884F6E /* ChatMessageAttachedContentNode.swift in Sources */, D0CFBB911FD881A600B65C0D /* AudioRecordningToneData.swift in Sources */, - D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */, D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, @@ -3476,28 +3372,17 @@ D0EC6CFF1EB9F58800EBF1C3 /* OverlayMediaController.swift in Sources */, D0EC6D001EB9F58800EBF1C3 /* OverlayMediaControllerNode.swift in Sources */, D02C81712177729000CD1006 /* NotificationExceptions.swift in Sources */, - D0EC6D021EB9F58800EBF1C3 /* diag_range.c in Sources */, 09CE95112237F3C100A7D2C3 /* SettingsSearchRecentQueries.swift in Sources */, - D0EC6D031EB9F58800EBF1C3 /* opus_header.c in Sources */, 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */, 09E4A807223D4B860038140F /* AccountUtils.swift in Sources */, D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */, D06018B522F3659900796784 /* ChatTextFormat.swift in Sources */, D0750C8322B2E4EE00BE5F6E /* SharedNotificationManager.swift in Sources */, - D0EC6D041EB9F58800EBF1C3 /* opusenc.m in Sources */, D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */, D0185E8A208A01AF005E1A6C /* ProxySettingsActionItem.swift in Sources */, - D0EC6D051EB9F58800EBF1C3 /* picture.c in Sources */, - D0EC6D061EB9F58800EBF1C3 /* wav_io.c in Sources */, 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */, - D0EC6D071EB9F58800EBF1C3 /* bitwise.c in Sources */, - D0EC6D081EB9F58800EBF1C3 /* framing.c in Sources */, 09E4A803223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift in Sources */, - D0EC6D091EB9F58800EBF1C3 /* info.c in Sources */, - D0EC6D0A1EB9F58800EBF1C3 /* internal.c in Sources */, - D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */, 09C500242142BA6400EF253E /* ItemListWebsiteItem.swift in Sources */, - D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */, 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */, 09CE95042236C6B300A7D2C3 /* CachedInstantPages.swift in Sources */, D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */, @@ -3777,7 +3662,6 @@ 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, D00817CA22B47A14008A895F /* WatchRequestHandlers.swift in Sources */, - D00817E222B47A14008A895F /* UIImage+ImageEffects.m in Sources */, D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */, 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, @@ -4016,6 +3900,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4214,6 +4099,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4331,6 +4217,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4457,6 +4344,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4573,6 +4461,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4620,6 +4509,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4665,6 +4555,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4709,6 +4600,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", diff --git a/submodules/libtgvoip/OpusDecoder.cpp b/submodules/libtgvoip/OpusDecoder.cpp index 2080d8ca0a..7b2d7c8bfd 100755 --- a/submodules/libtgvoip/OpusDecoder.cpp +++ b/submodules/libtgvoip/OpusDecoder.cpp @@ -10,11 +10,7 @@ #include #include #include -#if defined(HAVE_CONFIG_H) || defined(BUCK) #include -#else -#include "opus.h" -#endif #include "VoIPController.h" diff --git a/submodules/libtgvoip/OpusEncoder.cpp b/submodules/libtgvoip/OpusEncoder.cpp index 028a3e915a..b50c16efcf 100755 --- a/submodules/libtgvoip/OpusEncoder.cpp +++ b/submodules/libtgvoip/OpusEncoder.cpp @@ -9,11 +9,7 @@ #include #include "logging.h" #include "VoIPServerConfig.h" -#if defined(HAVE_CONFIG_H) || defined(BUCK) #include -#else -#include "opus.h" -#endif namespace{ int serverConfigValueToBandwidth(int config){