mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-01-29 06:10:52 +00:00
* [Linux] Enhance GUI with icons * Improve visibility * Smarter hiding of battery values * Add simple opacity based ear detection indication * Hide disconnected devices * Add airpods 3 icon * Support more devices * Better icons * Add documentation
95 lines
3.3 KiB
C++
95 lines
3.3 KiB
C++
#pragma once
|
|
|
|
#include <QMetaType>
|
|
#include <QHash>
|
|
|
|
namespace AirpodsTrayApp
|
|
{
|
|
namespace Enums
|
|
{
|
|
Q_NAMESPACE
|
|
|
|
enum class NoiseControlMode : quint8
|
|
{
|
|
Off = 0,
|
|
NoiseCancellation = 1,
|
|
Transparency = 2,
|
|
Adaptive = 3,
|
|
|
|
MinValue = Off,
|
|
MaxValue = Adaptive,
|
|
};
|
|
Q_ENUM_NS(NoiseControlMode)
|
|
|
|
enum class AirPodsModel
|
|
{
|
|
Unknown,
|
|
AirPods1,
|
|
AirPods2,
|
|
AirPods3,
|
|
AirPodsPro,
|
|
AirPodsPro2Lightning,
|
|
AirPodsPro2USBC,
|
|
AirPodsMaxLightning,
|
|
AirPodsMaxUSBC,
|
|
AirPods4,
|
|
AirPods4ANC
|
|
};
|
|
Q_ENUM_NS(AirPodsModel)
|
|
|
|
// Get model enum from model number
|
|
inline AirPodsModel parseModelNumber(const QString &modelNumber)
|
|
{
|
|
// Model numbers taken from https://support.apple.com/en-us/109525
|
|
QHash<QString, AirPodsModel> modelNumberMap = {
|
|
{"A1523", AirPodsModel::AirPods1},
|
|
{"A1722", AirPodsModel::AirPods1},
|
|
{"A2032", AirPodsModel::AirPods2},
|
|
{"A2031", AirPodsModel::AirPods2},
|
|
{"A2084", AirPodsModel::AirPodsPro},
|
|
{"A2083", AirPodsModel::AirPodsPro},
|
|
{"A2096", AirPodsModel::AirPodsMaxLightning},
|
|
{"A3184", AirPodsModel::AirPodsMaxUSBC},
|
|
{"A2565", AirPodsModel::AirPods3},
|
|
{"A2564", AirPodsModel::AirPods3},
|
|
{"A3047", AirPodsModel::AirPodsPro2USBC},
|
|
{"A3048", AirPodsModel::AirPodsPro2USBC},
|
|
{"A3049", AirPodsModel::AirPodsPro2USBC},
|
|
{"A2931", AirPodsModel::AirPodsPro2Lightning},
|
|
{"A2699", AirPodsModel::AirPodsPro2Lightning},
|
|
{"A2698", AirPodsModel::AirPodsPro2Lightning},
|
|
{"A3053", AirPodsModel::AirPods4},
|
|
{"A3050", AirPodsModel::AirPods4},
|
|
{"A3054", AirPodsModel::AirPods4},
|
|
{"A3056", AirPodsModel::AirPods4ANC},
|
|
{"A3055", AirPodsModel::AirPods4ANC},
|
|
{"A3057", AirPodsModel::AirPods4ANC}};
|
|
|
|
return modelNumberMap.value(modelNumber, AirPodsModel::Unknown);
|
|
}
|
|
|
|
// Return icons based on model
|
|
inline QPair<QString, QString> getModelIcon(AirPodsModel model) {
|
|
switch (model) {
|
|
case AirPodsModel::AirPods1:
|
|
case AirPodsModel::AirPods2:
|
|
return {"pod.png", "pod_case.png"};
|
|
case AirPodsModel::AirPods3:
|
|
return {"pod3.png", "pod3_case.png"};
|
|
case AirPodsModel::AirPods4:
|
|
case AirPodsModel::AirPods4ANC:
|
|
return {"pod3.png", "pod4_case.png"};
|
|
case AirPodsModel::AirPodsPro:
|
|
case AirPodsModel::AirPodsPro2Lightning:
|
|
case AirPodsModel::AirPodsPro2USBC:
|
|
return {"podpro.png", "podpro_case.png"};
|
|
case AirPodsModel::AirPodsMaxLightning:
|
|
case AirPodsModel::AirPodsMaxUSBC:
|
|
return {"max.png", "max_case.png"};
|
|
default:
|
|
return {"pod.png", "pod_case.png"}; // Default icon for unknown models
|
|
}
|
|
}
|
|
|
|
}
|
|
} |