summaryrefslogtreecommitdiffstats
path: root/default-floating.xml
blob: 972bcba54c5a3f1afdd800e10d1210a5f2cbe9c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?xml version="1.0" encoding="UTF-8"?>
<manifest>

  <!-- remote servers to query -->
  <remote name="agl"
         fetch="https://gerrit.automotivelinux.org/gerrit/"
         review="https://gerrit.automotivelinux.org/gerrit/"
         pushurl="ssh://gerrit.automotivelinux.org:29418"
  />
  <remote name="yocto" fetch="https://git.yoctoproject.org/git/" />
  <remote name="github" fetch="https://github.com/" />
  <remote name="openembedded" fetch="https://git.openembedded.org/" />

  <!-- defaults -->
  <default remote="agl" sync-j="4" revision="master"/>


  <!-- CORE -->

  <!-- use agl revisions/branches here -->

  <!-- AGL things. -->
  <project name="AGL/meta-agl" path="meta-agl" />
  <project name="AGL/meta-agl-demo" path="meta-agl-demo" />
  <project name="AGL/meta-agl-devel" path="meta-agl-devel" />


  <!-- FLOATING has no fixed revision for external repos ! -->

  <!-- YOCTO & OE -->

  <!-- Yocto/OpenEmbedded things. -->
  <project name="poky" path="external/poky" remote="yocto" revision="dunfell" />
  <project name="meta-gplv2" path="external/meta-gplv2" remote="yocto" revision="dunfell" />
  <project name="openembedded/meta-openembedded" path="external/meta-openembedded" remote="github" revision="dunfell" />


  <!-- UPSTREAM COMPONENTS -->

  <!-- meta-virtualization -->
  <project name="meta-virtualization" path="external/meta-virtualization" remote="yocto" revision="dunfell"/>

  <!-- Qt things -->
  <project name="meta-qt5/meta-qt5" path="external/meta-qt5" remote="github" revision="dunfell"/>

  <!-- Updater layers. -->
  <project name="advancedtelematic/meta-updater" path="external/meta-updater" remote="github" revision="dunfell"/>
  <project name="advancedtelematic/meta-updater-qemux86-64" path="external/meta-updater-qemux86-64" remote="github" revision="dunfell"/>
  <project name="advancedtelematic/meta-updater-raspberrypi" path="external/meta-updater-raspberrypi" remote="github" revision="dunfell"/>

  <!-- Security layer -->
  <project name="meta-security" path="external/meta-security" remote="yocto" revision="dunfell"/>

  <!-- meta-codescanner - support for using CodeScanner during the build -->
  <project name="dl9pf/meta-codechecker" path="external/meta-codechecker" remote="github" revision="master"/>

  <!-- meta-spdxscanner - support for fossology -->
  <project name="meta-spdxscanner" path="external/meta-spdxscanner" remote="yocto" revision="master"/>

  <!-- Alexa Auto SDK layer -->
  <project name="alexa/alexa-auto-sdk" path="external/alexa-auto-sdk" remote="github" revision="2.0"/>

  <!-- IoT SDK layer -->
  <project name="intel-iot-devkit/meta-iot-cloud" path="external/meta-iot-cloud" remote="github" revision="dunfell"/>

  <!-- clang support -->
  <project name="kraj/meta-clang" path="external/meta-clang" remote="github" revision="dunfell"/>

  <!-- meta-python2 as stop-gap to allow chromium to build until upstream fixes the dependencies -->
  <project name="meta-python2" path="external/meta-python2" remote="openembedded" revision="dunfell" />

  <!-- BSPs -->

  <!-- Renesas Gen3 specific things -->
  <project name="renesas-rcar/meta-renesas" path="bsp/meta-renesas" remote="github" revision="dunfell-dev"/>
  <project name="CogentEmbedded/meta-rcar" path="bsp/meta-rcar" remote="github" revision="dunfell-Yocto-v4.1.0"/>
  <project name="AGL/meta-agl-refhw" path="bsp/meta-agl-refhw" />

  <!-- consolidate on meta-freescale from git.yoctoproject.org -->
  <project name="meta-freescale" path="bsp/meta-freescale" remote="yocto" revision="dunfell"/>
  <project name="Freescale/meta-freescale-3rdparty" path="bsp/meta-freescale-3rdparty" remote="github" revision="dunfell"/>

  <!-- TI Vayu / Jacinto 6 / DRA7 -->
  <project name="meta-arm" path="bsp/meta-arm" remote="yocto" revision="dunfell"/>
  <project name="meta-ti" path="bsp/meta-ti" remote="yocto" revision="dunfell"/>

  <!-- Raspberry Pi 3, 3B+, and 4 -->
  <project name="meta-raspberrypi" path="bsp/meta-raspberrypi" remote="yocto" revision="dunfell"/>

  <!-- DragonBoard 410c specific things -->
  <project name="meta-qcom" path="bsp/meta-qcom" remote="yocto" revision="dunfell"/>

  <!-- Altera SOCFPGA platform -->
  <!-- https://github.com/kraj/meta-altera -->
  <project name="kraj/meta-altera" path="bsp/meta-altera" remote="github" revision="master"/>

  <!-- Sancloud BSP layers -->
  <project name="SanCloudLtd/meta-sancloud" path="bsp/meta-sancloud" remote="github" revision="dunfell"/>
  <project name="EmbeddedAndroid/meta-rtlwifi" path="bsp/meta-rtlwifi" remote="github" revision="dunfell"/>

</manifest>
n class="p">); m_handlerThread.start(); // Start event handler worker loop emit start(); } MediaplayerMpdBackend::~MediaplayerMpdBackend() { m_handlerThread.quit(); m_handlerThread.wait(); m_mpd_conn_timer->stop(); delete m_mpd_conn_timer; mpd_connection_free(m_mpd_conn); } void MediaplayerMpdBackend::connectionKeepaliveTimeout(void) { m_mpd_conn_mutex.lock(); // Clear any lingering non-fatal errors if (!mpd_connection_clear_error(m_mpd_conn)) { // NOTE: There should likely be an attempt to reconnect here, // but it definitely would complicate things for all the // other users. qWarning() << "MPD connection in error state!"; m_mpd_conn_mutex.unlock(); return; } struct mpd_status *status = mpd_run_status(m_mpd_conn); if (!status) { qWarning() << "MPD connection status check failed"; } else { mpd_status_free(status); } m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::songPositionTimeout(void) { m_state_mutex.lock(); if (m_playing) { // Instead of the expense of repeatedly calling mpd_run_status, // provide our own elapsed time. In practice this seems // sufficient for reasonable behavior in the application UI, and // it is what seems recommended for MPD client implementations. m_song_pos_ms += 250; QVariantMap metadata; metadata["position"] = m_song_pos_ms; m_player->updateMetadata(metadata); } m_state_mutex.unlock(); } void MediaplayerMpdBackend::updatePlaybackState(int queue_pos, int song_pos_ms, bool state) { m_state_mutex.lock(); m_queue_pos = queue_pos; m_song_pos_ms = song_pos_ms; if (m_playing != state) { if (state) { // Start position timer m_song_pos_timer->start(250); } else { // Stop position timer m_song_pos_timer->stop(); //m_song_pos_ms = 0; } } m_playing = state; m_state_mutex.unlock(); } // Control methods void MediaplayerMpdBackend::play() { m_mpd_conn_mutex.lock(); m_state_mutex.lock(); if (!m_playing) { mpd_run_play(m_mpd_conn); } m_state_mutex.unlock(); m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::pause() { m_mpd_conn_mutex.lock(); m_state_mutex.lock(); if (m_playing) { mpd_run_pause(m_mpd_conn, true); } m_state_mutex.unlock(); m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::previous() { m_mpd_conn_mutex.lock(); // MPD only allows next/previous if playing m_state_mutex.lock(); if (m_playing) { mpd_run_previous(m_mpd_conn); } m_state_mutex.unlock(); m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::next() { m_mpd_conn_mutex.lock(); // MPD only allows next/previous if playing m_state_mutex.lock(); if (m_playing) { mpd_run_next(m_mpd_conn); } m_state_mutex.unlock(); m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::seek(int milliseconds) { m_mpd_conn_mutex.lock(); float t = milliseconds; t /= 1000.0; mpd_run_seek_current(m_mpd_conn, t, false); m_mpd_conn_mutex.unlock(); } // Relative to current position void MediaplayerMpdBackend::fastforward(int milliseconds) { m_mpd_conn_mutex.lock(); float t = milliseconds; t /= 1000.0; mpd_run_seek_current(m_mpd_conn, t, true); m_mpd_conn_mutex.unlock(); } // Relative to current position void MediaplayerMpdBackend::rewind(int milliseconds) { m_mpd_conn_mutex.lock(); float t = -milliseconds; t /= 1000.0; mpd_run_seek_current(m_mpd_conn, t, true); m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::picktrack(int track) { m_mpd_conn_mutex.lock(); if (track >= 0) { mpd_run_play_pos(m_mpd_conn, track); } m_mpd_conn_mutex.unlock(); } void MediaplayerMpdBackend::volume(int volume) { // Not implemented } void MediaplayerMpdBackend::loop(QString state) { m_mpd_conn_mutex.lock(); // Song: // mpd_run_single_state(m_mpd_conn, MPD_SINGLE_ON) // mpd_run_repeat(m_mpd_conn, true) to loop // // Playlist: // mpd_run_single_state(m_mpd_conn, MPD_SINGLE_OFF) (default) // mpd_run_repeat(m_mpd_conn, true) to loop if (state == "playlist") { mpd_run_repeat(m_mpd_conn, true); } else { mpd_run_repeat(m_mpd_conn, false); } m_mpd_conn_mutex.unlock(); }