- mic audio encryption for sunshine-foundation

- merge c-module updates from upstream
This commit is contained in:
True Zhuanjia
2026-05-18 22:12:26 +08:00
parent f7eae4cee9
commit 09981df37e
9 changed files with 64 additions and 60 deletions
+4 -4
View File
@@ -406,16 +406,16 @@
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="hcl-DT-peO" userLabel="redirectMicStack">
<rect key="frame" x="432" y="2215" width="361" height="31"/>
<rect key="frame" x="432" y="2215" width="245.5" height="31"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Redirect Mic (Experimental)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.64999997615814209" adjustsLetterSpacingToFitWidth="YES" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jaM-yS-ldb" userLabel="uiLabel">
<rect key="frame" x="0.0" y="0.0" width="211" height="31"/>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Redirect Mic" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.64999997615814209" adjustsLetterSpacingToFitWidth="YES" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jaM-yS-ldb" userLabel="uiLabel">
<rect key="frame" x="0.0" y="0.0" width="95.5" height="31"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Gg-3U-Oa7" userLabel="redirectMicSwitch">
<rect key="frame" x="231" y="0.0" width="132" height="31"/>
<rect key="frame" x="115.5" y="0.0" width="132" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="130" id="lOz-Mp-9tm"/>
</constraints>
+13 -13
View File
@@ -155,10 +155,10 @@
<rect key="frame" x="515" y="190" width="410" height="45"/>
<subviews>
<stackView opaque="NO" contentMode="scaleAspectFill" distribution="fillEqually" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="4he-pe-kYB">
<rect key="frame" x="0.0" y="-2.5" width="410" height="50"/>
<rect key="frame" x="0.0" y="-2.5" width="1300" height="50"/>
<subviews>
<button opaque="NO" tag="40" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="fill" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nHH-6h-4D1" userLabel="Exit">
<rect key="frame" x="0.0" y="9.5" width="50" height="31"/>
<rect key="frame" x="0.0" y="9.5" width="177" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="sBF-hd-nF8"/>
</constraints>
@@ -174,7 +174,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pdg-l4-BvF" userLabel="Undo">
<rect key="frame" x="60" y="0.0" width="50" height="50"/>
<rect key="frame" x="187" y="0.0" width="177.5" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="7KW-Xe-OEK"/>
<constraint firstAttribute="width" constant="50" id="gHD-A0-AVS"/>
@@ -191,7 +191,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rXW-Ms-2cJ" userLabel="Load">
<rect key="frame" x="120" y="0.0" width="50" height="50"/>
<rect key="frame" x="374.5" y="0.0" width="177" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="91g-27-mVH"/>
<constraint firstAttribute="height" constant="50" id="kRj-b6-Bx1"/>
@@ -207,7 +207,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LPA-ea-YHC" userLabel="Save">
<rect key="frame" x="180" y="0.0" width="50" height="50"/>
<rect key="frame" x="561.5" y="0.0" width="177" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="Lot-pn-o60"/>
<constraint firstAttribute="height" constant="50" id="uWO-So-qxr"/>
@@ -223,7 +223,7 @@
</connections>
</button>
<button opaque="NO" tag="20" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dhG-Fo-0GK" userLabel="Trash">
<rect key="frame" x="240" y="0.0" width="50" height="50"/>
<rect key="frame" x="748.5" y="0.0" width="177" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="0vV-wV-Efz"/>
<constraint firstAttribute="width" constant="50" id="j9W-Ja-bVn"/>
@@ -239,7 +239,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Up4-28-sgF" userLabel="Add">
<rect key="frame" x="300" y="0.0" width="50" height="50"/>
<rect key="frame" x="935.5" y="0.0" width="177.5" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="rWU-US-9dl"/>
<constraint firstAttribute="width" constant="50" id="wWj-wB-MRd"/>
@@ -254,7 +254,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4pE-po-Zn1" userLabel="Edit">
<rect key="frame" x="360" y="0.0" width="50" height="50"/>
<rect key="frame" x="1123" y="0.0" width="177" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="oFn-jm-orG"/>
<constraint firstAttribute="height" constant="50" id="sls-Vh-uxz"/>
@@ -273,7 +273,7 @@
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zll-IP-PFt" userLabel="Chevron View">
<rect key="frame" x="179" y="45" width="52" height="25"/>
<rect key="frame" x="624" y="45" width="52" height="25"/>
<subviews>
<imageView clipsSubviews="YES" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ChevronCompactUp" translatesAutoresizingMaskIntoConstraints="NO" id="76O-3K-aa8">
<rect key="frame" x="0.0" y="0.0" width="52" height="25"/>
@@ -2590,16 +2590,16 @@
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="CKa-yk-GSi" userLabel="redirectMicStack">
<rect key="frame" x="5" y="2157" width="361" height="31"/>
<rect key="frame" x="5" y="2157" width="245.5" height="31"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Redirect Mic (Experimental)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.64999997615814209" adjustsLetterSpacingToFitWidth="YES" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nz2-5g-YSQ" userLabel="uiLabel">
<rect key="frame" x="0.0" y="0.0" width="211" height="31"/>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Redirect Mic" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.64999997615814209" adjustsLetterSpacingToFitWidth="YES" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nz2-5g-YSQ" userLabel="uiLabel">
<rect key="frame" x="0.0" y="0.0" width="95.5" height="31"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<switch verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="96j-Vl-kBM" userLabel="redirectMicSwitch">
<rect key="frame" x="231" y="0.0" width="132" height="31"/>
<rect key="frame" x="115.5" y="0.0" width="132" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="130" id="v0k-P3-FoU"/>
</constraints>
+3 -3
View File
@@ -190,7 +190,7 @@ public class MicHandler: NSObject {
// Optional: But defaults are fine. Only change when needed:
opus_encoder_ctl_wrapper(enc, Int32(OPUS_SET_BITRATE_REQUEST), opus_int32(64000)) // Set bitrate
opus_encoder_ctl_wrapper(enc, Int32(OPUS_SET_COMPLEXITY_REQUEST), opus_int32(5)) // Set complexity
opus_encoder_ctl_wrapper(enc, Int32(OPUS_SET_SIGNAL_REQUEST), OPUS_SIGNAL_MUSIC) // Set signal type
opus_encoder_ctl_wrapper(enc, Int32(OPUS_SET_SIGNAL_REQUEST), OPUS_SIGNAL_VOICE) // Set signal type
}
@objc public func startTapping() {
@@ -248,7 +248,7 @@ public class MicHandler: NSObject {
var packet = [UInt8](repeating: 0, count: 4000)
guard let enc = self.opusEncoder else {return}
let outBytes = opus_encode(enc, chunk, 960, &packet, Int32(packet.count))
sendMicrophoneData(packet, outBytes)
sendMicrophoneOpusData(packet, outBytes)
let removeCount = min(960, pcm16BufferDeque.count)
if removeCount > 0 {
pcm16BufferDeque.removeFirst(removeCount)
@@ -264,7 +264,7 @@ public class MicHandler: NSObject {
var packet = [UInt8](repeating: 0, count: 4000)
guard let enc = self.opusEncoder else {return}
let outBytes = opus_encode(enc, chunk, 960, &packet, Int32(packet.count))
sendMicrophoneData(packet, outBytes)
sendMicrophoneOpusData(packet, outBytes)
let removeCount = min(960, pcm16BufferArray.count)
if removeCount > 0 {
pcm16BufferArray.removeFirst(removeCount)
+2 -2
View File
@@ -63,9 +63,9 @@
<key>NSLocalNetworkUsageDescription</key>
<string>VoidLink uses the local network to connect to your gaming PC for streaming.</string>
<key>NSMicrophoneUsageDescription</key>
<string>VoidLink需要麦克风访问权限。现阶段,麦克风重定向仅支持Sunshine基地版,且麦克风音频流【未经加密】。
<string>麦克风访问权限允许VoidLink 实现麦克风重定向。麦克风重定向仅支持Sunshine基地版。
VoidLink uses microphone to stream your voice to gaming PC. Microphone redirection currently works with Sunshine-Foundation (a fork of Sunshine) only, and the mic audio stream is NOT ENCRYPTED at this stage.</string>
VoidLink uses microphone to stream your voice to PC host. Microphone redirection works with Sunshine-Foundation (a fork of Sunshine) only.</string>
<key>NSMotionUsageDescription</key>
<string>VoidLink uses the device Gyro and Acceleration data to emulate motion controls when streaming.</string>
<key>UIApplicationSceneManifest</key>
+9 -9
View File
@@ -8082,25 +8082,25 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "- Please grant microphone permission in your system settings, then re-enable “Redirect Mic.”\n\n- Currently, mic redirection is only supported with Sunshine-Foundation (a Sunshine fork).\nThis feature is experimental, and the microphone audio stream is NOT ENCRYPTED at this stage.\n"
"value" : "- Please grant microphone permission in your system settings, then re-enable “Redirect Mic.”\n\n- Mic redirection is only supported with Sunshine-Foundation (a Sunshine fork).\n\n- The mic audio will be encrypted during streaming"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "- 请前往系统设置授予 App 麦克风权限,再回到此菜单启用麦克风重定向。\n\n- 目前麦克风重定向仅支持 Sunshine 基地版,且为实验性功能。须注意,现阶段的 Mic 音频流 【未经加密】。"
"value" : "- 请前往系统设置授予 App 麦克风权限,再回到此菜单启用麦克风重定向。\n\n- 仅 Sunshine 基地版 支持麦克风重定风。\n\n- 麦克风音频在串流时将被加密传输。"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "- 請前往系統設定授予 App 麥克風權限,再回到此選單啟用麥克風轉送。\n\n- 目前麥克風轉送僅支援 Sunshine 基地版,且為實驗性功能。須注意,現階段的 Mic 音訊流【未經加密】。"
"value" : "- 請前往系統設定授予 App 麥克風權限,再回到此選單啟用麥克風轉送。\n\n- 麥克風轉送僅支援 Sunshine 基地版。\n\n- 麥克風音訊在串流時將被加密傳輸。"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "- 請前往系統設定授予 App 麥克風權限,再回到此選單啟用麥克風轉送。\n\n- 目前麥克風轉送僅支援 Sunshine 基地版,且為實驗性功能。須注意,現階段的 Mic 音訊流【未經加密】。"
"value" : "- 請前往系統設定授予 App 麥克風權限,再回到此選單啟用麥克風轉送。\n\n- 麥克風轉送僅支援 Sunshine 基地版。\n\n- 麥克風音訊在串流時將被加密傳輸。"
}
}
}
@@ -10799,25 +10799,25 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "- Currently, mic redirection is only supported with Sunshine-Foundation (a Sunshine fork).\n\n- This feature is experimental, and the microphone audio stream is NOT ENCRYPTED at this stage."
"value" : "- Mic redirection is only supported with Sunshine-Foundation (a Sunshine fork).\n\n- Mic audio will be encrypted during streaming"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "目前麦克风重定向仅支持 Sunshine 基地版,且为实验性功能。 \n须注意,现阶段的 Mic 音频流 【未经加密】。"
"value" : "- 仅 Sunshine 基地版 支持麦克风重定风。\n\n- 麦克风音频在串流时将被加密传输。"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "目前麥克風轉送僅支援 Sunshine 基地版,且為實驗性功能。\n須注意,現階段的 Mic 音訊流【未經加密】。"
"value" : "- 麥克風轉送僅支援 Sunshine 基地版。\n\n- 麥克風音訊在串流時將被加密傳輸。"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "目前麥克風轉送僅支援 Sunshine 基地版,且為實驗性功能。\n須注意,現階段的 Mic 音訊流【未經加密】。"
"value" : "- 麥克風轉送僅支援 Sunshine 基地版。\n\n- 麥克風音訊在串流時將被加密傳輸。"
}
}
}
@@ -10836,7 +10836,7 @@
},
"zh-Hans" : {
"stringUnit" : {
"state" : "needs_review",
"state" : "translated",
"value" : "https://voidlink.yuque.com/org-wiki-voidlink-znirha/fa3tgr/fqd6l1kgt482on8a"
}
},
+5 -5
View File
@@ -3843,31 +3843,31 @@
}
},
"jaM-yS-ldb.text" : {
"comment" : "Class = \"UILabel\"; text = \"Redirect Mic (Experimental)\"; ObjectID = \"jaM-yS-ldb\";",
"comment" : "Class = \"UILabel\"; text = \"Redirect Mic\"; ObjectID = \"jaM-yS-ldb\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Redirect Mic (Experimental)"
"value" : "Redirect Mic"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "麦克风重定向(实验性)"
"value" : "麦克风重定向"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "麥克風轉送(實驗性)"
"value" : "麥克風轉送"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "麥克風轉送(實驗性)"
"value" : "麥克風轉送"
}
}
}
+7 -7
View File
@@ -4226,31 +4226,31 @@
}
},
"nz2-5g-YSQ.text" : {
"comment" : "Class = \"UILabel\"; text = \"Redirect Mic (Experimental)\"; ObjectID = \"nz2-5g-YSQ\";",
"comment" : "Class = \"UILabel\"; text = \"Redirect Mic\"; ObjectID = \"nz2-5g-YSQ\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Redirect Mic (Experimental)"
"value" : "Redirect Mic"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "麦克风重定向(实验性)"
"value" : "麦克风重定向"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "麥克風轉送(實驗性)"
"value" : "麥克風轉送"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "麥克風轉送(實驗性)"
"value" : "麥克風轉送"
}
}
}
@@ -6661,13 +6661,13 @@
},
"zh-Hant" : {
"stringUnit" : {
"state" : "needs_review",
"state" : "translated",
"value" : "被視窗捕獲"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "needs_review",
"state" : "translated",
"value" : "被視窗捕獲"
}
}
@@ -11,9 +11,10 @@
180B87D72E65DF27007D9E22 /* RecorderCallbacks.c in Sources */ = {isa = PBXBuildFile; fileRef = 180B87D52E65DF27007D9E22 /* RecorderCallbacks.c */; };
180B87D82E65DF27007D9E22 /* MicrophoneStream.c in Sources */ = {isa = PBXBuildFile; fileRef = 180B87D42E65DF27007D9E22 /* MicrophoneStream.c */; };
180B87D92E65DF27007D9E22 /* RecorderCallbacks.c in Sources */ = {isa = PBXBuildFile; fileRef = 180B87D52E65DF27007D9E22 /* RecorderCallbacks.c */; };
180B87DA2E65DF27007D9E22 /* rswrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 180B87DB2E65DF27007D9E22 /* rswrapper.c */; };
180B87DC2E65DF27007D9E22 /* rswrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 180B87DB2E65DF27007D9E22 /* rswrapper.c */; };
983091DE24CEB69B00A0835D /* ConnectionTester.c in Sources */ = {isa = PBXBuildFile; fileRef = 983091DD24CEB69B00A0835D /* ConnectionTester.c */; };
983091DF24CEB69B00A0835D /* ConnectionTester.c in Sources */ = {isa = PBXBuildFile; fileRef = 983091DD24CEB69B00A0835D /* ConnectionTester.c */; };
9857AEF01EBE85E10084F99E /* rs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9857AEEE1EBE85E10084F99E /* rs.c */; };
98AB2E401CAD425A0089BB98 /* AudioStream.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1A1CAD423B0089BB98 /* AudioStream.c */; };
98AB2E411CAD425A0089BB98 /* ByteBuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1B1CAD423B0089BB98 /* ByteBuffer.c */; };
98AB2E421CAD425A0089BB98 /* Connection.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1D1CAD423B0089BB98 /* Connection.c */; };
@@ -48,7 +49,6 @@
98F145382667D847004018E3 /* RtpVideoQueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 98F145342667D847004018E3 /* RtpVideoQueue.c */; };
F74BEF9F2C1A707200224667 /* OpenSSL in Frameworks */ = {isa = PBXBuildFile; productRef = F74BEF9E2C1A707200224667 /* OpenSSL */; };
F74BEFA22C1A80D000224667 /* OpenSSL in Frameworks */ = {isa = PBXBuildFile; productRef = F74BEFA12C1A80D000224667 /* OpenSSL */; };
FB1A67F821324F4900507771 /* rs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9857AEEE1EBE85E10084F99E /* rs.c */; };
FB1A67FA21324F4900507771 /* AudioStream.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1A1CAD423B0089BB98 /* AudioStream.c */; };
FB1A67FB21324F4900507771 /* ByteBuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1B1CAD423B0089BB98 /* ByteBuffer.c */; };
FB1A67FC21324F4900507771 /* Connection.c in Sources */ = {isa = PBXBuildFile; fileRef = 98AB2E1D1CAD423B0089BB98 /* Connection.c */; };
@@ -90,9 +90,9 @@
/* Begin PBXFileReference section */
180B87D42E65DF27007D9E22 /* MicrophoneStream.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MicrophoneStream.c; sourceTree = "<group>"; };
180B87D52E65DF27007D9E22 /* RecorderCallbacks.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RecorderCallbacks.c; sourceTree = "<group>"; };
180B87DB2E65DF27007D9E22 /* rswrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = rswrapper.c; sourceTree = "<group>"; };
180B87DD2E65DF27007D9E22 /* rswrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rswrapper.h; sourceTree = "<group>"; };
983091DD24CEB69B00A0835D /* ConnectionTester.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ConnectionTester.c; sourceTree = "<group>"; };
9857AEEE1EBE85E10084F99E /* rs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rs.c; path = "moonlight-common-c/reedsolomon/rs.c"; sourceTree = "<group>"; };
9857AEEF1EBE85E10084F99E /* rs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rs.h; path = "moonlight-common-c/reedsolomon/rs.h"; sourceTree = "<group>"; };
98AB2DF01CAD422B0089BB98 /* callbacks.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = callbacks.c; sourceTree = "<group>"; };
98AB2DF11CAD422B0089BB98 /* ChangeLog */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChangeLog; sourceTree = "<group>"; };
98AB2DF21CAD422B0089BB98 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
@@ -186,15 +186,6 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9857AEED1EBE85D50084F99E /* reedsolomon */ = {
isa = PBXGroup;
children = (
9857AEEE1EBE85E10084F99E /* rs.c */,
9857AEEF1EBE85E10084F99E /* rs.h */,
);
name = reedsolomon;
sourceTree = "<group>";
};
98AB2DEF1CAD422B0089BB98 /* enet */ = {
isa = PBXGroup;
children = (
@@ -277,6 +268,8 @@
children = (
180B87D42E65DF27007D9E22 /* MicrophoneStream.c */,
180B87D52E65DF27007D9E22 /* RecorderCallbacks.c */,
180B87DB2E65DF27007D9E22 /* rswrapper.c */,
180B87DD2E65DF27007D9E22 /* rswrapper.h */,
98F1453A2667D852004018E3 /* RtpAudioQueue.h */,
98F145392667D852004018E3 /* RtpVideoQueue.h */,
98F145332667D847004018E3 /* RtpAudioQueue.c */,
@@ -318,7 +311,6 @@
FB290E2519B37A4E004C83CF = {
isa = PBXGroup;
children = (
9857AEED1EBE85D50084F99E /* reedsolomon */,
98AB2E191CAD423B0089BB98 /* src */,
98AB2DEF1CAD422B0089BB98 /* enet */,
FB290E2F19B37A4E004C83CF /* Products */,
@@ -419,7 +411,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FB1A67F821324F4900507771 /* rs.c in Sources */,
180B87DC2E65DF27007D9E22 /* rswrapper.c in Sources */,
98F145362667D847004018E3 /* RtpAudioQueue.c in Sources */,
FB1A67FA21324F4900507771 /* AudioStream.c in Sources */,
FB1A67FB21324F4900507771 /* ByteBuffer.c in Sources */,
@@ -460,6 +452,7 @@
files = (
98C1FC142184124C0023FDDF /* SimpleStun.c in Sources */,
98F145352667D847004018E3 /* RtpAudioQueue.c in Sources */,
180B87DA2E65DF27007D9E22 /* rswrapper.c in Sources */,
98AB2E401CAD425A0089BB98 /* AudioStream.c in Sources */,
98AB2E411CAD425A0089BB98 /* ByteBuffer.c in Sources */,
180B87D82E65DF27007D9E22 /* MicrophoneStream.c in Sources */,
@@ -487,7 +480,6 @@
98AB2E541CAD427A0089BB98 /* packet.c in Sources */,
98AB2E551CAD427A0089BB98 /* peer.c in Sources */,
98AB2E561CAD427A0089BB98 /* protocol.c in Sources */,
9857AEF01EBE85E10084F99E /* rs.c in Sources */,
98AB2E571CAD427A0089BB98 /* unix.c in Sources */,
98AB2E581CAD427A0089BB98 /* win32.c in Sources */,
);
@@ -512,6 +504,9 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
HEADER_SEARCH_PATHS = (
"moonlight-common-c/enet/include",
"moonlight-common-c/nanors",
"moonlight-common-c/nanors/deps",
"moonlight-common-c/nanors/deps/obl",
"../libs/**",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
@@ -542,6 +537,9 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
HEADER_SEARCH_PATHS = (
"moonlight-common-c/enet/include",
"moonlight-common-c/nanors",
"moonlight-common-c/nanors/deps",
"moonlight-common-c/nanors/deps/obl",
"../libs/**",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
@@ -688,6 +686,9 @@
EXECUTABLE_PREFIX = lib;
HEADER_SEARCH_PATHS = (
"moonlight-common-c/enet/include",
"moonlight-common-c/nanors",
"moonlight-common-c/nanors/deps",
"moonlight-common-c/nanors/deps/obl",
"../libs/**",
);
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -706,6 +707,9 @@
EXECUTABLE_PREFIX = lib;
HEADER_SEARCH_PATHS = (
"moonlight-common-c/enet/include",
"moonlight-common-c/nanors",
"moonlight-common-c/nanors/deps",
"moonlight-common-c/nanors/deps/obl",
"../libs/**",
);
IPHONEOS_DEPLOYMENT_TARGET = 12.0;