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
|
/*
* Copyright (C) 2022 Team Kodi
* This file is part of Kodi - https://kodi.tv
*
* SPDX-License-Identifier: GPL-2.0-or-later
* See LICENSES/README.md for more information.
*/
#include "PlayerUtils.h"
#include "FileItem.h"
#include "application/ApplicationPlayer.h"
#include "music/MusicUtils.h"
#include "utils/Variant.h"
#include "video/VideoUtils.h"
bool CPlayerUtils::IsItemPlayable(const CFileItem& itemIn)
{
const CFileItem item(itemIn.GetItemToPlay());
// General
if (item.IsParentFolder())
return false;
// Plugins
if (item.IsPlugin() && item.GetProperty("isplayable").asBoolean())
return true;
// Music
if (MUSIC_UTILS::IsItemPlayable(item))
return true;
// Movies / TV Shows / Music Videos
if (VIDEO_UTILS::IsItemPlayable(item))
return true;
//! @todo add more types on demand.
return false;
}
void CPlayerUtils::AdvanceTempoStep(std::shared_ptr<CApplicationPlayer> appPlayer,
TempoStepChange change)
{
const auto step = 0.1f;
const auto currentTempo = appPlayer->GetPlayTempo();
switch (change)
{
case TempoStepChange::INCREASE:
appPlayer->SetTempo(currentTempo + step);
break;
case TempoStepChange::DECREASE:
appPlayer->SetTempo(currentTempo - step);
break;
}
}
|