mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
Push-to-talk voice messaging using the Codec2 ultra-low-bitrate speech codec, transmitted as V: prefixed packets over the existing MeshCore LoRa mesh pipeline. Voice recording UI (long-press send button or + menu) is gated behind Platform.isIOS || Platform.isMacOS since the `record` package only supports microphone capture on those platforms in this build. Key changes: - VoiceRecorderService: streams 8kHz mono PCM chunks via `record` package - VoicePlayerService: decodes Codec2 bytes to WAV and plays via audioplayers - VoiceCodecService: async Codec2 encode/decode in background isolates - VoiceProvider: reassembles multi-packet sessions, drives playback - VoiceMessageBubble: shows packet progress, play/stop controls - MessagesProvider: detects V: prefix, routes to VoiceProvider - MessagesTab: PTT long-press gesture + recording indicator (iOS/macOS) - Message model: isVoice + voiceId fields for session tracking - Auto-selects codec mode from radio bandwidth (700C/1200/1300 bps) - codec2_flutter + meshcore_client switched from path to git deps
152 lines
5.1 KiB
Plaintext
152 lines
5.1 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
|
<array>
|
|
<string>dev.flutter.background.refresh</string>
|
|
</array>
|
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
|
<true/>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
<key>CFBundleDisplayName</key>
|
|
<string>MeshCore SAR</string>
|
|
<key>CFBundleDocumentTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>MBTiles Map File</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>public.database</string>
|
|
<string>public.data</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$(EXECUTABLE_NAME)</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>MeshCore SAR</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>$(FLUTTER_BUILD_NAME)</string>
|
|
<key>CFBundleSignature</key>
|
|
<string>????</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>62</string>
|
|
<key>LSRequiresIPhoneOS</key>
|
|
<true/>
|
|
<key>NSBluetoothAlwaysUsageDescription</key>
|
|
<string>MeshCore SAR needs Bluetooth to communicate with MeshCore devices for Search & Rescue operations</string>
|
|
<key>NSBluetoothPeripheralUsageDescription</key>
|
|
<string>MeshCore SAR needs Bluetooth to communicate with MeshCore devices</string>
|
|
<key>NSBonjourServices</key>
|
|
<array>
|
|
<string>_meshcore-sse._tcp</string>
|
|
</array>
|
|
<key>NSLocalNetworkUsageDescription</key>
|
|
<string>MeshCore SAR needs local network access to discover and connect to shared MeshCore devices on your network for team coordination during SAR operations</string>
|
|
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
|
|
<string>MeshCore SAR needs location access for offline map functionality during field operations</string>
|
|
<key>NSLocationDefaultAccuracyReduced</key>
|
|
<false/>
|
|
<key>NSLocationTemporaryPreciseUsageDescription</key>
|
|
<string>MeshCore SAR needs precise location for accurate positioning in SAR operations</string>
|
|
<key>NSLocationWhenInUseUsageDescription</key>
|
|
<string>MeshCore SAR needs location access to display team members and SAR markers on the map</string>
|
|
<key>NSMotionUsageDescription</key>
|
|
<string>MeshCore SAR needs access to the compass to show your heading direction on the map</string>
|
|
<key>NSMicrophoneUsageDescription</key>
|
|
<string>MeshCore SAR needs microphone access to send voice messages over the mesh radio network during SAR operations</string>
|
|
<key>NSPhotoLibraryUsageDescription</key>
|
|
<string>MeshCore SAR may need access to your photo library to attach images to messages or save map screenshots for documentation during SAR operations</string>
|
|
<key>UIApplicationSceneManifest</key>
|
|
<dict>
|
|
<key>UIApplicationSupportsMultipleScenes</key>
|
|
<false/>
|
|
<key>UISceneConfigurations</key>
|
|
<dict>
|
|
<key>UIWindowSceneSessionRoleApplication</key>
|
|
<array>
|
|
<dict>
|
|
<key>UISceneClassName</key>
|
|
<string>UIWindowScene</string>
|
|
<key>UISceneConfigurationName</key>
|
|
<string>flutter</string>
|
|
<key>UISceneDelegateClassName</key>
|
|
<string>FlutterSceneDelegate</string>
|
|
<key>UISceneStoryboardFile</key>
|
|
<string>Main</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
<key>UIApplicationSupportsIndirectInputEvents</key>
|
|
<true/>
|
|
<key>UIBackgroundModes</key>
|
|
<array>
|
|
<string>location</string>
|
|
<string>bluetooth-peripheral</string>
|
|
</array>
|
|
<key>UILaunchStoryboardName</key>
|
|
<string>LaunchScreen</string>
|
|
<key>UIMainStoryboardFile</key>
|
|
<string>Main</string>
|
|
<key>UISupportedInterfaceOrientations</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
<key>UISupportedInterfaceOrientations~ipad</key>
|
|
<array>
|
|
<string>UIInterfaceOrientationPortrait</string>
|
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
</array>
|
|
<key>UISupportsDocumentBrowser</key>
|
|
<true/>
|
|
<key>UIUserNotificationSettings</key>
|
|
<dict>
|
|
<key>UIUserNotificationTypesEnabled</key>
|
|
<array>
|
|
<string>UIUserNotificationTypeAlert</string>
|
|
<string>UIUserNotificationTypeBadge</string>
|
|
<string>UIUserNotificationTypeSound</string>
|
|
</array>
|
|
</dict>
|
|
<key>UTImportedTypeDeclarations</key>
|
|
<array>
|
|
<dict>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.database</string>
|
|
<string>public.data</string>
|
|
</array>
|
|
<key>UTTypeDescription</key>
|
|
<string>MBTiles Map Archive</string>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.mapbox.mbtiles</string>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>mbtiles</string>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</plist>
|