summaryrefslogtreecommitdiffstats
path: root/recipes-devtools
AgeCommit message (Collapse)AuthorFilesLines
2018-03-06Fix nativesdk-gn buildRonan Le Martret3-49/+8
- Update package version, older is not avalable anymore. - remove patch "missing deps" already include upstream. Note: gn is a set of tools require for chromium build. nativesdk-gn is mandatory to build chromium with AGL SDK. Bug-AGL: SPEC-1317 (Duplicate SPEC-1319) Change-Id: I92818ecad74ff65d81826bab5f9b8485a52d14fc Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
2018-01-23ninja,harfbuzz: Remove .bbappendChanghyeok Bae1-2/+0
This is already applied in upstream. Bug-AGL: SPEC-1181 Change-Id: I9d378f7da1874b7f679cad0a1948f381899a85e3 Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
2017-10-12SDK: add native+target packages to build chromiumStephane Desneux4-0/+72
This adds the following recipes/adjustements: * recipes-devtools/gn (copied from https://github.com/Igalia/meta-browser, branch ozone/wayland/20170928, rev a01cf92) * recipes-devtools/ninja * recipes-extended/gperf Bug-AGL: SPEC-942 Change-Id: Ibc34a055ead85aeea24c66665655c9070b47d032 Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
2016-12-28Remove empty foldersJan-Simon Möller1-0/+0
This changeset removes empty folders that we kept until now as placeholders for recipes or append files. We do not need them currently and they're likely to stay unused. Change-Id: Iaaf1c1c36506bcb76b668a73037b3378015854ef Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2015-08-22The starting point of layers for AGL Demo PlatformTadao Tanikawa1-0/+0
The `meta-agl-demo` is the Yocto layer for AGL Demo Platform of Automotive Grade Linux. This is starting point. Almost all packagegroups which should be defined in this layer are still empty (placeholder), so that curretly bitbake target `agl-demo-platform` is completely equal to `agl-image-ivi` in `meta-agl`. Change-Id: I6ce2c046cc8ce2dc5af2a8afe66e1f577dd884eb Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
> 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
/*
 * Copyright (C) 2016 The Qt Company Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import QtQuick 2.6
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import QtMultimedia 5.6
import AGL.Demo.Controls 1.0
import MediaPlayer 1.0

ApplicationWindow {
    id: root

    MediaPlayer {
        id: player
        audioRole: MediaPlayer.MusicRole
        autoLoad: true
        playlist: playlist
        function time2str(value) {
            return Qt.formatTime(new Date(value), 'mm:ss')
        }
        onPositionChanged: slider.value = player.position
    }

    Playlist {
        id: playlist
        playbackMode: random.checked ? Playlist.Random : loop.checked ? Playlist.Loop : Playlist.Sequential

        Component.onCompleted: {
            playlist.addItems(mediaFiles)
        }
    }


    ColumnLayout {
        anchors.fill: parent
        Item {
            Layout.fillWidth: true
            Layout.fillHeight: true
            Layout.preferredHeight: 1080
            clip: true
            Image {
                anchors.left: parent.left
                anchors.right: parent.right
                anchors.bottom: parent.bottom
                height: sourceSize.height * width / sourceSize.width
                fillMode: Image.PreserveAspectCrop
                source: player.metaData.coverArtImage ? player.metaData.coverArtImage : ''
            }

            Item {
                anchors.left: parent.left
                anchors.right: parent.right
                anchors.bottom: parent.bottom
                height :307
                Rectangle {
                    anchors.fill: parent
                    color: 'black'
                    opacity: 0.75
                }

                ColumnLayout {
                    anchors.fill: parent
                    anchors.margins: root.width * 0.02
                    Item {
                        Layout.fillWidth: true
                        Layout.fillHeight: true
                        Row {
                            spacing: 20
                            ToggleButton {
                                id: random
                                offImage: './images/AGL_MediaPlayer_Shuffle_Inactive.svg'
                                onImage: './images/AGL_MediaPlayer_Shuffle_Active.svg'
                            }
                            ToggleButton {
                                id: loop
                                offImage: './images/AGL_MediaPlayer_Loop_Inactive.svg'
                                onImage: './images/AGL_MediaPlayer_Loop_Active.svg'
                            }
                        }
                        ColumnLayout {
                            anchors.fill: parent
                            Label {
                                id: title
                                Layout.alignment: Layout.Center
                                text: player.metaData.title ? player.metaData.title : ''
                                horizontalAlignment: Label.AlignHCenter
                                verticalAlignment: Label.AlignVCenter
                            }
                            Label {
                                id: artist
                                Layout.alignment: Layout.Center
                                text: player.metaData.author ? player.metaData.author : ''
                                horizontalAlignment: Label.AlignHCenter
                                verticalAlignment: Label.AlignVCenter
                                font.pixelSize: title.font.pixelSize * 0.6
                            }
                        }
                    }
                    Slider {
                        id: slider
                        Layout.fillWidth: true
                        to: player.duration
                        Label {
                            id: position
                            anchors.left: parent.left
                            anchors.bottom: parent.top
                            font.pixelSize: 32
                            text: player.time2str(player.position)
                        }
                        Label {
                            id: duration
                            anchors.right: parent.right
                            anchors.bottom: parent.top
                            font.pixelSize: 32
                            text: player.time2str(player.duration)
                        }
                        onPressedChanged: player.seek(value)
                    }
                    RowLayout {
                        Layout.fillHeight: true
//                        Image {
//                            source: './images/AGL_MediaPlayer_Playlist_Inactive.svg'
//                        }
//                        Image {
//                            source: './images/AGL_MediaPlayer_CD_Inactive.svg'
//                        }
                        Item { Layout.fillWidth: true }
                        ImageButton {
                            offImage: './images/AGL_MediaPlayer_BackArrow.svg'
                            onClicked: playlist.previous()
                        }
                        ImageButton {
                            id: play
                            offImage: './images/AGL_MediaPlayer_Player_Play.svg'
                            onClicked: player.play()
                            states: [
                                State {
                                    when: player.playbackState === MediaPlayer.PlayingState
                                    PropertyChanges {
                                        target: play
                                        offImage: './images/AGL_MediaPlayer_Player_Pause.svg'
                                        onClicked: player.pause()
                                    }
                                }
                            ]
                        }
                        ImageButton {
                            offImage: './images/AGL_MediaPlayer_ForwardArrow.svg'
                            onClicked: playlist.next()
                        }

                        Item { Layout.fillWidth: true }
//                        Image {
//                            source: './images/AGL_MediaPlayer_Bluetooth_Inactive.svg'
//                        }
//                        Image {
//                            source: './images/AGL_MediaPlayer_Radio_Inactive.svg'
//                        }
                    }
                }
            }
        }
        Item {
            Layout.fillWidth: true
            Layout.fillHeight: true
            Layout.preferredHeight: 407
            ListView {
                anchors.fill: parent
                clip: true
                header: Label {
                    x: 50
                    text: 'PLAYLIST'
                    opacity: 0.5
                }
                model: PlaylistWithMetadata {
                    source: playlist
                }
                currentIndex: playlist.currentIndex

                delegate: MouseArea {
                    id: delegate
                    width: ListView.view.width
                    height: ListView.view.height / 4
                    RowLayout {
                        anchors.fill: parent
                        anchors.leftMargin: 50
                        anchors.rightMargin: 50
                        Image {
                            source: model.coverArt
                            fillMode: Image.PreserveAspectFit
                            Layout.preferredWidth: delegate.height
                            Layout.preferredHeight: delegate.height
                        }
                        ColumnLayout {
                            Layout.fillWidth: true
                            Label {
                                Layout.fillWidth: true
                                text: model.title
                            }
                            Label {
                                Layout.fillWidth: true
                                text: model.artist
                                color: '#66FF99'
                                font.pixelSize: 32
                            }
                        }
                        Label {
                            text: player.time2str(model.duration)
                            color: '#66FF99'
                            font.pixelSize: 32
                        }
                    }
                    onClicked: {
                        playlist.currentIndex = model.index
                        player.play()
                    }
                }

                highlight: Rectangle {
                    color: 'white'
                    opacity: 0.25
                }
            }
        }
    }
}