- Item {
- id: bluetooth
-
- property string deviceAddress: ""
- property bool connected: false
- property bool av_connected: false
-
- property int position: 0
- property int duration: 0
-
- property string artist: ""
- property string title: ""
- property string state: "stopped"
-
- // AVRCP Target UUID
- property string avrcp_uuid: "0000110e-0000-1000-8000-00805f9b34fb"
-
- function connect_profiles() {
- var address = bluetooth.deviceAddress;
- bluetooth_connection.connect(address, "a2dp")
- bluetooth_connection.connect(address, "avrcp")
- }
-
- function disconnect_profiles() {
- var address = bluetooth.deviceAddress;
- bluetooth_connection.disconnect(address, "a2dp")
- bluetooth_connection.disconnect(address, "avrcp")
- }
-
- function set_avrcp_controls(cmd) {
- bluetooth_connection.set_avrcp_controls(bluetooth.deviceAddress, cmd)
- }
- }
-
- Connections {
- target: bluetooth_connection
-
- onDeviceListEvent: {
- var address = ""
- for (var i = 0; i < data.list.length; i++) {
- var item = data.list[i]
- if (item.Connected == "True" && item.UUIDs.indexOf(bluetooth.avrcp_uuid) >= 0) {
- address = item.Address
-
- bluetooth.connected = true
- mediaplayer.pause()
-
- //NOTE: This hack is here for when MediaPlayer is started
- // with an existing connection.
- bluetooth.av_connected = item.AVPConnected == "True"
- }
- }
- if (!address)
- bluetooth.connected = false
- else
- bluetooth.deviceAddress = address
- }
-
- onDeviceUpdatedEvent: {
- var metadata = data.Metadata
-
- if (data.Connected == "False")
- return
-
- if (!bluetooth.av_connected && data.AVPConnected == "True") {
- mediaplayer.pause()
- player.status = "stopped"
- }
-
- bluetooth.connected = data.Connected == "True"
- bluetooth.av_connected = data.AVPConnected == "True"
- bluetooth.deviceAddress = data.Address
-
- if ('Position' in metadata)
- bluetooth.position = metadata.Position
-
- if ('Duration' in metadata)
- bluetooth.duration = metadata.Duration
-
- if ('Status' in metadata)
- bluetooth.state = metadata.Status
-
- if ('Artist' in metadata)
- bluetooth.artist = metadata.Artist
-
- if ('Title' in metadata)
- bluetooth.title = metadata.Title
- }
- }
-