├── .classpath
├── .project
├── Android.mk
├── AndroidManifest.xml
├── assets
├── About-zh.html
├── About.html
├── Settings.plist
└── fonts
│ └── helveticaneue-condensedbold.otf
├── build.xml
├── jni
├── .cpp
├── API
│ ├── Android.mk
│ ├── com_vmc_ipc_config_VmcConfig.h
│ ├── com_vmc_ipc_ftp_FTPClient.h
│ ├── com_vmc_ipc_proxy_IpcProxy.h
│ ├── com_vmc_ipc_view_gl_GLBGVideoSprite.h
│ ├── common.h
│ ├── config
│ │ ├── IPCConfig.cpp
│ │ ├── IPCConfig.h
│ │ ├── minGlue.h
│ │ ├── minIni.c
│ │ └── minIni.h
│ ├── config_stub.cpp
│ ├── ftp_stub.cpp
│ ├── gl_bg_video_sprite_stub.cpp
│ ├── gl_bg_video_sprite_stub.h
│ ├── gl_video_stage.cpp
│ ├── include
│ │ ├── SingleRTMP.h
│ │ ├── VCmdDefines.h
│ │ ├── VNetTool.h
│ │ ├── ftplib.h
│ │ └── rapidjson
│ │ │ ├── document.h
│ │ │ ├── filestream.h
│ │ │ ├── internal
│ │ │ ├── pow10.h
│ │ │ ├── stack.h
│ │ │ └── strfunc.h
│ │ │ ├── prettywriter.h
│ │ │ ├── rapidjson.h
│ │ │ ├── reader.h
│ │ │ ├── stringbuffer.h
│ │ │ └── writer.h
│ ├── java_callbacks.cpp
│ ├── java_callbacks.h
│ ├── libavcodec.a
│ ├── libavdevice.a
│ ├── libavfilter.a
│ ├── libavformat.a
│ ├── libavutil.a
│ ├── libbinder.so
│ ├── libboost_chrono.a
│ ├── libboost_date_time.a
│ ├── libboost_system.a
│ ├── libboost_thread.a
│ ├── libboost_timer.a
│ ├── libcrypto.so
│ ├── libcutils.so
│ ├── libftp.a
│ ├── libjpeg.so
│ ├── libpostproc.a
│ ├── librtmptoolkit.a
│ ├── libssl.so
│ ├── libstagefright.so
│ ├── libstagefright_foundation.so
│ ├── libswresample.a
│ ├── libswscale.a
│ ├── libui.so
│ ├── libutils.so
│ ├── libvmcffmpegdec.a
│ ├── libvnettool.a
│ ├── libwa.a
│ ├── libyuv_static.a
│ ├── vmcipc.cpp
│ ├── vmcipc.h
│ ├── vmcipc_cmd.cpp
│ ├── vmcipc_cmd.h
│ ├── vmcipc_debug.cpp
│ ├── vmcipc_debug.h
│ ├── vmcipc_defines.h
│ ├── vmcipc_javatool.cpp
│ ├── vmcipc_javatool.h
│ ├── vmcipc_videostream.cpp
│ ├── vmcipc_videostream.h
│ ├── yuv2rgb.cpp
│ └── yuv2rgb.h
├── Android.mk
├── Application.mk
├── DEC
│ ├── H264Decoder.h
│ ├── ffmpeg
│ │ └── include
│ │ │ ├── libavcodec
│ │ │ ├── avcodec.h
│ │ │ ├── avfft.h
│ │ │ ├── dxva2.h
│ │ │ ├── old_codec_ids.h
│ │ │ ├── vaapi.h
│ │ │ ├── vda.h
│ │ │ ├── vdpau.h
│ │ │ ├── version.h
│ │ │ └── xvmc.h
│ │ │ ├── libavfilter
│ │ │ ├── asrc_abuffer.h
│ │ │ ├── avcodec.h
│ │ │ ├── avfilter.h
│ │ │ ├── avfiltergraph.h
│ │ │ ├── buffersink.h
│ │ │ ├── buffersrc.h
│ │ │ ├── version.h
│ │ │ └── vsrc_buffer.h
│ │ │ ├── libavformat
│ │ │ ├── avformat.h
│ │ │ ├── avio.h
│ │ │ └── version.h
│ │ │ ├── libavutil
│ │ │ ├── adler32.h
│ │ │ ├── aes.h
│ │ │ ├── attributes.h
│ │ │ ├── audio_fifo.h
│ │ │ ├── audioconvert.h
│ │ │ ├── avassert.h
│ │ │ ├── avconfig.h
│ │ │ ├── avstring.h
│ │ │ ├── avutil.h
│ │ │ ├── base64.h
│ │ │ ├── blowfish.h
│ │ │ ├── bprint.h
│ │ │ ├── bswap.h
│ │ │ ├── buffer.h
│ │ │ ├── channel_layout.h
│ │ │ ├── common.h
│ │ │ ├── cpu.h
│ │ │ ├── crc.h
│ │ │ ├── dict.h
│ │ │ ├── error.h
│ │ │ ├── eval.h
│ │ │ ├── ffversion.h
│ │ │ ├── fifo.h
│ │ │ ├── file.h
│ │ │ ├── frame.h
│ │ │ ├── hmac.h
│ │ │ ├── imgutils.h
│ │ │ ├── intfloat.h
│ │ │ ├── intfloat_readwrite.h
│ │ │ ├── intreadwrite.h
│ │ │ ├── lfg.h
│ │ │ ├── log.h
│ │ │ ├── lzo.h
│ │ │ ├── mathematics.h
│ │ │ ├── md5.h
│ │ │ ├── mem.h
│ │ │ ├── murmur3.h
│ │ │ ├── old_pix_fmts.h
│ │ │ ├── opt.h
│ │ │ ├── parseutils.h
│ │ │ ├── pixdesc.h
│ │ │ ├── pixfmt.h
│ │ │ ├── random_seed.h
│ │ │ ├── rational.h
│ │ │ ├── ripemd.h
│ │ │ ├── samplefmt.h
│ │ │ ├── sha.h
│ │ │ ├── sha512.h
│ │ │ ├── stereo3d.h
│ │ │ ├── time.h
│ │ │ ├── timecode.h
│ │ │ ├── timestamp.h
│ │ │ ├── version.h
│ │ │ └── xtea.h
│ │ │ ├── libpostproc
│ │ │ ├── postprocess.h
│ │ │ └── version.h
│ │ │ ├── libswresample
│ │ │ ├── swresample.h
│ │ │ └── version.h
│ │ │ └── libswscale
│ │ │ ├── swscale.h
│ │ │ └── version.h
│ ├── include
│ │ ├── DataQueue.h
│ │ ├── RTMPStream.h
│ │ └── vmcdef.h
│ ├── libjpeg
│ │ ├── jconfig.h
│ │ ├── jmorecfg.h
│ │ └── jpeglib.h
│ ├── vmc_decoder_handler.h
│ ├── vmc_ffmpeg_decoder.h
│ ├── vmc_ffmpeg_rec.h
│ ├── vmc_jpegenc.h
│ └── vmc_rec_handler.h
├── FlexCam.cpp
└── GLFIX
│ ├── Android.mk
│ └── fix-GLES20.c
├── libs
├── .DS_Store
├── android-support-v4.jar
├── armeabi-v7a
│ ├── libglfix.so
│ └── libvmcipc.so
├── armeabi
│ ├── libglfix.so
│ └── libvmcipc.so
└── dd-plist.jar
├── lic
├── lint.xml
├── make4880-1.bat
├── obj
└── local
│ ├── armeabi-v7a
│ ├── libglfix.so
│ └── libvmcipc.so
│ └── armeabi
│ ├── libglfix.so
│ └── libvmcipc.so
├── proguard-project.txt
├── project.properties
├── release.sh
├── res
├── .DS_Store
├── color
│ └── sel_black.xml
├── drawable-hdpi
│ └── ic_launcher.png
├── drawable-ldpi
│ └── ic_launcher.png
├── drawable-mdpi
│ └── ic_launcher.png
├── drawable-xhdpi
│ ├── .DS_Store
│ ├── album_play_btn.png
│ ├── album_play_btn_hl.png
│ ├── alt_hold_off.png
│ ├── alt_hold_off_disabled.png
│ ├── alt_hold_off_hl.png
│ ├── alt_hold_on.png
│ ├── alt_hold_on_disabled.png
│ ├── alt_hold_on_hl.png
│ ├── angeleyes01.png
│ ├── arrow_left_orange.png
│ ├── arrow_right_orange.png
│ ├── back_btn_settings_normal.png
│ ├── back_btn_settings_pressed.png
│ ├── bar_bottom.png
│ ├── bar_top.png
│ ├── barre_bas.png
│ ├── barre_haut.png
│ ├── bg_tile.png
│ ├── ble_connected.png
│ ├── ble_indicator_closed.png
│ ├── ble_indicator_opened.png
│ ├── ble_no_connect.png
│ ├── btn_arrow_left.xml
│ ├── btn_arrow_left_hl.png
│ ├── btn_arrow_left_normal.png
│ ├── btn_arrow_right.xml
│ ├── btn_arrow_right_hl.png
│ ├── btn_arrow_right_normal.png
│ ├── btn_back.xml
│ ├── btn_back_divider.png
│ ├── btn_back_hl.png
│ ├── btn_back_normal.png
│ ├── btn_back_normal_new.png
│ ├── btn_battery_0.png
│ ├── btn_battery_1.png
│ ├── btn_battery_2.png
│ ├── btn_battery_3.png
│ ├── btn_battery_4.png
│ ├── btn_black.xml
│ ├── btn_black_hl.png
│ ├── btn_black_normal.png
│ ├── btn_capture_normal.png
│ ├── btn_capture_press.png
│ ├── btn_check_buttonless_on.png
│ ├── btn_close.xml
│ ├── btn_close_hl.png
│ ├── btn_close_normal.png
│ ├── btn_delete.xml
│ ├── btn_delete_normal.png
│ ├── btn_delete_pressed.png
│ ├── btn_fixed_high_normal.png
│ ├── btn_gallery_normal.png
│ ├── btn_gallery_press.png
│ ├── btn_gesture_off_normal.png
│ ├── btn_gesture_off_press.png
│ ├── btn_gesture_on_normal.png
│ ├── btn_gesture_on_press.png
│ ├── btn_help_hl.png
│ ├── btn_help_normal.png
│ ├── btn_hold_off_normal.png
│ ├── btn_hold_off_press.png
│ ├── btn_hold_on_normal.png
│ ├── btn_hold_on_press.png
│ ├── btn_lock_normal.png
│ ├── btn_lock_press.png
│ ├── btn_off_disabled.png
│ ├── btn_off_hl.png
│ ├── btn_off_normal.png
│ ├── btn_on_disabled.png
│ ├── btn_on_hl.png
│ ├── btn_on_normal.png
│ ├── btn_photos.png
│ ├── btn_photos_pressed.png
│ ├── btn_play.xml
│ ├── btn_play_normal.png
│ ├── btn_play_press.png
│ ├── btn_record.png
│ ├── btn_record1.png
│ ├── btn_record1_pressed.png
│ ├── btn_record2.png
│ ├── btn_record_pressed.png
│ ├── btn_record_video_normal.png
│ ├── btn_record_video_press.png
│ ├── btn_reset_orange.png
│ ├── btn_reset_orange_disabled.png
│ ├── btn_reset_white.png
│ ├── btn_settings.xml
│ ├── btn_settings_hl.png
│ ├── btn_settings_normal.png
│ ├── btn_settings_normal1.png
│ ├── btn_settings_normal1_press.png
│ ├── btn_settings_pressed.png
│ ├── btn_share_normal.png
│ ├── btn_share_press.png
│ ├── btn_stop.xml
│ ├── btn_stop_hl.png
│ ├── btn_stop_normal.png
│ ├── btn_take_off.xml
│ ├── btn_take_off_hl.png
│ ├── btn_take_off_normal.png
│ ├── btn_trim_down.xml
│ ├── btn_trim_down_hl.png
│ ├── btn_trim_down_normal.png
│ ├── btn_trim_left.xml
│ ├── btn_trim_left_hl.png
│ ├── btn_trim_left_normal.png
│ ├── btn_trim_right.xml
│ ├── btn_trim_right_hl.png
│ ├── btn_trim_right_normal.png
│ ├── btn_trim_up.xml
│ ├── btn_trim_up_hl.png
│ ├── btn_trim_up_normal.png
│ ├── btn_unlock_normal.png
│ ├── btn_unlock_press.png
│ ├── btn_videos.png
│ ├── btn_videos_selected.png
│ ├── btn_wifi_0.png
│ ├── btn_wifi_1.png
│ ├── btn_wifi_2.png
│ ├── btn_wifi_3.png
│ ├── bug.png
│ ├── checkbox.xml
│ ├── device_battery_0.png
│ ├── device_battery_1.png
│ ├── device_battery_2.png
│ ├── device_battery_3.png
│ ├── device_battery_level.xml
│ ├── eye_normal.png
│ ├── eye_press.png
│ ├── ff2_top_bar_time.png
│ ├── gnome_ftp.png
│ ├── help_1.png
│ ├── help_2.png
│ ├── help_page_01.png
│ ├── help_page_02.png
│ ├── help_page_03.png
│ ├── help_page_04.png
│ ├── help_page_05.png
│ ├── help_page_06.png
│ ├── help_page_cn_01.png
│ ├── help_page_cn_02.png
│ ├── help_page_cn_03.png
│ ├── help_page_cn_04.png
│ ├── help_page_cn_05.png
│ ├── help_page_cn_06.png
│ ├── hud_bg.png
│ ├── ic_launcher.png
│ ├── ic_launcher2.png
│ ├── joystick_bg.png
│ ├── joystick_bg2.png
│ ├── joystick_bg_new.png
│ ├── joystick_roll_pitch.png
│ ├── joystick_roll_pitch_new.png
│ ├── joystick_rudder_throttle.png
│ ├── joystick_rudder_throttle_new.png
│ ├── left_bottom_normal.png
│ ├── left_bottom_press.png
│ ├── left_top.xml
│ ├── left_top_normal.png
│ ├── left_top_press.png
│ ├── logo.png
│ ├── logo_new.png
│ ├── main_background.png
│ ├── main_bg1.jpg
│ ├── middle_bg.png
│ ├── process_icon.png
│ ├── recording_status.png
│ ├── right_bottom_normal.png
│ ├── right_bottom_press.png
│ ├── right_top_normal.png
│ ├── right_top_press.png
│ ├── screw.png
│ ├── scroll_bar_gray.png
│ ├── scroll_bar_orange.png
│ ├── scroll_btn.png
│ ├── seekbar_image.xml
│ ├── seekbar_part.png
│ ├── seekbar_point.png
│ ├── seekbar_thumb.xml
│ ├── seekbar_total.png
│ ├── segment_center_checked_normal.9.png
│ ├── segment_center_checked_pressed.9.png
│ ├── segment_center_normal.9.png
│ ├── segment_center_pressed.9.png
│ ├── segment_left_checked_normal.9.png
│ ├── segment_left_checked_pressed.9.png
│ ├── segment_left_normal.9.png
│ ├── segment_left_pressed.9.png
│ ├── segment_right_checked_normal.9.png
│ ├── segment_right_checked_pressed.9.png
│ ├── segment_right_normal.9.png
│ ├── segment_right_pressed.9.png
│ ├── settings_bg.xml
│ ├── splash.png
│ ├── status_bar.png
│ ├── switch_off.png
│ ├── switch_on.png
│ ├── text_show_bar.png
│ ├── transparent_bg_tile.png
│ ├── trim_dummy_center.png
│ ├── web_address.png
│ ├── wifi_indicator_1.png
│ ├── wifi_indicator_2.png
│ ├── wifi_indicator_3.png
│ └── wifi_indicator_4.png
├── drawable
│ ├── black.xml
│ ├── black_half_transparent.xml
│ ├── bottom_button_bar_bg.xml
│ ├── btn_back_arrow.xml
│ ├── btn_back_feedback.xml
│ ├── btn_capture_state.xml
│ ├── btn_record_state.xml
│ ├── btn_share.xml
│ ├── center.xml
│ ├── default_settings.xml
│ ├── indication_ac_plugin.xml
│ ├── indication_record.xml
│ ├── left_bottom.xml
│ ├── orange.xml
│ ├── progress_medium.xml
│ ├── right_bottom.xml
│ ├── right_top.xml
│ ├── section_center.xml
│ ├── section_left.xml
│ ├── section_right.xml
│ ├── settings.xml
│ └── wifi_level.xml
├── layout-zh
│ ├── help_page_01.xml
│ ├── help_page_02.xml
│ ├── help_page_03.xml
│ ├── help_page_04.xml
│ ├── help_page_05.xml
│ └── help_page_06.xml
├── layout
│ ├── ble_device_list_row.xml
│ ├── custom_progress_dialog.xml
│ ├── feedback.xml
│ ├── gallery_layout.xml
│ ├── help_page_01.xml
│ ├── help_page_02.xml
│ ├── help_page_03.xml
│ ├── help_page_04.xml
│ ├── help_page_05.xml
│ ├── help_page_06.xml
│ ├── help_screen.xml
│ ├── hud.xml
│ ├── hud_view_controller_framelayout.xml
│ ├── main.xml
│ ├── main_layout.xml
│ ├── media_item_layout.xml
│ ├── progress_dialog.xml
│ ├── settings_page_about.xml
│ ├── settings_page_angel_trim.xml
│ ├── settings_page_connection.xml
│ ├── settings_page_mode.xml
│ ├── settings_page_net.xml
│ ├── settings_page_personal.xml
│ ├── settings_page_video.xml
│ ├── settings_screen.xml
│ ├── settings_screen_dimentions.xml
│ └── share_media.xml
├── menu
│ └── sharemenu.xml
├── raw
│ ├── battery.wav
│ ├── camera_click.ogg
│ └── video_record.ogg
├── values-v11
│ └── styles.xml
├── values-v14
│ └── styles.xml
├── values-zh
│ ├── strings.xml
│ └── strings_vmc.xml
├── values
│ ├── .DS_Store
│ ├── attrs.xml
│ ├── colors.xml
│ ├── hud_screen_dimens.xml
│ ├── main_dimens.xml
│ ├── settings_screen_dimens.xml
│ ├── settings_screen_dimentions.xml
│ ├── strings.xml
│ ├── strings_vmc.xml
│ ├── styles.xml
│ ├── themes.xml
│ ├── view_pager_indicator_attrs.xml
│ ├── view_pager_indicator_defaults.xml
│ └── view_pager_indicator_style.xml
└── xml
│ ├── settings.xml
│ └── updater_config.xml
└── src
├── .DS_Store
├── com
├── .DS_Store
├── hexairbot
│ └── hexmini
│ │ ├── Const.java
│ │ ├── CustomProgressDialog.java
│ │ ├── FeedbackActivity.java
│ │ ├── GalleryDialog.java
│ │ ├── GalleryDialogDelegate.java
│ │ ├── GalleryViewController.java
│ │ ├── GalleryViewControllerDelegate.java
│ │ ├── HelpActivity.java
│ │ ├── HexMiniApplication.java
│ │ ├── HudExViewController.java
│ │ ├── HudViewControllerDelegate.java
│ │ ├── MainExActivity.java
│ │ ├── SettingsDialog.java
│ │ ├── SettingsDialogDelegate.java
│ │ ├── SettingsViewController.java
│ │ ├── SettingsViewControllerDelegate.java
│ │ ├── ViewController.java
│ │ ├── adapter
│ │ └── SettingsViewAdapter.java
│ │ ├── ble
│ │ ├── BleConnectinManager.java
│ │ ├── BleConnectinManagerDelegate.java
│ │ └── BluetoothLeService.java
│ │ ├── gestures
│ │ └── EnhancedGestureDetector.java
│ │ ├── ipc
│ │ ├── activity
│ │ │ ├── GalleryActivity.java
│ │ │ ├── IpcAlertDialog.java
│ │ │ ├── IpcAlertDialogHandler.java
│ │ │ └── ShareMediaActivity.java
│ │ └── view
│ │ │ ├── MainActivityLayout.java
│ │ │ ├── MediaFile.java
│ │ │ ├── NetSettingView.java
│ │ │ ├── OnGalleryItemClick.java
│ │ │ ├── SettingView.java
│ │ │ ├── SquareRelativeLayout.java
│ │ │ ├── VideoSettingView.java
│ │ │ ├── VideoStageRenderer.java
│ │ │ ├── VideoStageSurfaceSoftware.java
│ │ │ └── adapter
│ │ │ ├── RemoteMediaAdapter.java
│ │ │ └── SettingsViewAdapter.java
│ │ ├── modal
│ │ ├── ApplicationSettings.java
│ │ ├── Channel.java
│ │ ├── OSDCommon.java
│ │ ├── OSDData.java
│ │ ├── OSDDataDelegate.java
│ │ └── Transmitter.java
│ │ ├── sensors
│ │ ├── DeviceOrientationChangeDelegate.java
│ │ ├── DeviceOrientationManager.java
│ │ ├── DeviceSensorManagerWrapper.java
│ │ └── SensorManagerWrapper.java
│ │ ├── ui
│ │ ├── AnimationIndicator.java
│ │ ├── Button.java
│ │ ├── Image.java
│ │ ├── Indicator.java
│ │ ├── Sprite.java
│ │ ├── Text.java
│ │ ├── ToggleButton.java
│ │ ├── UIRenderer.java
│ │ ├── control
│ │ │ ├── CustomSeekBar.java
│ │ │ └── ViewPagerIndicator.java
│ │ ├── gl
│ │ │ └── GLSprite.java
│ │ └── joystick
│ │ │ ├── AcceleratorJoystick.java
│ │ │ ├── AnalogueJoystick.java
│ │ │ ├── JoystickBase.java
│ │ │ ├── JoystickFactory.java
│ │ │ └── JoystickListener.java
│ │ └── util
│ │ ├── DebugHandler.java
│ │ ├── FileHelper.java
│ │ ├── FontUtils.java
│ │ ├── Input.java
│ │ ├── Output.java
│ │ ├── Serializable.java
│ │ ├── SystemUiHider.java
│ │ ├── SystemUiHiderBase.java
│ │ ├── SystemUiHiderHoneycomb.java
│ │ ├── SystemUtil.java
│ │ └── TextureUtils.java
└── vmc
│ └── ipc
│ ├── config
│ ├── ConfigStoreHandler.java
│ └── VmcConfig.java
│ ├── ftp
│ ├── FTPClient.java
│ ├── FtpCallbackListener.java
│ ├── FtpConnectedListener.java
│ ├── FtpException.java
│ └── FtpManager.java
│ ├── proxy
│ ├── IpcProxy.java
│ ├── NavData.java
│ └── VIConfig.java
│ ├── service
│ ├── ApConnectService.java
│ ├── ConnectStateManager.java
│ ├── IpcControlService.java
│ └── OnIpcConnectChangedListener.java
│ ├── util
│ ├── DebugHandler.java
│ ├── FontUtils.java
│ ├── MediaUtil.java
│ ├── SystemUtil.java
│ └── TextureUtils.java
│ └── view
│ ├── VideoStageSurfaceHardware.java
│ └── gl
│ ├── GLBGVideoSprite.java
│ └── GLSprite.java
└── fix
└── android
└── opengl
└── GLES20.java
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Android.mk:
--------------------------------------------------------------------------------
1 |
2 | LOCAL_PATH := $(call my-dir)
3 | LOCAL_PATH_VMCIPC := $(LOCAL_PATH)
4 | $(warning LOCAL_PATH $(LOCAL_PATH))
5 | include $(CLEAR_VARS)
6 |
7 |
8 |
9 | .PHONY: VMCIPC
10 |
11 | VMCIPC:
12 | cd $(LOCAL_PATH_VMCIPC) && ant debug
13 | cp $(LOCAL_PATH_VMCIPC)/bin/MainActivity-debug.apk $(VMWORKS_OUTPUT_PATH)/wificamclient.apk
14 |
15 |
16 | $(LOCAL_PATH)/bin/MainActivity-debug.apk: VMCIPC
17 |
18 |
19 | LOCAL_MODULE := wificamclient
20 | LOCAL_MODULE_TAGS := optional
21 | LOCAL_MODULE_CLASS := PREBUILT
22 | LOCAL_MODULE_PATH := $(PRODUCT_OUT)
23 | LOCAL_SRC_FILES := bin/MainActivity-debug.apk
24 | include $(BUILD_PREBUILT)
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/assets/About-zh.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 | Flexbot是专为飞行器项目Flexbot开发的iOS平台的无线控制系统,通过BLE4.0通信,控制距离25米左右。通过它,你可以控制Flexbot飞行器。
12 |
13 |
14 | 注意Flexbot在飞行时与使用者或其它人、动物保持2-3米以上的距离,避免Flexbot飞行,降落时撞向他人的头部,脸部或身体等。儿童操控Flexbot时应由成年人在旁指导并确保直升机控制在操作者(或指导者)的视线范围内,方便控制。切勿将电池放在高温,受热的地方(如火中或者电热装置附近)。
15 |
16 |
17 | 我们不对使用Flexbot时造成的任何意外或者安全事故负责,一旦您使用Flexbot,即视为同意以上条款。
18 |
19 |
20 | 了解更多请登入我们的官网:www.flexbot.cc/wiki
21 |
22 |
23 |
--------------------------------------------------------------------------------
/assets/About.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 | Flexbot is the control app for the drone project of the same name. It is the easiest way to fly your tiny drone. It connects to Flexbot via BLE 4.0, and has remote control ability with a range of about 25 meters.
12 |
13 |
14 | Always keep the Flexbot in sight. Avoid flying the Flexbot close to young children, domestic animals or fragile objects. Always keep a minimum distance of about 80 inches (2 meters) between the spinning propellers and people, pets, or other objects. Children may require adult assistance when operating the copter. Do not expose the battery to heat or dispose of in a fire.
15 |
16 |
17 |
18 | We are not responsible for any harm caused by the use of Flexbot and this app. Users of this app and Flexbot drone will be bound by the terms and conditions of this Agreement.
19 |
20 |
21 |
22 | You can see more details about Flexbot here www.flexbot.cc/wiki .
23 |
24 |
25 |
--------------------------------------------------------------------------------
/assets/fonts/helveticaneue-condensedbold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/assets/fonts/helveticaneue-condensedbold.otf
--------------------------------------------------------------------------------
/jni/.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
--------------------------------------------------------------------------------
/jni/API/Android.mk:
--------------------------------------------------------------------------------
1 | LOCAL_PATH := $(call my-dir)
2 |
3 | include $(CLEAR_VARS)
4 | LOCAL_LDLIBS += -llog -lGLESv2 -ljnigraphics
5 | LOCAL_MODULE := vmcipc
6 | LOCAL_SRC_FILES := vmcipc.cpp \
7 | gl_bg_video_sprite_stub.cpp \
8 | gl_video_stage.cpp \
9 | java_callbacks.cpp \
10 | vmcipc_videostream.cpp \
11 | vmcipc_cmd.cpp \
12 | vmcipc_javatool.cpp \
13 | vmcipc_debug.cpp \
14 | ftp_stub.cpp \
15 | config_stub.cpp \
16 | config/minIni.c \
17 | config/IPCConfig.cpp
18 |
19 |
20 | #LOCAL_SHARED_LIBRARIES := libvmctffmpegdec
21 | LOCAL_STATIC_LIBRARIES := libvmcffmpegdec
22 |
23 | LOCAL_CFLAGS += -D__USE_GNU -D__linux__ -DNO_ARDRONE_MAINLOOP -DUSE_ANDROID -DTARGET_CPU_ARM=1 -DTARGET_CPU_X86=0 -DUSE_WIFI -DFFMPEG_SUPPORT -fstack-protector
24 | LOCAL_CFLAGS += -DANDROID_NDK -include vmcipc_defines.h
25 | LOCAL_CPP_FEATURES := exceptions
26 |
27 | LOCAL_CPPFLAGS := -I$(LOCAL_PATH)/include -I$(LOCAL_PATH)/../DEC/ -I$(LOCAL_PATH)/../DEC/include/ -std=c++11
28 |
29 | LOCAL_LDFLAGS += \
30 | -lc -lstdc++ -lcutils -lutils -landroid \
31 | -L$(LOCAL_PATH) -L$(LOCAL_PATH)/../../obj/local/armeabi/ \
32 | -lstagefright_foundation -lstagefright -lbinder -lui \
33 | -Xlinker "-(" \
34 | -lssl -lcrypto -lboost_system -lboost_timer -lboost_chrono -lboost_thread \
35 | -lwa -lrtmptoolkit -lvmcffmpegdec -lftp\
36 | -lavcodec -lavutil -lutils -lbinder -ljpeg -lavformat -lvnettool \
37 | $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/libgnustl_static.a \
38 | \
39 | -Xlinker "-)"
40 |
41 | include $(BUILD_SHARED_LIBRARY)
42 |
--------------------------------------------------------------------------------
/jni/API/config/IPCConfig.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IPCConfig.h
3 | *
4 | * Created on: 2014年2月27日
5 | * Author: Administrator
6 | */
7 |
8 | #ifndef IPCCONFIG_H_
9 | #define IPCCONFIG_H_
10 |
11 | #define IPC_CONFIG_FILE "ipc_config.ini"
12 | #define SECTION_CLIENT "ipc_client"
13 |
14 | #define KEY_DECODE_MODE "decode_mode"
15 | #define KEY_ISSTOREREMOTE "remote_record"
16 | #define KEY_RESOLUTION "resolution"
17 | #define KEY_BITRATE_CONTROL "bitrate_control"
18 |
19 | #define DEFAULT_DECODE_MODE 1
20 | #define DEFAULT_ISSTOREREMOTE false
21 | #define DEFAULT_RESOLUTION "1280,720"
22 | #define DEFAULT_BITRATE_CONTROL 1
23 |
24 | bool initConfig(const char *dir);
25 |
26 | bool setDecodeModeConfig(int mode);
27 |
28 | int getDecodeModeConfig();
29 |
30 | bool setRemoteRecordConfig(bool isTrue);
31 |
32 | bool getRemoteRecordConfig();
33 |
34 | bool setResolutionConfig(const char *resolution);
35 |
36 | const char* getResolutionConfig();
37 |
38 | bool setBitrateControlConfig(int mode);
39 |
40 | int getBitrateControlConfig();
41 |
42 |
43 | #endif /* IPCCONFIG_H_ */
44 |
--------------------------------------------------------------------------------
/jni/API/config/minGlue.h:
--------------------------------------------------------------------------------
1 | /* Glue functions for the minIni library, based on the C/C++ stdio library
2 | *
3 | * Or better said: this file contains macros that maps the function interface
4 | * used by minIni to the standard C/C++ file I/O functions.
5 | *
6 | * By CompuPhase, 2008-2012
7 | * This "glue file" is in the public domain. It is distributed without
8 | * warranties or conditions of any kind, either express or implied.
9 | */
10 |
11 | /* map required file I/O types and functions to the standard C library */
12 | #include
13 |
14 | #define INI_FILETYPE FILE*
15 | #define ini_openread(filename,file) ((*(file) = fopen((filename),"rb")) != NULL)
16 | #define ini_openwrite(filename,file) ((*(file) = fopen((filename),"wb")) != NULL)
17 | #define ini_close(file) (fclose(*(file)) == 0)
18 | #define ini_read(buffer,size,file) (fgets((buffer),(size),*(file)) != NULL)
19 | #define ini_write(buffer,file) (fputs((buffer),*(file)) >= 0)
20 | #define ini_rename(source,dest) (rename((source), (dest)) == 0)
21 | #define ini_remove(filename) (remove(filename) == 0)
22 |
23 | #define INI_FILEPOS fpos_t
24 | #define ini_tell(file,pos) (fgetpos(*(file), (pos)) == 0)
25 | #define ini_seek(file,pos) (fsetpos(*(file), (pos)) == 0)
26 |
27 | /* for floating-point support, define additional types and functions */
28 | #define INI_REAL float
29 | #define ini_ftoa(string,value) sprintf((string),"%f",(value))
30 | #define ini_atof(string) (INI_REAL)strtod((string),NULL)
31 |
--------------------------------------------------------------------------------
/jni/API/gl_bg_video_sprite_stub.h:
--------------------------------------------------------------------------------
1 | /*
2 | * gl_bg_video_sprite_stub.h
3 | *
4 | * Created on: Jul 27, 2012
5 | * Author: "Dmytro Baryskyy"
6 | */
7 |
8 | #include
9 | #include
10 |
11 | #include
12 | #include
13 | #include
14 |
15 | #ifndef GL_BG_VIDEO_SPRITE_STUB_H_
16 | #define GL_BG_VIDEO_SPRITE_STUB_H_
17 |
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 |
22 | typedef enum
23 | {
24 | NO_SCALING,
25 | FIT_X,
26 | FIT_Y,
27 | FIT_XY
28 | } opengl_scaling;
29 |
30 |
31 | typedef enum
32 | {
33 | OPENGL_STATE_INITIALIZED = 0,
34 | OPENGL_STATE_GENERATED,
35 | OPENGL_STATE_SEND_TO_GPU
36 | } opengl_state;
37 |
38 |
39 | typedef struct
40 | {
41 | GLfloat width;
42 | GLfloat height;
43 | } opengl_size_t;
44 |
45 |
46 | typedef struct
47 | {
48 | opengl_size_t image_size;
49 | opengl_size_t texture_size;
50 | GLfloat scaleModelX;
51 | GLfloat scaleModelY;
52 | GLfloat scaleTextureX;
53 | GLfloat scaleTextureY;
54 | GLuint bytesPerPixel;
55 | GLenum format;
56 | GLenum type;
57 | void* data;
58 | GLuint textureId[2];
59 | GLuint vertexBufferId;
60 | GLuint indexBufferId;
61 |
62 | opengl_state state;
63 | } opengl_texture_t;
64 |
65 | typedef struct _opengl_video_config_t
66 | {
67 | // video_decoder_config_t *video_decoder;
68 |
69 | // vp_os_mutex_t mutex;
70 | GLuint widthImage;
71 | GLuint heightImage;
72 | GLuint widthTexture;
73 | GLuint heightTexture;
74 |
75 | GLfloat scaleModelX;
76 | GLfloat scaleModelY;
77 | GLfloat scaleTextureX;
78 | GLfloat scaleTextureY;
79 | GLuint bytesPerPixel;
80 | GLenum format;
81 | GLenum type;
82 | void* data;
83 | GLuint identifier;
84 | uint32_t num_picture_decoded;
85 | uint32_t num_frames;
86 | } opengl_video_stage_config_t;
87 |
88 | #ifdef __cplusplus
89 | }
90 | #endif
91 |
92 | #endif /* GL_BG_VIDEO_SPRITE_STUB_H_ */
93 |
94 |
95 |
--------------------------------------------------------------------------------
/jni/API/gl_video_stage.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/gl_video_stage.cpp
--------------------------------------------------------------------------------
/jni/API/include/SingleRTMP.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | typedef void (*H264_DATA_CALLBACK)(void *,int,unsigned int);
4 | int StartRTMPClient(const char *url,H264_DATA_CALLBACK callback);
5 | int ParseMetricsFromSPS(unsigned char *pSPS,int lenSPS,int *,int *);
6 | void CloseRTMPClientAsyn();
7 | int GetAdjustedHeight(int h);
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/jni/API/include/VCmdDefines.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/include/VCmdDefines.h
--------------------------------------------------------------------------------
/jni/API/include/rapidjson/filestream.h:
--------------------------------------------------------------------------------
1 | #ifndef RAPIDJSON_FILESTREAM_H_
2 | #define RAPIDJSON_FILESTREAM_H_
3 |
4 | #include
5 |
6 | namespace rapidjson {
7 |
8 | //! Wrapper of C file stream for input or output.
9 | /*!
10 | This simple wrapper does not check the validity of the stream.
11 | \implements Stream
12 | */
13 | class FileStream {
14 | public:
15 | typedef char Ch; //!< Character type. Only support char.
16 |
17 | FileStream(FILE* fp) : fp_(fp), count_(0) { Read(); }
18 | char Peek() const { return current_; }
19 | char Take() { char c = current_; Read(); return c; }
20 | size_t Tell() const { return count_; }
21 | void Put(char c) { fputc(c, fp_); }
22 |
23 | // Not implemented
24 | char* PutBegin() { return 0; }
25 | size_t PutEnd(char*) { return 0; }
26 |
27 | private:
28 | void Read() {
29 | RAPIDJSON_ASSERT(fp_ != 0);
30 | int c = fgetc(fp_);
31 | if (c != EOF) {
32 | current_ = (char)c;
33 | count_++;
34 | }
35 | else
36 | current_ = '\0';
37 | }
38 |
39 | FILE* fp_;
40 | char current_;
41 | size_t count_;
42 | };
43 |
44 | } // namespace rapidjson
45 |
46 | #endif // RAPIDJSON_FILESTREAM_H_
47 |
--------------------------------------------------------------------------------
/jni/API/include/rapidjson/internal/strfunc.h:
--------------------------------------------------------------------------------
1 | #ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
2 | #define RAPIDJSON_INTERNAL_STRFUNC_H_
3 |
4 | namespace rapidjson {
5 | namespace internal {
6 |
7 | //! Custom strlen() which works on different character types.
8 | /*! \tparam Ch Character type (e.g. char, wchar_t, short)
9 | \param s Null-terminated input string.
10 | \return Number of characters in the string.
11 | \note This has the same semantics as strlen(), the return value is not number of Unicode codepoints.
12 | */
13 | template
14 | inline SizeType StrLen(const Ch* s) {
15 | const Ch* p = s;
16 | while (*p != '\0')
17 | ++p;
18 | return SizeType(p - s);
19 | }
20 |
21 | } // namespace internal
22 | } // namespace rapidjson
23 |
24 | #endif // RAPIDJSON_INTERNAL_STRFUNC_H_
25 |
--------------------------------------------------------------------------------
/jni/API/include/rapidjson/stringbuffer.h:
--------------------------------------------------------------------------------
1 | #ifndef RAPIDJSON_STRINGBUFFER_H_
2 | #define RAPIDJSON_STRINGBUFFER_H_
3 |
4 | #include "rapidjson.h"
5 | #include "internal/stack.h"
6 |
7 | namespace rapidjson {
8 |
9 | //! Represents an in-memory output stream.
10 | /*!
11 | \tparam Encoding Encoding of the stream.
12 | \tparam Allocator type for allocating memory buffer.
13 | \implements Stream
14 | */
15 | template
16 | struct GenericStringBuffer {
17 | typedef typename Encoding::Ch Ch;
18 |
19 | GenericStringBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {}
20 |
21 | void Put(Ch c) { *stack_.template Push() = c; }
22 |
23 | void Clear() { stack_.Clear(); }
24 |
25 | const char* GetString() const {
26 | // Push and pop a null terminator. This is safe.
27 | *stack_.template Push() = '\0';
28 | stack_.template Pop(1);
29 |
30 | return stack_.template Bottom();
31 | }
32 |
33 | size_t Size() const { return stack_.GetSize(); }
34 |
35 | static const size_t kDefaultCapacity = 256;
36 | mutable internal::Stack stack_;
37 | };
38 |
39 | typedef GenericStringBuffer > StringBuffer;
40 |
41 | //! Implement specialized version of PutN() with memset() for better performance.
42 | template<>
43 | inline void PutN(GenericStringBuffer >& stream, char c, size_t n) {
44 | memset(stream.stack_.Push(n), c, n * sizeof(c));
45 | }
46 |
47 | } // namespace rapidjson
48 |
49 | #endif // RAPIDJSON_STRINGBUFFER_H_
50 |
--------------------------------------------------------------------------------
/jni/API/java_callbacks.h:
--------------------------------------------------------------------------------
1 | /*
2 | * java_callbacks.h
3 | *
4 | * Created on: Jan 31, 2012
5 | * Author: "Dmytro Baryskyy"
6 | */
7 |
8 | #ifndef JAVA_CALLBACKS_H_
9 | #define JAVA_CALLBACKS_H_
10 |
11 | #ifdef __cplusplus
12 | extern "C" {
13 | #endif
14 |
15 | extern void parrot_java_callbacks_call_void_method(JNIEnv *env, jobject obj, const char* methodName);
16 | extern void parrot_java_callbacks_call_void_method_int_int(jobject obj, const char* methodName, int param1, int param2);
17 | extern void parrot_java_callbacks_call_void_method_string(JNIEnv* env, jobject obj, const char*methodName, const char* param);
18 | extern void java_set_field_int(JNIEnv *env, jobject obj, const char* fieldName, jint value);
19 | extern void java_set_field_bool(JNIEnv *env, jobject obj, const char* fieldName, jboolean value);
20 | extern jboolean java_get_bool_field_value(JNIEnv *env, jobject obj, const char* fieldName);
21 |
22 | #ifdef __cplusplus
23 | }
24 | #endif
25 |
26 | #endif /* JAVA_CALLBACKS_H_ */
27 |
--------------------------------------------------------------------------------
/jni/API/libavcodec.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libavcodec.a
--------------------------------------------------------------------------------
/jni/API/libavdevice.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libavdevice.a
--------------------------------------------------------------------------------
/jni/API/libavfilter.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libavfilter.a
--------------------------------------------------------------------------------
/jni/API/libavformat.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libavformat.a
--------------------------------------------------------------------------------
/jni/API/libavutil.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libavutil.a
--------------------------------------------------------------------------------
/jni/API/libbinder.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libbinder.so
--------------------------------------------------------------------------------
/jni/API/libboost_chrono.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libboost_chrono.a
--------------------------------------------------------------------------------
/jni/API/libboost_date_time.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libboost_date_time.a
--------------------------------------------------------------------------------
/jni/API/libboost_system.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libboost_system.a
--------------------------------------------------------------------------------
/jni/API/libboost_thread.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libboost_thread.a
--------------------------------------------------------------------------------
/jni/API/libboost_timer.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libboost_timer.a
--------------------------------------------------------------------------------
/jni/API/libcrypto.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libcrypto.so
--------------------------------------------------------------------------------
/jni/API/libcutils.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libcutils.so
--------------------------------------------------------------------------------
/jni/API/libftp.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libftp.a
--------------------------------------------------------------------------------
/jni/API/libjpeg.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libjpeg.so
--------------------------------------------------------------------------------
/jni/API/libpostproc.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libpostproc.a
--------------------------------------------------------------------------------
/jni/API/librtmptoolkit.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/librtmptoolkit.a
--------------------------------------------------------------------------------
/jni/API/libssl.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libssl.so
--------------------------------------------------------------------------------
/jni/API/libstagefright.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libstagefright.so
--------------------------------------------------------------------------------
/jni/API/libstagefright_foundation.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libstagefright_foundation.so
--------------------------------------------------------------------------------
/jni/API/libswresample.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libswresample.a
--------------------------------------------------------------------------------
/jni/API/libswscale.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libswscale.a
--------------------------------------------------------------------------------
/jni/API/libui.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libui.so
--------------------------------------------------------------------------------
/jni/API/libutils.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libutils.so
--------------------------------------------------------------------------------
/jni/API/libvmcffmpegdec.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libvmcffmpegdec.a
--------------------------------------------------------------------------------
/jni/API/libvnettool.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libvnettool.a
--------------------------------------------------------------------------------
/jni/API/libwa.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libwa.a
--------------------------------------------------------------------------------
/jni/API/libyuv_static.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/libyuv_static.a
--------------------------------------------------------------------------------
/jni/API/vmcipc.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/vmcipc.cpp
--------------------------------------------------------------------------------
/jni/API/vmcipc.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #if 0
3 | extern "C" {
4 | extern void ConvertYUVToRGB565();
5 | extern unsigned char *GetRGBBuffer();
6 | void SetBufferUpdated(bool b);
7 | bool IsBufferUpdated();
8 | unsigned char *GetYUVBuffer();
9 | void MyStat();
10 | int GetVideoMetrics(int *pWidth,int *pHeight);
11 | bool IsVideoInited();
12 | void lock_disp_buffer();
13 | void unlock_disp_buffer();
14 |
15 | }
16 | #endif
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_cmd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/vmcipc_cmd.cpp
--------------------------------------------------------------------------------
/jni/API/vmcipc_cmd.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include "VNetTool.h"
5 |
6 | namespace cmd
7 | {
8 | std::map & StartServerStatusEnum();
9 | void EndServerStatusEnum();
10 |
11 | vmc::INetBase * GetCmdClient();
12 |
13 | void AjustDeviceFps(double fps);
14 | void SendDeviceInfo(const char *phoneType,const char *cpuinfo,const char *mac);
15 | void SendRestartServer();
16 | void SendRestartPublisher();
17 | void SendRestartDevice();
18 | void SendSetResolution(int width,int height);
19 |
20 | void SendStartRecord(const char *sDir,const char *sName);
21 | void SendStopRecord();
22 | void SendSetBitrateControlType(int type);
23 |
24 |
25 | void CommandConnectionStart();
26 | int GetCmdProcessPoolId();
27 |
28 | void CommandConnectionInit();
29 | void CommandConnectionDestroy();
30 |
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_debug.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include // requires ndk r5 or newer
3 | #include // requires ndk r5 or newer
4 |
5 | #include "VCmdDefines.h"
6 | #include "vmcipc_videostream.h"
7 | #include "vmcipc_cmd.h"
8 | #include "vmcipc_javatool.h"
9 | #include "vmcipc_debug.h"
10 |
11 | namespace debug
12 | {
13 |
14 | static std::map g_mapDebug;
15 | static pthread_mutex_t g_mutex_debug = PTHREAD_MUTEX_INITIALIZER;
16 |
17 | void SendDebugString()
18 | {
19 | std::map::iterator iter;
20 | std::string str;
21 | str = "";
22 | pthread_mutex_lock(&g_mutex_debug);
23 | for(iter = g_mapDebug.begin();iter != g_mapDebug.end();iter++)
24 | {
25 | str += iter->first;
26 | str += ":";
27 | str += iter->second;
28 | str += "\r\n";
29 | }
30 | pthread_mutex_unlock(&g_mutex_debug);
31 | if(str.size() > 0)
32 | {
33 | javatool::JavaSendMsgByJni(MESSAGE_REFRESH_DEBUG,str.c_str());
34 | }
35 |
36 | }
37 | void UpdateDebugInfo(const char *key,const char *value)
38 | {
39 | pthread_mutex_lock(&g_mutex_debug);
40 | g_mapDebug[key] = value;
41 | pthread_mutex_unlock(&g_mutex_debug);
42 | }
43 | void UpdateDebugInfo(const char *key,double value)
44 | {
45 | char buf[100];
46 | sprintf(buf,"%.2f",(float)value);
47 | UpdateDebugInfo(key,buf);
48 | }
49 | void UpdateDebugInfo(const char *key,int value)
50 | {
51 | char buf[100];
52 | sprintf(buf,"%d",value);
53 | UpdateDebugInfo(key,buf);
54 | }
55 | int GetDebugTimerId()
56 | {
57 | return TIMER_ID_DEBUG;
58 | }
59 | static void DebugTimerCallback(int ,void *)
60 | {
61 | SendDebugString();
62 | }
63 | void StartDebugTimer()
64 | {
65 | vmc::SetTimer(GetDebugTimerId(),cmd::GetCmdProcessPoolId(),1000,DebugTimerCallback,true,NULL);
66 | }
67 | }
68 |
69 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_debug.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | namespace debug
3 | {
4 | void SendDebugString();
5 | void UpdateDebugInfo(const char *key,const char *value);
6 | void UpdateDebugInfo(const char *key,double value);
7 | void UpdateDebugInfo(const char *key,int value);
8 | int GetDebugTimerId();
9 | void StartDebugTimer();
10 | void EnableDebug(bool bEnable);
11 | }
12 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_defines.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 |
5 | #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "vmc", __VA_ARGS__))
6 | #define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "vmc", __VA_ARGS__))
7 |
8 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_javatool.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/vmcipc_javatool.cpp
--------------------------------------------------------------------------------
/jni/API/vmcipc_javatool.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | namespace javatool
4 | {
5 | void InitEnv(JNIEnv *env);
6 | void InitVM(JavaVM *vm);
7 | void InitProxyObj(jobject objIpcProxy);
8 |
9 | void InitJavaMethods();
10 |
11 | void JavaShowStatus(const char *s,int state);
12 | void JavaSendMsgByJni(int cmd,const char *msg);
13 |
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/jni/API/vmcipc_videostream.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/vmcipc_videostream.cpp
--------------------------------------------------------------------------------
/jni/API/vmcipc_videostream.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 |
5 |
6 | struct ANativeWindow;
7 | namespace videostream
8 | {
9 | void SetNativeWindow(ANativeWindow *window);
10 | void ResetRTMPState();
11 | void StartRec(const char *dir,const char *filename);
12 | unsigned char *GetRGBBuffer();
13 | unsigned char *GetYUVBuffer();
14 | void lock_disp_buffer();
15 | void unlock_disp_buffer();
16 | char *GetServerAddr();
17 |
18 | void StartRTMPThread();
19 | int GetVideoMetrics(int *pWidth,int *pHeight);
20 | bool IsVideoInited();
21 | void StartSoftDecoder();
22 | void CloseRTMPConnection();
23 |
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/jni/API/yuv2rgb.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/yuv2rgb.cpp
--------------------------------------------------------------------------------
/jni/API/yuv2rgb.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/API/yuv2rgb.h
--------------------------------------------------------------------------------
/jni/Android.mk:
--------------------------------------------------------------------------------
1 | CFLAGS := -g
2 | include $(all-subdir-makefiles)
3 |
--------------------------------------------------------------------------------
/jni/Application.mk:
--------------------------------------------------------------------------------
1 | APP_ABI := armeabi armeabi-v7a
2 | APP_STL := gnustl_static
3 |
--------------------------------------------------------------------------------
/jni/DEC/H264Decoder.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/DEC/H264Decoder.h
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavfilter/avfiltergraph.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Filter graphs
3 | * copyright (c) 2007 Bobby Bingham
4 | *
5 | * This file is part of FFmpeg.
6 | *
7 | * FFmpeg is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU Lesser General Public
9 | * License as published by the Free Software Foundation; either
10 | * version 2.1 of the License, or (at your option) any later version.
11 | *
12 | * FFmpeg is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with FFmpeg; if not, write to the Free Software
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 | */
21 |
22 | #ifndef AVFILTER_AVFILTERGRAPH_H
23 | #define AVFILTER_AVFILTERGRAPH_H
24 |
25 | #include "avfilter.h"
26 | #include "libavutil/log.h"
27 |
28 | #endif /* AVFILTER_AVFILTERGRAPH_H */
29 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/adler32.h:
--------------------------------------------------------------------------------
1 | /*
2 | * copyright (c) 2006 Mans Rullgard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_ADLER32_H
22 | #define AVUTIL_ADLER32_H
23 |
24 | #include
25 | #include "attributes.h"
26 |
27 | /**
28 | * @file
29 | * Public header for libavutil Adler32 hasher
30 | *
31 | * @defgroup lavu_adler32 Adler32
32 | * @ingroup lavu_crypto
33 | * @{
34 | */
35 |
36 | /**
37 | * Calculate the Adler32 checksum of a buffer.
38 | *
39 | * Passing the return value to a subsequent av_adler32_update() call
40 | * allows the checksum of multiple buffers to be calculated as though
41 | * they were concatenated.
42 | *
43 | * @param adler initial checksum value
44 | * @param buf pointer to input buffer
45 | * @param len size of input buffer
46 | * @return updated checksum
47 | */
48 | unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
49 | unsigned int len) av_pure;
50 |
51 | /**
52 | * @}
53 | */
54 |
55 | #endif /* AVUTIL_ADLER32_H */
56 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/audioconvert.h:
--------------------------------------------------------------------------------
1 |
2 | #include "version.h"
3 |
4 | #if FF_API_AUDIOCONVERT
5 | #include "channel_layout.h"
6 | #endif
7 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/avconfig.h:
--------------------------------------------------------------------------------
1 | /* Generated by ffconf */
2 | #ifndef AVUTIL_AVCONFIG_H
3 | #define AVUTIL_AVCONFIG_H
4 | #define AV_HAVE_BIGENDIAN 0
5 | #define AV_HAVE_FAST_UNALIGNED 1
6 | #define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0
7 | #define AV_HAVE_INCOMPATIBLE_FORK_ABI 0
8 | #endif /* AVUTIL_AVCONFIG_H */
9 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/ffversion.h:
--------------------------------------------------------------------------------
1 | #ifndef AVUTIL_FFVERSION_H
2 | #define AVUTIL_FFVERSION_H
3 | #define FFMPEG_VERSION "N-59325-g459db51"
4 | #endif /* AVUTIL_FFVERSION_H */
5 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/intfloat_readwrite.h:
--------------------------------------------------------------------------------
1 | /*
2 | * copyright (c) 2005 Michael Niedermayer
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_INTFLOAT_READWRITE_H
22 | #define AVUTIL_INTFLOAT_READWRITE_H
23 |
24 | #include
25 |
26 | #include "attributes.h"
27 | #include "version.h"
28 |
29 | #if FF_API_INTFLOAT
30 | /* IEEE 80 bits extended float */
31 | typedef struct AVExtFloat {
32 | uint8_t exponent[2];
33 | uint8_t mantissa[8];
34 | } AVExtFloat;
35 |
36 | attribute_deprecated double av_int2dbl(int64_t v) av_const;
37 | attribute_deprecated float av_int2flt(int32_t v) av_const;
38 | attribute_deprecated double av_ext2dbl(const AVExtFloat ext) av_const;
39 | attribute_deprecated int64_t av_dbl2int(double d) av_const;
40 | attribute_deprecated int32_t av_flt2int(float d) av_const;
41 | attribute_deprecated AVExtFloat av_dbl2ext(double d) av_const;
42 | #endif /* FF_API_INTFLOAT */
43 |
44 | #endif /* AVUTIL_INTFLOAT_READWRITE_H */
45 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/murmur3.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2013 Reimar Döffinger
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_MURMUR3_H
22 | #define AVUTIL_MURMUR3_H
23 |
24 | #include
25 |
26 | struct AVMurMur3 *av_murmur3_alloc(void);
27 | void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed);
28 | void av_murmur3_init(struct AVMurMur3 *c);
29 | void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, int len);
30 | void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]);
31 |
32 | #endif /* AVUTIL_MURMUR3_H */
33 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/random_seed.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009 Baptiste Coudurier
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_RANDOM_SEED_H
22 | #define AVUTIL_RANDOM_SEED_H
23 |
24 | #include
25 | /**
26 | * @addtogroup lavu_crypto
27 | * @{
28 | */
29 |
30 | /**
31 | * Get a seed to use in conjunction with random functions.
32 | * This function tries to provide a good seed at a best effort bases.
33 | * Its possible to call this function multiple times if more bits are needed.
34 | * It can be quite slow, which is why it should only be used as seed for a faster
35 | * PRNG. The quality of the seed depends on the platform.
36 | */
37 | uint32_t av_get_random_seed(void);
38 |
39 | /**
40 | * @}
41 | */
42 |
43 | #endif /* AVUTIL_RANDOM_SEED_H */
44 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libavutil/time.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2000-2003 Fabrice Bellard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_TIME_H
22 | #define AVUTIL_TIME_H
23 |
24 | #include
25 |
26 | /**
27 | * Get the current time in microseconds.
28 | */
29 | int64_t av_gettime(void);
30 |
31 | /**
32 | * Sleep for a period of time. Although the duration is expressed in
33 | * microseconds, the actual delay may be rounded to the precision of the
34 | * system timer.
35 | *
36 | * @param usec Number of microseconds to sleep.
37 | * @return zero on success or (negative) error code.
38 | */
39 | int av_usleep(unsigned usec);
40 |
41 | #endif /* AVUTIL_TIME_H */
42 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libpostproc/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef POSTPROC_POSTPROCESS_VERSION_H
22 | #define POSTPROC_POSTPROCESS_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libpostproc version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBPOSTPROC_VERSION_MAJOR 52
32 | #define LIBPOSTPROC_VERSION_MINOR 3
33 | #define LIBPOSTPROC_VERSION_MICRO 100
34 |
35 | #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
36 | LIBPOSTPROC_VERSION_MINOR, \
37 | LIBPOSTPROC_VERSION_MICRO)
38 | #define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \
39 | LIBPOSTPROC_VERSION_MINOR, \
40 | LIBPOSTPROC_VERSION_MICRO)
41 | #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT
42 |
43 | #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION)
44 |
45 | #endif /* POSTPROC_POSTPROCESS_VERSION_H */
46 |
--------------------------------------------------------------------------------
/jni/DEC/ffmpeg/include/libswresample/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of libswresample
5 | *
6 | * libswresample is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * libswresample is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with libswresample; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef SWR_VERSION_H
22 | #define SWR_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libswresample version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBSWRESAMPLE_VERSION_MAJOR 0
32 | #define LIBSWRESAMPLE_VERSION_MINOR 17
33 | #define LIBSWRESAMPLE_VERSION_MICRO 104
34 |
35 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
36 | LIBSWRESAMPLE_VERSION_MINOR, \
37 | LIBSWRESAMPLE_VERSION_MICRO)
38 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \
39 | LIBSWRESAMPLE_VERSION_MINOR, \
40 | LIBSWRESAMPLE_VERSION_MICRO)
41 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT
42 |
43 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION)
44 |
45 | #endif /* SWR_VERSION_H */
46 |
--------------------------------------------------------------------------------
/jni/DEC/include/RTMPStream.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/DEC/include/RTMPStream.h
--------------------------------------------------------------------------------
/jni/DEC/include/vmcdef.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/DEC/include/vmcdef.h
--------------------------------------------------------------------------------
/jni/DEC/vmc_decoder_handler.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/jni/DEC/vmc_decoder_handler.h
--------------------------------------------------------------------------------
/jni/DEC/vmc_ffmpeg_rec.h:
--------------------------------------------------------------------------------
1 | #ifndef VMC_FFMPEG_REC_H
2 |
3 | #define VMC_FFMPEG_REC_H
4 |
5 | #ifdef __cplusplus
6 | extern "C" {
7 | #endif
8 |
9 |
10 | //#include
11 | #include "include/libavcodec//avcodec.h"
12 | #include "include/libavformat/avformat.h"
13 | #include "include/libavutil/avutil.h"
14 |
15 | #ifdef __cplusplus
16 | }
17 | #endif
18 |
19 |
20 | typedef struct VmcRecContext_{
21 |
22 | AVOutputFormat *OutForamt;
23 | AVFormatContext *FormatContext;
24 | AVStream * VideoSt;
25 | int FrameRate;
26 | int widht;
27 | int height;
28 | char *pExtradata;
29 | int ExdataSize;
30 | const char *filename;
31 |
32 | }VmcRecContext;
33 |
34 |
35 |
36 | VmcRecContext * VmcRecInit(const char*filename, int w, int h, int fps, char *extradata, int exdatasize);
37 | int VmcWiteVideoFrame( VmcRecContext *pContext, char *input, int size, uint64_t pts);
38 | int VmcRecClose(VmcRecContext * pContext);
39 |
40 |
41 |
42 |
43 |
44 | #endif //VMC_FFMPEG_REC_H
45 |
46 |
--------------------------------------------------------------------------------
/jni/DEC/vmc_jpegenc.h:
--------------------------------------------------------------------------------
1 | #ifndef VMC__JPEGENC_H
2 |
3 | #define VMC__JPEGENC_H
4 |
5 |
6 |
7 | int get_photo(char * dest_dir,char * name, bool location_flag);
8 |
9 |
10 | #endif //VMC__JPEGENC_H
11 |
12 |
--------------------------------------------------------------------------------
/jni/DEC/vmc_rec_handler.h:
--------------------------------------------------------------------------------
1 | #ifndef VMC__REC_HANDLER_H
2 |
3 | #define VMC__REC_HANDLER_H
4 |
5 |
6 |
7 |
8 |
9 |
10 | enum rec_error_id{
11 | REC_OK=0,
12 | REC_INIT_ERR,
13 | REC_ERR,
14 | REC_START_ERR
15 |
16 | };
17 |
18 |
19 | #define INIT_REC_ERROR "uninit or init error!"
20 | #define REC_ERROR "rec_error!"
21 | #define START_REC_THREAD_ERROR "start rec thread error!"
22 |
23 |
24 | typedef void (*rec_callback)(int state, char * error );
25 |
26 |
27 |
28 |
29 |
30 | static char * rec_erro_info[]={
31 | NULL, // 0,
32 | INIT_REC_ERROR, // 1
33 | REC_ERROR, // 2
34 | START_REC_THREAD_ERROR // 3
35 |
36 | };
37 |
38 |
39 |
40 |
41 |
42 |
43 | int start_rec_hander(char * dst_dir, char * filename , bool location_flag, rec_callback callback);
44 | int close_rec_hander(void);
45 |
46 |
47 |
48 |
49 | #endif //VMC__REC_HANDLER_H
50 |
51 |
--------------------------------------------------------------------------------
/jni/FlexCam.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
--------------------------------------------------------------------------------
/jni/GLFIX/Android.mk:
--------------------------------------------------------------------------------
1 | LOCAL_PATH := $(call my-dir)
2 |
3 | include $(CLEAR_VARS)
4 | LOCAL_MODULE := glfix
5 | LOCAL_LDLIBS := -lGLESv2
6 | LOCAL_SRC_FILES := fix-GLES20.c
7 |
8 | LOCAL_CFLAGS += -DANDROID_NDK
9 | include $(BUILD_SHARED_LIBRARY)
--------------------------------------------------------------------------------
/jni/GLFIX/fix-GLES20.c:
--------------------------------------------------------------------------------
1 | /*
2 | * fix-GLES20.c
3 | *
4 | * Created on: Mar 18, 2012
5 | * Author: "Dmytro Baryskyy"
6 | */
7 |
8 | #include
9 | #include
10 |
11 | void Java_fix_android_opengl_GLES20_glVertexAttribPointer
12 | (JNIEnv *env, jclass c, jint index, jint size, jint type, jboolean normalized, jint stride, jint offset)
13 | {
14 | glVertexAttribPointer(index, size, type, normalized, stride, (void*) offset);
15 | }
16 |
17 | void Java_fix_android_opengl_GLES20_glDrawElements
18 | (JNIEnv *env, jclass c, jint mode, jint count, jint type, jint offset)
19 | {
20 | glDrawElements(mode, count, type, (void*) offset);
21 | }
22 |
--------------------------------------------------------------------------------
/libs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/.DS_Store
--------------------------------------------------------------------------------
/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/libs/armeabi-v7a/libglfix.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/armeabi-v7a/libglfix.so
--------------------------------------------------------------------------------
/libs/armeabi-v7a/libvmcipc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/armeabi-v7a/libvmcipc.so
--------------------------------------------------------------------------------
/libs/armeabi/libglfix.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/armeabi/libglfix.so
--------------------------------------------------------------------------------
/libs/armeabi/libvmcipc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/armeabi/libvmcipc.so
--------------------------------------------------------------------------------
/libs/dd-plist.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/libs/dd-plist.jar
--------------------------------------------------------------------------------
/lic:
--------------------------------------------------------------------------------
1 | Code license
2 | GNU GPL v3
3 | http://www.gnu.org/licenses/gpl.html
4 |
5 |
6 | Content license
7 | CC BY-NC-SA 4.0
8 | http://creativecommons.org/licenses/by-nc-sa/4.0/
9 |
--------------------------------------------------------------------------------
/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/make4880-1.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | copy /b/y ".\obj\local\armeabi\libvmcipc.so" ".\libs\armeabi\libvmcipc.so" > NUL
3 |
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/libglfix.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/obj/local/armeabi-v7a/libglfix.so
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/libvmcipc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/obj/local/armeabi-v7a/libvmcipc.so
--------------------------------------------------------------------------------
/obj/local/armeabi/libglfix.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/obj/local/armeabi/libglfix.so
--------------------------------------------------------------------------------
/obj/local/armeabi/libvmcipc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/obj/local/armeabi/libvmcipc.so
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-18
15 |
--------------------------------------------------------------------------------
/release.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -fr ./jni/DEC/Android.mk
3 | rm -fr ./jni/DEC/*.cpp
4 | rm -fr ./jni/DEC/include/aosp
5 | cp ./obj/local/armeabi/libvmcffmpegdec.a ./jni/API/ -a
6 |
--------------------------------------------------------------------------------
/res/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/.DS_Store
--------------------------------------------------------------------------------
/res/color/sel_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/.DS_Store
--------------------------------------------------------------------------------
/res/drawable-xhdpi/album_play_btn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/album_play_btn.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/album_play_btn_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/album_play_btn_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_off.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_off_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_off_disabled.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_off_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_off_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_on.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_on_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_on_disabled.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/alt_hold_on_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/alt_hold_on_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/angeleyes01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/angeleyes01.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/arrow_left_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/arrow_left_orange.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/arrow_right_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/arrow_right_orange.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/back_btn_settings_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/back_btn_settings_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/back_btn_settings_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/back_btn_settings_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/bar_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/bar_bottom.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/bar_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/bar_top.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/barre_bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/barre_bas.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/barre_haut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/barre_haut.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/bg_tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/bg_tile.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ble_connected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ble_connected.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ble_indicator_closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ble_indicator_closed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ble_indicator_opened.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ble_indicator_opened.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ble_no_connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ble_no_connect.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_left_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_arrow_left_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_left_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_arrow_left_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_right_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_arrow_right_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_arrow_right_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_arrow_right_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_back.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_back_divider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_back_divider.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_back_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_back_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_back_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_back_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_back_normal_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_back_normal_new.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_battery_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_battery_0.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_battery_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_battery_1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_battery_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_battery_2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_battery_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_battery_3.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_battery_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_battery_4.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_black_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_black_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_black_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_black_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_capture_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_capture_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_capture_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_capture_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_check_buttonless_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_check_buttonless_on.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_close.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_close_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_close_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_close_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_close_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_delete.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_delete_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_delete_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_delete_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_delete_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_fixed_high_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_fixed_high_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gallery_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gallery_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gallery_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gallery_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gesture_off_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gesture_off_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gesture_off_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gesture_off_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gesture_on_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gesture_on_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_gesture_on_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_gesture_on_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_help_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_help_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_help_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_help_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_hold_off_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_hold_off_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_hold_off_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_hold_off_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_hold_on_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_hold_on_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_hold_on_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_hold_on_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_lock_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_lock_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_lock_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_lock_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_off_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_off_disabled.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_off_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_off_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_off_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_off_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_on_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_on_disabled.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_on_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_on_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_on_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_on_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_photos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_photos.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_photos_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_photos_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_play.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_play_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_play_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_play_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_play_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record1_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record1_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record_video_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record_video_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_record_video_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_record_video_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_reset_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_reset_orange.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_reset_orange_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_reset_orange_disabled.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_reset_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_reset_white.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_settings_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_settings_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings_normal1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_settings_normal1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings_normal1_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_settings_normal1_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_settings_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_settings_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_share_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_share_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_share_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_share_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_stop.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_stop_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_stop_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_stop_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_stop_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_take_off.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_take_off_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_take_off_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_take_off_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_take_off_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_down_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_down_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_down_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_down_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_left_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_left_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_left_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_left_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_right_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_right_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_right_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_right_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_up_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_up_hl.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_trim_up_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_trim_up_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_unlock_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_unlock_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_unlock_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_unlock_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_videos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_videos.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_videos_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_videos_selected.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_wifi_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_wifi_0.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_wifi_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_wifi_1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_wifi_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_wifi_2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_wifi_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/btn_wifi_3.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/bug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/bug.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/device_battery_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/device_battery_0.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/device_battery_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/device_battery_1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/device_battery_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/device_battery_2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/device_battery_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/device_battery_3.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/device_battery_level.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
10 |
13 |
16 |
17 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/eye_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/eye_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/eye_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/eye_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ff2_top_bar_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ff2_top_bar_time.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/gnome_ftp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/gnome_ftp.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_01.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_02.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_03.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_04.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_05.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_06.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_01.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_02.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_03.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_04.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_05.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/help_page_cn_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/help_page_cn_06.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/hud_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/hud_bg.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/ic_launcher2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_bg.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_bg2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_bg2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_bg_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_bg_new.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_roll_pitch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_roll_pitch.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_roll_pitch_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_roll_pitch_new.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_rudder_throttle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_rudder_throttle.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/joystick_rudder_throttle_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/joystick_rudder_throttle_new.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/left_bottom_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/left_bottom_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/left_bottom_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/left_bottom_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/left_top.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/left_top_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/left_top_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/left_top_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/left_top_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/logo.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/logo_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/logo_new.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/main_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/main_background.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/main_bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/main_bg1.jpg
--------------------------------------------------------------------------------
/res/drawable-xhdpi/middle_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/middle_bg.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/process_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/process_icon.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/recording_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/recording_status.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/right_bottom_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/right_bottom_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/right_bottom_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/right_bottom_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/right_top_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/right_top_normal.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/right_top_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/right_top_press.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/screw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/screw.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/scroll_bar_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/scroll_bar_gray.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/scroll_bar_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/scroll_bar_orange.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/scroll_btn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/scroll_btn.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/seekbar_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/seekbar_part.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/seekbar_part.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/seekbar_point.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/seekbar_point.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/seekbar_thumb.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/seekbar_total.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/seekbar_total.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_center_checked_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_center_checked_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_center_checked_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_center_checked_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_center_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_center_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_center_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_center_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_left_checked_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_left_checked_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_left_checked_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_left_checked_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_left_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_left_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_left_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_left_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_right_checked_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_right_checked_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_right_checked_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_right_checked_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_right_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_right_normal.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/segment_right_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/segment_right_pressed.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/settings_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/splash.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/status_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/status_bar.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/switch_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/switch_off.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/switch_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/switch_on.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/text_show_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/text_show_bar.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/transparent_bg_tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/transparent_bg_tile.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/trim_dummy_center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/trim_dummy_center.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/web_address.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/web_address.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/wifi_indicator_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/wifi_indicator_1.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/wifi_indicator_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/wifi_indicator_2.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/wifi_indicator_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/wifi_indicator_3.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/wifi_indicator_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/drawable-xhdpi/wifi_indicator_4.png
--------------------------------------------------------------------------------
/res/drawable/black.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/black_half_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/bottom_button_bar_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable/btn_back_arrow.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable/btn_back_feedback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable/btn_capture_state.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/res/drawable/btn_record_state.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/drawable/btn_share.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/center.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/default_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/res/drawable/indication_ac_plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/drawable/indication_record.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/left_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/orange.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/progress_medium.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/res/drawable/right_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/right_top.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/section_center.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
9 |
11 |
13 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/drawable/section_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
9 |
11 |
13 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/drawable/section_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
9 |
11 |
13 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/drawable/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/res/drawable/wifi_level.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
10 |
13 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_01.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_02.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_03.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_04.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_05.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout-zh/help_page_06.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/ble_device_list_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/res/layout/custom_progress_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/res/layout/gallery_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/res/layout/help_page_01.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/help_page_02.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/help_page_03.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/help_page_04.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/help_page_05.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/help_page_06.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/hud.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/hud_view_controller_framelayout.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
15 |
16 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/progress_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
25 |
26 |
32 |
33 |
--------------------------------------------------------------------------------
/res/layout/settings_page_about.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/res/layout/settings_screen_dimentions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 28dp
4 | 20dp
5 | 190dp
6 | 15dp
7 | 22sp
8 | 18sp
9 | 14sp
10 | 15dp
11 | 5dp
12 | 10dp
13 | 10dp
14 | 3dp
15 | 250dp
16 | 20dp
17 | 4dp
18 | @dimen/settings_seek_width
19 | 12dp
20 | 75dp
21 | 30dp
22 |
--------------------------------------------------------------------------------
/res/layout/share_media.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/res/menu/sharemenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/raw/battery.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/raw/battery.wav
--------------------------------------------------------------------------------
/res/raw/camera_click.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/raw/camera_click.ogg
--------------------------------------------------------------------------------
/res/raw/video_record.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/raw/video_record.ogg
--------------------------------------------------------------------------------
/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
11 |
12 |
19 |
20 |
23 |
24 |
--------------------------------------------------------------------------------
/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/res/values/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/res/values/.DS_Store
--------------------------------------------------------------------------------
/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 | #66000000
3 | #ffffffff
4 | @color/white
5 | #BBFFFFFF
6 | #00000000
7 | #ff0000
8 | #00ff00
9 | #0000ff
10 | #000000
11 | #FFA500
12 | #FFFF00
13 | #ffff7800
14 |
15 | @color/accent
16 | #FF777777
17 | #ff000000
18 | @color/white
19 | @color/top_bar_accent
20 |
--------------------------------------------------------------------------------
/res/values/main_dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 5dp
4 | 10dp
5 | 10dp
6 | 12dp
7 |
8 | 60dp
9 | @dimen/main_btn_margin_top
10 | 110dp
11 | @dimen/main_btn_margin_top
12 | @dimen/main_btn_margin_left
13 | @dimen/main_btn_margin_top
14 | @dimen/main_btn_margin_top
15 | @dimen/main_btn_margin_right
16 | 2dp
17 | 5dp
18 | @dimen/main_indicator_margin_top
19 | 60dp
20 | @dimen/main_indicator_margin_top
21 | 140dp
22 | @dimen/main_indicator_margin_top
23 | 100dp
24 | 30dp
25 | 5dp
26 | 30dp
27 | 5dp
28 |
--------------------------------------------------------------------------------
/res/values/settings_screen_dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 15dp
4 | 10dp
5 | 22sp
6 | 10dp
7 | 12dp
8 | 10dp
9 | 255dp
10 | 3dp
11 | 10dp
12 | 30dp
13 | 5dp
14 | 16sp
15 | 13sp
16 |
--------------------------------------------------------------------------------
/res/values/settings_screen_dimentions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 28dp
4 | 20dp
5 | 190dp
6 | 15dp
7 | 22sp
8 | 18sp
9 | 14sp
10 | 15dp
11 | 5dp
12 | 10dp
13 | 10dp
14 | 20dp
15 | 4dp
16 | @dimen/settings_seek_width
17 | 12dp
18 | 75dp
19 | 30dp
20 |
--------------------------------------------------------------------------------
/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values/view_pager_indicator_attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/values/view_pager_indicator_defaults.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #99FFFFFF
4 | #FFFFFFFF
5 | 3dp
6 | 5dp
7 |
--------------------------------------------------------------------------------
/res/values/view_pager_indicator_style.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/res/xml/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
13 |
14 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/res/xml/updater_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/.DS_Store
--------------------------------------------------------------------------------
/src/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/.DS_Store
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/Const.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 | public class Const {
4 |
5 | public static String web_site = "http://118.244.224.19";
6 | public static String user_feedback_url = web_site + "/flexbot-feedback.php";
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/CustomProgressDialog.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 | import android.app.Dialog;
4 | import android.content.Context;
5 | import android.view.Gravity;
6 | import android.widget.TextView;
7 |
8 | public class CustomProgressDialog extends Dialog {
9 | public CustomProgressDialog(Context context, String strMessage) {
10 | this(context, R.style.CustomProgressDialog, strMessage);
11 | }
12 |
13 | public CustomProgressDialog(Context context, int theme, String strMessage) {
14 | super(context, theme);
15 | this.setContentView(R.layout.custom_progress_dialog);
16 | this.getWindow().getAttributes().gravity = Gravity.CENTER;
17 | TextView tvMsg = (TextView) this.findViewById(R.id.id_loadingmsg);
18 | if (tvMsg != null) {
19 | tvMsg.setText(strMessage);
20 | }
21 | }
22 |
23 | @Override
24 | public void onWindowFocusChanged(boolean hasFocus) {
25 | if (!hasFocus) {
26 | dismiss();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/GalleryDialogDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 | public interface GalleryDialogDelegate {
4 | public void prepareDialog(GalleryDialog dialog);
5 | public void onDismissed(GalleryDialog settingsDialog);
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/GalleryViewController.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 |
4 | import android.view.View;
5 | import android.view.View.OnClickListener;
6 |
7 | public class GalleryViewController extends ViewController
8 | implements OnClickListener{
9 |
10 | @Override
11 | public void onClick(View arg0) {
12 | // TODO Auto-generated method stub
13 |
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/GalleryViewControllerDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 | public interface GalleryViewControllerDelegate {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/HexMiniApplication.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/HexMiniApplication.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/HudExViewController.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/HudExViewController.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/HudViewControllerDelegate.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package com.hexairbot.hexmini;
5 |
6 | import com.hexairbot.hexmini.ui.Button;
7 |
8 | import android.view.View;
9 |
10 |
11 | /**
12 | * @author koupoo
13 | *
14 | */
15 | public interface HudViewControllerDelegate {
16 | public void settingsBtnDidClick(View settingsBtn);
17 | }
18 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/SettingsDialogDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini;
2 |
3 | import com.hexairbot.hexmini.SettingsDialog;
4 |
5 | public interface SettingsDialogDelegate
6 | {
7 | public void prepareDialog(SettingsDialog dialog);
8 | public void onDismissed(SettingsDialog settingsDialog);
9 | }
10 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/SettingsViewControllerDelegate.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package com.hexairbot.hexmini;
5 |
6 |
7 | /**
8 | * @author koupoo
9 | *
10 | */
11 | public interface SettingsViewControllerDelegate {
12 | public void interfaceOpacityValueDidChange(float newValue);
13 | public void leftHandedValueDidChange(boolean isLeftHanded);
14 | public void accModeValueDidChange(boolean isAccMode);
15 | public void headfreeModeValueDidChange(boolean isHeadfree);
16 | public void beginnerModeValueDidChange(boolean isBeginnerMode);
17 | public void autoAltHoldModeValueDidChange(boolean isAutoAltHoldMode);
18 | public void aileronAndElevatorDeadBandValueDidChange(float newValue);
19 | public void rudderDeadBandValueDidChange(float newValue);
20 |
21 | public void didConnect();
22 | public void didDisconnect();
23 | public void didFailToConnect();
24 | public void tringToConnect(String target);
25 | }
26 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ViewController.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package com.hexairbot.hexmini;
5 |
6 | import android.content.Context;
7 |
8 | /**
9 | * @author koupoo
10 | *
11 | */
12 | public abstract class ViewController {
13 | protected Context context;
14 |
15 | public Context getContext(){
16 | return context;
17 | }
18 |
19 | public void viewWillAppear(){
20 |
21 | }
22 |
23 | public void onCreate(){
24 |
25 | }
26 |
27 | public void onResume(){
28 |
29 | }
30 |
31 | public void onPause(){
32 |
33 | }
34 |
35 |
36 | public void viewWillDisappear() {
37 |
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/adapter/SettingsViewAdapter.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.adapter;
2 |
3 | import java.util.List;
4 |
5 | import android.support.v4.view.PagerAdapter;
6 | import android.support.v4.view.ViewPager;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 |
10 | public class SettingsViewAdapter extends PagerAdapter
11 | {
12 |
13 | private List views;
14 |
15 | public SettingsViewAdapter(List views)
16 | {
17 | this.views = views;
18 | }
19 |
20 |
21 | @Override
22 | public Object instantiateItem(ViewGroup container, int position)
23 | {
24 | View view = views.get(position);
25 | ((ViewPager)container).addView(view, 0);
26 |
27 | return view;
28 | }
29 |
30 |
31 | @Override
32 | public void destroyItem(ViewGroup container, int position, Object object)
33 | {
34 | ((ViewPager)container).removeView((View)object);
35 | }
36 |
37 |
38 | @Override
39 | public int getCount()
40 | {
41 | return views.size();
42 | }
43 |
44 |
45 | @Override
46 | public boolean isViewFromObject(View arg0, Object arg1) {
47 | return arg0.equals(arg1);
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ble/BleConnectinManager.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/ble/BleConnectinManager.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ble/BleConnectinManagerDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ble;
2 |
3 | public interface BleConnectinManagerDelegate {
4 | public void didConnect(BleConnectinManager manager);
5 | public void didDisconnect(BleConnectinManager manager);
6 | public void didFailToConnect(BleConnectinManager manager);
7 | public void didReceiveData(BleConnectinManager manager, byte[] data);
8 | }
9 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ble/BluetoothLeService.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/ble/BluetoothLeService.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/activity/IpcAlertDialogHandler.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.activity;
2 |
3 | public interface IpcAlertDialogHandler {
4 | public void positive();
5 |
6 | public void negtive();
7 | }
8 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/activity/ShareMediaActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/ipc/activity/ShareMediaActivity.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/MediaFile.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view;
2 |
3 | public class MediaFile implements Comparable{
4 | public int type = -1;
5 | public String name = null;
6 | public long modifyDate;
7 | public boolean isRemote = false;
8 | public boolean isDownloaded = false;
9 | public long id = -1;
10 | public String localPath;
11 | public String remotePath;
12 | public long size = 0;
13 |
14 | public MediaFile(int type,String name,int size){
15 | this.type = type;
16 | this.name = name;
17 | this.size = size;
18 | // this.modifyDate = modifyDate;
19 | }
20 |
21 | public MediaFile(long id,int type,String name,String path,long size,boolean isRemote) {
22 | this.id = id;
23 | this.type = type;
24 | this.name = name;
25 | // this.modifyDate = modifyDate;
26 | this.localPath = path;
27 | this.size = size;
28 | this.isRemote = isRemote;
29 | }
30 |
31 | public boolean differentTo(MediaFile mediafile) {
32 | if(!name.equals(mediafile.name) ||id != mediafile.id ||
33 | modifyDate != mediafile.modifyDate || size != mediafile.size) {
34 | return true;
35 | }
36 | return false;
37 | }
38 |
39 | @Override
40 | public int compareTo(Object another) {
41 | // TODO Auto-generated method stub
42 |
43 | MediaFile m = (MediaFile) another;
44 | String this_name = this.name.substring(0, this.name.length() - 4);
45 | String another_name = m.name.substring(0, m.name.length() - 4);
46 |
47 | return another_name.compareTo(this_name);
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/OnGalleryItemClick.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view;
2 |
3 | import java.util.ArrayList;
4 |
5 | import android.content.Context;
6 |
7 | public interface OnGalleryItemClick {
8 | public void onClick(int position,Context context);
9 | public void delete(ArrayList selects);
10 | public void destroy();
11 | }
12 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/SettingView.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view;
2 |
3 | import android.view.View;
4 |
5 | public class SettingView {
6 | String title = null;
7 | View content;
8 |
9 | public void setTitle(String title) {
10 | this.title = title;
11 | }
12 | public String getTitle() {
13 | return title;
14 | }
15 |
16 | public View getContent() {
17 | return content;
18 | }
19 |
20 | public void setContent(View content) {
21 | this.content = content;
22 | }
23 |
24 | public void onStart() {
25 |
26 | }
27 |
28 | public void onStop() {
29 |
30 | }
31 |
32 | public void reset() {
33 |
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/SquareRelativeLayout.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.widget.Checkable;
8 | import android.widget.ImageView;
9 | import android.widget.RelativeLayout;
10 |
11 | import com.hexairbot.hexmini.R;
12 |
13 | public class SquareRelativeLayout extends RelativeLayout implements Checkable{
14 |
15 | private boolean checked = false;
16 | ImageView mCheckBox = null;
17 | Context mContext;
18 |
19 | public SquareRelativeLayout(Context context) {
20 | this(context, null,0);
21 | }
22 |
23 | public SquareRelativeLayout(Context context, AttributeSet attrs) {
24 | this(context, attrs,0);
25 | }
26 |
27 | public SquareRelativeLayout(Context context, AttributeSet attrs,
28 | int defStyle) {
29 | super(context, attrs, defStyle);
30 | // TODO Auto-generated constructor stub
31 | mContext = context;
32 | init();
33 | }
34 |
35 | private void init() {
36 | LayoutInflater.from(mContext).inflate(R.layout.media_item_layout, this);
37 | mCheckBox = (ImageView)this.findViewById(R.id.select_check);
38 | }
39 |
40 | @Override
41 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
42 | // TODO Auto-generated method stub
43 | super.onMeasure(widthMeasureSpec, widthMeasureSpec);
44 | }
45 |
46 |
47 | @Override
48 | public boolean isChecked() {
49 | // TODO Auto-generated method stub
50 | return checked;
51 | }
52 |
53 | @Override
54 | public void setChecked(boolean checked) {
55 | // TODO Auto-generated method stub
56 | this.checked = checked;
57 | if(mCheckBox != null ) {
58 | mCheckBox.setVisibility(checked?View.VISIBLE:View.INVISIBLE);
59 | }
60 | }
61 |
62 | @Override
63 | public void toggle() {
64 | // TODO Auto-generated method stub
65 | this.setChecked(!checked);
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/VideoStageSurfaceSoftware.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view;
2 |
3 | import android.content.Context;
4 | import android.opengl.GLSurfaceView;
5 | import android.util.AttributeSet;
6 |
7 | public class VideoStageSurfaceSoftware extends GLSurfaceView {
8 |
9 | public VideoStageSurfaceSoftware(Context context, AttributeSet attrs) {
10 | super(context, attrs);
11 | // TODO Auto-generated constructor stub
12 | init(context);
13 | }
14 |
15 | public VideoStageSurfaceSoftware(Context context) {
16 | super(context);
17 | // TODO Auto-generated constructor stub
18 | init(context);
19 | }
20 |
21 | private void init(Context context) {
22 | this.setEGLContextClientVersion(2);
23 | this.setRenderer(new VideoStageRenderer(context, null));
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ipc/view/adapter/SettingsViewAdapter.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.ipc.view.adapter;
2 |
3 | import java.util.List;
4 |
5 | import com.hexairbot.hexmini.ipc.view.SettingView;
6 |
7 | import android.support.v4.view.PagerAdapter;
8 | import android.support.v4.view.ViewPager;
9 | import android.view.View;
10 | import android.view.ViewGroup;
11 |
12 |
13 | public class SettingsViewAdapter extends PagerAdapter
14 | {
15 |
16 | private List views;
17 |
18 | public SettingsViewAdapter(List views)
19 | {
20 | this.views = views;
21 | }
22 |
23 |
24 | @Override
25 | public Object instantiateItem(ViewGroup container, int position)
26 | {
27 | View view = views.get(position).getContent();
28 | ((ViewPager)container).addView(view, 0);
29 |
30 | return view;
31 | }
32 |
33 |
34 | @Override
35 | public void destroyItem(ViewGroup container, int position, Object object)
36 | {
37 | ((ViewPager)container).removeView((View)object);
38 | }
39 |
40 |
41 | @Override
42 | public int getCount()
43 | {
44 | return views.size();
45 | }
46 |
47 |
48 | @Override
49 | public boolean isViewFromObject(View arg0, Object arg1) {
50 | return arg0.equals(arg1);
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/modal/ApplicationSettings.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/modal/ApplicationSettings.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/modal/OSDCommon.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/modal/OSDCommon.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/modal/OSDData.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/modal/OSDData.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/modal/OSDDataDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.modal;
2 |
3 | public interface OSDDataDelegate {
4 | public void osdDataDidUpdateOneFrame();
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/modal/Transmitter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/modal/Transmitter.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/sensors/DeviceOrientationChangeDelegate.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.sensors;
2 |
3 | public interface DeviceOrientationChangeDelegate
4 | {
5 | public void onDeviceOrientationChanged(float[] orientation, float magneticHeading, int magnetoAccuracy);
6 | }
7 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/sensors/SensorManagerWrapper.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.sensors;
2 |
3 | import android.hardware.SensorEventListener;
4 | import android.os.Handler;
5 |
6 | public abstract class SensorManagerWrapper
7 | {
8 | private boolean isGyroAvailable;
9 | private boolean isMagnetoAvailable;
10 | private boolean isAcceleroAvailable;
11 |
12 | /**
13 | *
14 | * @param theListener
15 | * @param theType
16 | * @return true if sensor was registered
17 | */
18 | public abstract boolean registerListener(final SensorEventListener theListener, int theType, Handler handler);
19 |
20 | public abstract void unregisterListener(final SensorEventListener theListener);
21 |
22 | public abstract void onCreate();
23 |
24 | public abstract void onDestroy();
25 |
26 | public abstract void onPause();
27 |
28 | public abstract void onResume();
29 |
30 |
31 | public boolean isGyroAvailable()
32 | {
33 | return isGyroAvailable;
34 | }
35 |
36 | public void setGyroAvailable(boolean isGyroAvailable)
37 | {
38 | this.isGyroAvailable = isGyroAvailable;
39 | }
40 |
41 | public boolean isMagnetoAvailable()
42 | {
43 | return isMagnetoAvailable;
44 | }
45 |
46 | public void setMagnetoAvailable(boolean isMagnetoAvailable)
47 | {
48 | this.isMagnetoAvailable = isMagnetoAvailable;
49 | }
50 |
51 | public boolean isAcceleroAvailable()
52 | {
53 | return isAcceleroAvailable;
54 | }
55 |
56 | public void setAcceleroAvailable(boolean isAcceleroAvailable)
57 | {
58 | this.isAcceleroAvailable = isAcceleroAvailable;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ui/Text.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/ui/Text.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ui/joystick/AcceleratorJoystick.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AcceleroJoystick
3 | *
4 | * Created on: May 26, 2011
5 | * Author: Dmytro Baryskyy
6 | */
7 |
8 | package com.hexairbot.hexmini.ui.joystick;
9 | import com.hexairbot.hexmini.R;
10 | import android.content.Context;
11 |
12 |
13 | public class AcceleratorJoystick
14 | extends JoystickBase
15 | {
16 | public AcceleratorJoystick(Context context, Align align, boolean isRollPitchJoystick, boolean yStickIsBounced)
17 | {
18 | super(context, align, isRollPitchJoystick, yStickIsBounced);
19 | }
20 |
21 |
22 | @Override
23 | protected int getBackgroundDrawableId()
24 | {
25 | return R.drawable.joystick_bg2;
26 | }
27 |
28 |
29 | @Override
30 | protected int getTumbDrawableId()
31 | {
32 | return R.drawable.joystick_rudder_throttle_new;
33 | }
34 |
35 |
36 | @Override
37 | protected void onActionMove(float x, float y)
38 | {
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ui/joystick/AnalogueJoystick.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AnalogueJoystick
3 | *
4 | * Created on: May 26, 2011
5 | * Author: Dmytro Baryskyy
6 | */
7 |
8 | package com.hexairbot.hexmini.ui.joystick;
9 | import com.hexairbot.hexmini.R;
10 | import android.content.Context;
11 |
12 |
13 | public class AnalogueJoystick
14 | extends JoystickBase
15 | {
16 |
17 | public AnalogueJoystick(Context context, Align align, boolean isRollPitchJoystick, boolean yStickIsBounced)
18 | {
19 | super(context, align, isRollPitchJoystick, yStickIsBounced);
20 | }
21 |
22 | @Override
23 | protected int getBackgroundDrawableId()
24 | {
25 | return R.drawable.joystick_bg_new;
26 | }
27 |
28 |
29 | @Override
30 | protected int getTumbDrawableId()
31 | {
32 | return R.drawable.joystick_rudder_throttle_new;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ui/joystick/JoystickFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * JoystickFactory
3 | *
4 | * Created on: May 26, 2011
5 | * Author: Dmytro Baryskyy
6 | */
7 |
8 | package com.hexairbot.hexmini.ui.joystick;
9 |
10 |
11 | import com.hexairbot.hexmini.ui.Sprite.Align;
12 |
13 | import android.content.Context;
14 |
15 |
16 | public class JoystickFactory
17 | {
18 | public enum JoystickType {
19 | NONE,
20 | ANALOGUE,
21 | ACCELERO,
22 | }
23 |
24 | public static JoystickBase createAnalogueJoystick(Context context, boolean isRollPitchJoystick,
25 | JoystickListener analogueListener,
26 | boolean yStickIsBounced)
27 | {
28 | AnalogueJoystick joy = new AnalogueJoystick(context, Align.NO_ALIGN, isRollPitchJoystick, yStickIsBounced);
29 | joy.setOnAnalogueChangedListener(analogueListener);
30 |
31 | return joy;
32 | }
33 |
34 |
35 | public static JoystickBase createAcceleroJoystick(Context context, boolean isRollPitchJoystick,
36 | JoystickListener acceleroListener,
37 | boolean yStickIsBounced)
38 | {
39 | AcceleratorJoystick joy = new AcceleratorJoystick(context, Align.NO_ALIGN, isRollPitchJoystick, yStickIsBounced);
40 | joy.setOnAnalogueChangedListener(acceleroListener);
41 |
42 | return joy;
43 | }
44 | }
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/ui/joystick/JoystickListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * JoystickListener
3 | *
4 | * Created on: May 26, 2011
5 | * Author: Dmytro Baryskyy
6 | */
7 |
8 | package com.hexairbot.hexmini.ui.joystick;
9 |
10 | public abstract class JoystickListener
11 | {
12 | public abstract void onChanged(JoystickBase joystick, float x, float y);
13 | public abstract void onPressed(JoystickBase joystick);
14 | public abstract void onReleased(JoystickBase joystick);
15 | }
16 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/DebugHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Administrator
6 | *
7 | */
8 | package com.hexairbot.hexmini.util;
9 |
10 | import android.content.Context;
11 | import android.util.Log;
12 | import android.widget.Toast;
13 |
14 | public class DebugHandler {
15 |
16 | public static Boolean debug = true;
17 | public static Boolean showServerSelect = false;
18 |
19 | public static void logd(String tag, String info) {
20 | if (debug)
21 | Log.d(tag, info);
22 | }
23 |
24 | public static void logInsist(String tag, String info) {
25 | Log.d(tag, info);
26 | }
27 |
28 | public static void logWithToast(Context context, String info, int duration) {
29 | logd(context.getPackageName(), info);
30 | Toast.makeText(context, info, duration).show();
31 | }
32 | }
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/FileHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/util/FileHelper.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/FontUtils.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.util;
2 |
3 | import android.content.Context;
4 | import android.graphics.Typeface;
5 |
6 |
7 | public class FontUtils
8 | {
9 | public static final class TYPEFACE
10 | {
11 | private static Typeface helvetica;
12 | public static final Typeface Helvetica(Context ctx) {
13 |
14 | if (helvetica == null) {
15 | helvetica = Typeface.createFromAsset(ctx.getAssets(), "fonts/helveticaneue-condensedbold.otf");
16 | }
17 |
18 | return helvetica;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/Input.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/util/Input.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/Output.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/util/Output.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/Serializable.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/hexairbot/hexmini/util/Serializable.java
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/SystemUiHiderBase.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.util;
2 |
3 | import android.app.Activity;
4 | import android.view.View;
5 | import android.view.WindowManager;
6 |
7 | /**
8 | * A base implementation of {@link SystemUiHider}. Uses APIs available in all
9 | * API levels to show and hide the status bar.
10 | */
11 | public class SystemUiHiderBase extends SystemUiHider {
12 | /**
13 | * Whether or not the system UI is currently visible. This is a cached value
14 | * from calls to {@link #hide()} and {@link #show()}.
15 | */
16 | private boolean mVisible = true;
17 |
18 | /**
19 | * Constructor not intended to be called by clients. Use
20 | * {@link SystemUiHider#getInstance} to obtain an instance.
21 | */
22 | protected SystemUiHiderBase(Activity activity, View anchorView, int flags) {
23 | super(activity, anchorView, flags);
24 | }
25 |
26 | @Override
27 | public void setup() {
28 | if ((mFlags & FLAG_LAYOUT_IN_SCREEN_OLDER_DEVICES) == 0) {
29 | mActivity.getWindow().setFlags(
30 | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
31 | | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
32 | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
33 | | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
34 | }
35 | }
36 |
37 | @Override
38 | public boolean isVisible() {
39 | return mVisible;
40 | }
41 |
42 | @Override
43 | public void hide() {
44 | if ((mFlags & FLAG_FULLSCREEN) != 0) {
45 | mActivity.getWindow().setFlags(
46 | WindowManager.LayoutParams.FLAG_FULLSCREEN,
47 | WindowManager.LayoutParams.FLAG_FULLSCREEN);
48 | }
49 | mOnVisibilityChangeListener.onVisibilityChange(false);
50 | mVisible = false;
51 | }
52 |
53 | @Override
54 | public void show() {
55 | if ((mFlags & FLAG_FULLSCREEN) != 0) {
56 | mActivity.getWindow().setFlags(0,
57 | WindowManager.LayoutParams.FLAG_FULLSCREEN);
58 | }
59 | mOnVisibilityChangeListener.onVisibilityChange(true);
60 | mVisible = true;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/com/hexairbot/hexmini/util/SystemUtil.java:
--------------------------------------------------------------------------------
1 | package com.hexairbot.hexmini.util;
2 |
3 | import java.text.SimpleDateFormat;
4 | import java.util.Date;
5 |
6 | import android.content.Context;
7 | import android.content.pm.ApplicationInfo;
8 | import android.content.pm.PackageManager;
9 | import android.content.pm.PackageManager.NameNotFoundException;
10 | import android.util.Log;
11 |
12 | public class SystemUtil {
13 |
14 | private final static String TAG = "SystemUtil";
15 |
16 | public static String getCurrentFormatTime() {
17 | SimpleDateFormat format = new SimpleDateFormat("HH:mm");
18 | String nowTime = format.format(new Date());
19 | return nowTime;
20 | }
21 |
22 | public static boolean isDebugModel(Context context) {
23 | PackageManager mgr = context.getPackageManager();
24 | try {
25 | ApplicationInfo info = mgr.getApplicationInfo(
26 | context.getPackageName(), 0);
27 | return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE;
28 | } catch (NameNotFoundException e) {
29 | Log.e(TAG, e.getMessage(), e);
30 | }
31 | return false;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/config/ConfigStoreHandler.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.config;
2 |
3 | import android.content.Context;
4 | import android.content.SharedPreferences;
5 | import android.content.SharedPreferences.Editor;
6 |
7 | public class ConfigStoreHandler {
8 |
9 | public static final String PREFS_NAME = "client_config";
10 |
11 | SharedPreferences settings;
12 |
13 | public ConfigStoreHandler(Context context) {
14 | settings = context.getSharedPreferences(PREFS_NAME, 0);
15 | }
16 |
17 | public void putConfigString(String key,String value) {
18 | Editor editor = settings.edit();
19 | editor.putString(key, value);
20 | editor.commit();
21 | }
22 |
23 | public void putConfigInt(String key,int value) {
24 | Editor editor = settings.edit();
25 | editor.putInt(key, value);
26 | editor.commit();
27 | }
28 |
29 | public void putConfigBoolean(String key,boolean value) {
30 | Editor editor = settings.edit();
31 | editor.putBoolean(key, value);
32 | editor.commit();
33 | }
34 |
35 | public String getConfig(String key,String defaultvalue) {
36 | String value = settings.getString(key, defaultvalue);
37 | return value;
38 | }
39 |
40 | public int getConfig(String key,int defaultValue) {
41 | int value = settings.getInt(key, defaultValue);
42 | return value;
43 | }
44 |
45 | public boolean getConfig(String key,boolean defaultValue) {
46 | boolean value = settings.getBoolean(key, defaultValue);
47 | return value;
48 | }
49 |
50 | public void resetConfig() {
51 | settings.edit().clear();
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/ftp/FTPClient.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.ftp;
2 |
3 | public class FTPClient {
4 | public final static int FTP_CONNECT_MODE_PASV = 1;
5 | public final static int FTP_CONNECT_MODE_PORT = 2;
6 | public final static int FTP_TRANSFER_MODE_ASCII = 'A';
7 | public final static int FTP_TRANSFER_MODE_IMAGE = 'I';
8 |
9 | FtpCallbackListener listener = null;
10 |
11 | public FTPClient() {
12 | FtpInit();
13 | }
14 |
15 | public native int FtpInit();
16 | public native String FtpLastResponse() throws FtpException;
17 | public native String FtpSysType() throws FtpException;
18 | public native int FtpSize(String remoteFile,int transferMode) throws FtpException;
19 | public native String FtpModDate(String remoteFile) throws FtpException;
20 | public native void FtpSetCallback(FtpCallbackListener listener) throws FtpException;
21 | public native void FtpClearCallback() throws FtpException;
22 |
23 | public native int FtpConnect(String host) throws FtpException;
24 | public native int FtpLogin(String user,String pass) throws FtpException;
25 | public native int FtpQuit() throws FtpException;
26 | public native int FtpSetConnectionMode(int connectMode) throws FtpException;
27 |
28 | public native int FtpChdir(String path) throws FtpException;
29 | public native int FtpMkDir(String path) throws FtpException;
30 | public native int FtpRmdir(String path) throws FtpException;
31 | public native int FtpDir(String outFile,String path) throws FtpException;
32 | public native int FtpNlst(String outFile,String path) throws FtpException;
33 | public native int FtpCDUp() throws FtpException;
34 | public native String FtpPwd() throws FtpException;
35 |
36 | public native int FtpGet(String dstFile,String resFile,int transferMode);
37 | public native int FtpPut(String localFile,String remoteFile,int transferMode);
38 | public native int FtpDelete(String remoteFile);
39 | public native int FtpRename(String src,String dst);
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/ftp/FtpCallbackListener.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.ftp;
2 |
3 | public interface FtpCallbackListener {
4 | public void onProgress(int progress,int totle);
5 | public void onError(String err);
6 | }
7 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/ftp/FtpConnectedListener.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.ftp;
2 |
3 | public interface FtpConnectedListener {
4 | public void onFtpConnect();
5 | public void onFtpDisconnect();
6 | }
7 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/ftp/FtpException.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.ftp;
2 |
3 | public class FtpException extends Exception {
4 | public FtpException() {
5 | super();
6 | }
7 |
8 | public FtpException(String reason) {
9 | super(reason);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/proxy/NavData.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.proxy;
2 |
3 | public class NavData {
4 |
5 | public int batteryStatus;
6 | public boolean recording;
7 | public boolean cameraReady;
8 | public boolean recordReady;
9 | public boolean usbActive;
10 | public int usbRemainingTime;
11 | public int emergencyState;
12 | // public boolean flying;
13 | public int numFrames;
14 | public boolean initialized;
15 |
16 | public NavData() {
17 | batteryStatus = 0;
18 | // emergencyState = ERROR_STATE_NONE;
19 | // flying = false;
20 | initialized = false;
21 | usbActive = false;
22 | usbRemainingTime = -1;
23 | cameraReady = false;
24 | recordReady = false;
25 | }
26 |
27 | public void copyFrom(NavData navData) {
28 | this.batteryStatus = navData.batteryStatus;
29 | this.emergencyState = navData.emergencyState;
30 | // this.flying = navData.flying;
31 | this.initialized = navData.initialized;
32 | this.recording = navData.recording;
33 | this.numFrames = navData.numFrames;
34 | this.usbActive = navData.usbActive;
35 | this.usbRemainingTime = navData.usbRemainingTime;
36 | this.cameraReady = navData.cameraReady;
37 | this.recordReady = navData.recordReady;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/proxy/VIConfig.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.proxy;
2 |
3 | public class VIConfig {
4 | public String softwareVersion;
5 | public String hardwareVersion;
6 | public String vender;
7 | public String model;
8 | public String productName;
9 | public String networkName;
10 | public String ownerMac;
11 | public boolean adaptiveVideo;
12 | public int videoCodec;
13 | }
14 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/service/ApConnectService.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HexAirbot/HexNanoController_Android/ac8ad2d726ffd6f4368061f9edc74693ce5d31fc/src/com/vmc/ipc/service/ApConnectService.java
--------------------------------------------------------------------------------
/src/com/vmc/ipc/service/OnIpcConnectChangedListener.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.service;
2 |
3 | public interface OnIpcConnectChangedListener {
4 | public void OnIpcConnected();
5 |
6 | public void OnIpcDisConnected();
7 |
8 | public void onIpcPaused();
9 |
10 | public void onIpcResumed();
11 | }
12 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/util/DebugHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @author Administrator
6 | *
7 | */
8 | package com.vmc.ipc.util;
9 |
10 | import android.content.Context;
11 | import android.util.Log;
12 | import android.widget.Toast;
13 |
14 | public class DebugHandler {
15 |
16 | public static Boolean debug = true;
17 | public static Boolean showServerSelect = false;
18 |
19 | public static void logd(String tag, String info) {
20 | if (debug)
21 | Log.d(tag, info);
22 | }
23 |
24 | public static void logdWithToast(Context context, String info, int duration) {
25 | if (debug) {
26 | logd(context.getPackageName(), info);
27 | Toast.makeText(context, info, duration).show();
28 | }
29 | }
30 |
31 | public static void logInsist(String tag, String info) {
32 | Log.d(tag, info);
33 | }
34 |
35 | public static void logWithToast(Context context, String info, int duration) {
36 | logd(context.getPackageName(), info);
37 | Toast.makeText(context, info, duration).show();
38 | }
39 | }
--------------------------------------------------------------------------------
/src/com/vmc/ipc/util/SystemUtil.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.util;
2 |
3 | import java.text.SimpleDateFormat;
4 | import java.util.Date;
5 |
6 | import com.vmc.ipc.config.VmcConfig;
7 | import com.vmc.ipc.util.FontUtils.TYPEFACE;
8 |
9 | import android.content.Context;
10 | import android.content.pm.ApplicationInfo;
11 | import android.content.pm.PackageManager;
12 | import android.content.pm.PackageManager.NameNotFoundException;
13 | import android.net.wifi.WifiInfo;
14 | import android.net.wifi.WifiManager;
15 | import android.util.Log;
16 |
17 | public class SystemUtil {
18 |
19 | private final static String TAG = "SystemUtil";
20 |
21 | public static String getCurrentFormatTime() {
22 | SimpleDateFormat format = new SimpleDateFormat("HH:mm");
23 | String nowTime = format.format(new Date());
24 | return nowTime;
25 | }
26 |
27 | public static boolean isDebugModel(Context context) {
28 | PackageManager mgr = context.getPackageManager();
29 | try {
30 | ApplicationInfo info = mgr.getApplicationInfo(
31 | context.getPackageName(), 0);
32 | return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE;
33 | } catch (NameNotFoundException e) {
34 | Log.e(TAG, e.getMessage(), e);
35 | }
36 | return false;
37 | }
38 |
39 | public static void saveAvialableAp(Context context) {
40 | WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
41 | WifiInfo info = wifiManager.getConnectionInfo();
42 | if(info == null) {
43 | return;
44 | }
45 | String currentAp = info.getSSID();
46 | VmcConfig.getInstance().setLastAvailableIpcAp(currentAp);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/util/TextureUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * TextureUtils
3 | *
4 | * Created on: May 24, 2011
5 | * Author: Dmytro Baryskyy
6 | */
7 |
8 | package com.vmc.ipc.util;
9 |
10 | import android.content.res.Resources;
11 | import android.graphics.Bitmap;
12 | import android.graphics.Canvas;
13 |
14 | public class TextureUtils {
15 | /**
16 | * Finds greater nearest number that is power of 2
17 | *
18 | * @return long
19 | */
20 | public static long roundPower2(final long x) {
21 | int rval = 256;
22 |
23 | while (rval < x)
24 | rval <<= 1;
25 |
26 | return rval;
27 | }
28 |
29 | /**
30 | * Makes a texture from any bitmap. (Texture should have size that is power
31 | * of 2)
32 | *
33 | * @param bmp
34 | * bitmap
35 | * @return BitmapDrawable that has size that is power of 2. Bitmap is not
36 | * stretched, free space is filled with default color.
37 | */
38 | public static Bitmap makeTexture(Resources res, Bitmap bmp) {
39 | if (bmp == null) {
40 | throw new IllegalArgumentException("Bitmap can't be null");
41 | }
42 |
43 | int height = (int) roundPower2(bmp.getHeight());
44 | int width = (int) roundPower2(bmp.getWidth());
45 |
46 | Bitmap result = Bitmap.createBitmap(width, height,
47 | Bitmap.Config.ARGB_8888);
48 |
49 | Canvas canvas = new Canvas(result);
50 | canvas.drawBitmap(bmp, 0, 0, null);
51 |
52 | return result;
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/src/com/vmc/ipc/view/VideoStageSurfaceHardware.java:
--------------------------------------------------------------------------------
1 | package com.vmc.ipc.view;
2 |
3 |
4 | import com.hexairbot.hexmini.util.DebugHandler;
5 |
6 | import android.content.Context;
7 | import android.util.AttributeSet;
8 | import android.view.Surface;
9 | import android.view.SurfaceHolder;
10 | import android.view.SurfaceView;
11 |
12 | public class VideoStageSurfaceHardware extends SurfaceView implements
13 | SurfaceHolder.Callback {
14 |
15 | private final static String TAG = "VideoStageSurfaceHardware";
16 |
17 | public VideoStageSurfaceHardware(Context context, AttributeSet attrs) {
18 | super(context, attrs);
19 | // TODO Auto-generated constructor stub
20 | init();
21 | }
22 |
23 | public VideoStageSurfaceHardware(Context context) {
24 | super(context);
25 | // TODO Auto-generated constructor stub
26 | init();
27 | }
28 |
29 | private void init() {
30 | this.getHolder().addCallback(this);
31 | }
32 |
33 | public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
34 | // getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
35 | DebugHandler.logd(TAG,"surfaceChanged------1");
36 | if (holder.getSurface() != null) {
37 | DebugHandler.logd(TAG,"surfaceChanged------"+holder.getSurface());
38 | nativeSetSurfaceView(holder.getSurface());
39 | }
40 | }
41 |
42 | public void surfaceCreated(SurfaceHolder holder) {
43 | }
44 |
45 | public void surfaceDestroyed(SurfaceHolder holder) {
46 | DebugHandler.logd(TAG,"surfaceDestroyed------1");
47 | nativeSetSurfaceView(null);
48 | }
49 |
50 | public native void nativeSetSurfaceView(Surface surface);
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/fix/android/opengl/GLES20.java:
--------------------------------------------------------------------------------
1 | package fix.android.opengl;
2 |
3 | public class GLES20
4 | {
5 | static {
6 | System.loadLibrary("glfix");
7 | }
8 |
9 | native public static void glVertexAttribPointer(int index, int size, int type, boolean normalized, int stride, int offset);
10 | native public static void glDrawElements(int mode, int count, int type, int offset);
11 |
12 | private GLES20()
13 | {}
14 | }
15 |
--------------------------------------------------------------------------------