Device charging indicator

This commit is contained in:
Natsumi
2023-01-14 12:49:30 +13:00
parent d647b6a5ad
commit 50e6c83506
19 changed files with 67 additions and 36 deletions
+10 -1
View File
@@ -302,6 +302,12 @@ namespace VRCX
{ {
batteryPercentage = 1f; batteryPercentage = 1f;
} }
err = ETrackedPropertyError.TrackedProp_Success;
var isCharging = system.GetBoolTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceIsCharging_Bool, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{
isCharging = false;
}
sb.Clear(); sb.Clear();
system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err); system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err);
var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0; var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0;
@@ -364,7 +370,10 @@ namespace VRCX
system.IsTrackedDeviceConnected(i) system.IsTrackedDeviceConnected(i)
? "connected" ? "connected"
: "disconnected", : "disconnected",
(batteryPercentage * 100).ToString() isCharging
? "charging"
: "discharging",
(batteryPercentage * 100).ToString(),
}; };
_deviceListLock.EnterWriteLock(); _deviceListLock.EnterWriteLock();
try try
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

+1 -1
View File
@@ -5051,7 +5051,7 @@ speechSynthesis.getVoices();
} }
return 0; return 0;
}); });
wristFeed.splice(15); wristFeed.splice(16);
AppApi.ExecuteVrFeedFunction( AppApi.ExecuteVrFeedFunction(
'wristFeedUpdate', 'wristFeedUpdate',
JSON.stringify(wristFeed) JSON.stringify(wristFeed)
+1 -5
View File
@@ -1369,11 +1369,7 @@
"timer": "Timer:", "timer": "Timer:",
"players": "Players:", "players": "Players:",
"cpu": "CPU:", "cpu": "CPU:",
"online": "Online:", "online": "Online:"
"devices": {
"left": "L:",
"right": "R:"
}
} }
} }
} }
+1 -5
View File
@@ -1369,11 +1369,7 @@
"timer": "시간:", "timer": "시간:",
"players": "인원수:", "players": "인원수:",
"cpu": "CPU:", "cpu": "CPU:",
"online": "온라인:", "online": "온라인:"
"devices": {
"left": "왼쪽:",
"right": "오른쪽:"
}
} }
} }
} }
+1 -5
View File
@@ -1366,11 +1366,7 @@
"timer": "時長:", "timer": "時長:",
"players": "玩家人數:", "players": "玩家人數:",
"cpu": "CPU", "cpu": "CPU",
"online": "線上:", "online": "線上:"
"devices": {
"left": "左:",
"right": "右:"
}
} }
} }
} }
+30 -2
View File
@@ -324,6 +324,7 @@ Vue.component('marquee-text', MarqueeText);
this.hudTimeout = []; this.hudTimeout = [];
this.setDatetimeFormat(); this.setDatetimeFormat();
this.setAppLanguage(this.config.appLanguage); this.setAppLanguage(this.config.appLanguage);
this.updateFeedLength();
}; };
$app.methods.updateOnlineFriendCount = function (count) { $app.methods.updateOnlineFriendCount = function (count) {
@@ -347,6 +348,7 @@ Vue.component('marquee-text', MarqueeText);
circle.style.opacity = 0; circle.style.opacity = 0;
} }
} }
this.updateFeedLength();
}; };
$app.methods.lastLocationUpdate = function (json) { $app.methods.lastLocationUpdate = function (json) {
@@ -355,6 +357,27 @@ Vue.component('marquee-text', MarqueeText);
$app.methods.wristFeedUpdate = function (json) { $app.methods.wristFeedUpdate = function (json) {
this.wristFeed = JSON.parse(json); this.wristFeed = JSON.parse(json);
this.updateFeedLength();
};
$app.methods.updateFeedLength = function () {
if (this.appType === '2' || this.wristFeed.length === 0) {
return;
}
var length = 16;
if (!this.config.hideDevicesFromFeed) {
length -= 2;
if (this.devices.length > 7) {
length -= 1;
}
}
if (this.nowPlaying.playing) {
length -= 1;
}
if (!this.config.hideFriendsFromFeed && this.nowPlaying.playing) {
length -= 1;
}
this.wristFeed.length = length;
}; };
$app.methods.updateStatsLoop = async function () { $app.methods.updateStatsLoop = async function () {
@@ -396,7 +419,7 @@ Vue.component('marquee-text', MarqueeText);
var deviceList = []; var deviceList = [];
var baseStations = 0; var baseStations = 0;
devices.forEach((device) => { devices.forEach((device) => {
device[2] = parseInt(device[2], 10); device[3] = parseInt(device[3], 10);
if (device[0] === 'base' && device[1] === 'connected') { if (device[0] === 'base' && device[1] === 'connected') {
baseStations++; baseStations++;
} else { } else {
@@ -428,7 +451,12 @@ Vue.component('marquee-text', MarqueeText);
return 0; return 0;
}); });
if (baseStations > 0) { if (baseStations > 0) {
deviceList.push(['base', 'connected', baseStations]); deviceList.push([
'base',
'connected',
'',
baseStations
]);
} }
this.devices = deviceList; this.devices = deviceList;
}); });
+20 -15
View File
@@ -415,34 +415,39 @@ html
div(style="display:flex;flex-direction:row;flex-wrap:wrap") div(style="display:flex;flex-direction:row;flex-wrap:wrap")
div(v-for="device in devices" class="tracker-container") div(v-for="device in devices" class="tracker-container")
template(v-if="device[0] === 'leftController'") template(v-if="device[0] === 'leftController'")
img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/left_controller_status_off.png" class="tracker-device")
img(v-else-if="device[2] < 20" src="images/controller_status_ready_low.png" class="tracker-device") img(v-else-if="device[2] === 'charging'" src="images/left_controller_status_ready_charging.png" class="tracker-device")
img(v-else src="images/controller_status_ready.png" class="tracker-device") img(v-else-if="device[3] < 20" src="images/left_controller_status_ready_low.png" class="tracker-device")
span {{ $t('vr.status.devices.left') }}{{ device[2] }}% img(v-else src="images/left_controller_status_ready.png" class="tracker-device")
span {{ device[3] }}%
template(v-else-if="device[0] === 'rightController'") template(v-else-if="device[0] === 'rightController'")
img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/right_controller_status_off.png" class="tracker-device")
img(v-else-if="device[2] < 20" src="images/controller_status_ready_low.png" class="tracker-device") img(v-else-if="device[2] === 'charging'" src="images/right_controller_status_ready_charging.png" class="tracker-device")
img(v-else src="images/controller_status_ready.png" class="tracker-device") img(v-else-if="device[3] < 20" src="images/right_controller_status_ready_low.png" class="tracker-device")
span {{ $t('vr.status.devices.right') }}{{ device[2] }}% img(v-else src="images/right_controller_status_ready.png" class="tracker-device")
span {{ device[3] }}%
template(v-else-if="device[0] === 'controller'") template(v-else-if="device[0] === 'controller'")
img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png" class="tracker-device")
img(v-else-if="device[2] < 20" src="images/controller_status_ready_low.png" class="tracker-device") img(v-else-if="device[2] === 'charging'" src="images/controller_status_ready_charging.png" class="tracker-device")
img(v-else-if="device[3] < 20" src="images/controller_status_ready_low.png" class="tracker-device")
img(v-else src="images/controller_status_ready.png" class="tracker-device") img(v-else src="images/controller_status_ready.png" class="tracker-device")
span {{ device[2] }}% span {{ device[3] }}%
template(v-else-if="device[0] === 'tracker'") template(v-else-if="device[0] === 'tracker'")
img(v-if="device[1] !== 'connected'" src="images/tracker_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/tracker_status_off.png" class="tracker-device")
img(v-else-if="device[2] < 20" src="images/tracker_status_ready_low.png" class="tracker-device") img(v-else-if="device[2] === 'charging'" src="images/tracker_status_ready_charging.png" class="tracker-device")
img(v-else-if="device[3] < 20" src="images/tracker_status_ready_low.png" class="tracker-device")
img(v-else src="images/tracker_status_ready.png" class="tracker-device") img(v-else src="images/tracker_status_ready.png" class="tracker-device")
span {{ device[2] }}% span {{ device[3] }}%
template(v-else-if="device[0] === 'base'") template(v-else-if="device[0] === 'base'")
img(v-if="device[1] !== 'connected'" src="images/base_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/base_status_off.png" class="tracker-device")
img(v-else src="images/base_status_ready.png" class="tracker-device") img(v-else src="images/base_status_ready.png" class="tracker-device")
span(v-if="device[2] !== 100") {{ device[2] }}x span(v-if="device[3] !== 100") {{ device[3] }}x
template(v-else) template(v-else)
img(v-if="device[1] !== 'connected'" src="images/other_status_off.png" class="tracker-device") img(v-if="device[1] !== 'connected'" src="images/other_status_off.png" class="tracker-device")
img(v-else-if="device[2] < 20" src="images/other_status_ready_low.png" class="tracker-device") img(v-else-if="device[2] === 'charging'" src="images/other_status_ready_charging.png" class="tracker-device")
img(v-else-if="device[3] < 20" src="images/other_status_ready_low.png" class="tracker-device")
img(v-else src="images/other_status_ready.png" class="tracker-device") img(v-else src="images/other_status_ready.png" class="tracker-device")
span {{ device[2] }}% span {{ device[3] }}%
.x-containerbottom .x-containerbottom
template(v-if="nowPlaying.playing") template(v-if="nowPlaying.playing")
span(style="float:right;padding-left:10px") {{ nowPlaying.remainingText }} span(style="float:right;padding-left:10px") {{ nowPlaying.remainingText }}
+3 -2
View File
@@ -203,7 +203,7 @@ button {
.x-container { .x-container {
position: relative; position: relative;
flex: none; flex: none;
padding: 10px; padding: 2px 10px 0 10px;
overflow: hidden; overflow: hidden;
} }
@@ -400,7 +400,8 @@ i.x-user-status.busy {
.tracker-container { .tracker-container {
flex: 1 1 auto; flex: 1 1 auto;
text-align: center; text-align: center;
line-height: 16px; line-height: 18px;
width: 55px;
} }
.tracker-device img { .tracker-device img {