AbstractDeviceTracker.java
com.mojang.blaze3d.audio.AbstractDeviceTracker
信息
- 全限定名:com.mojang.blaze3d.audio.AbstractDeviceTracker
- 类型:public abstract class
- 包:com.mojang.blaze3d.audio
- 源码路径:src/main/java/com/mojang/blaze3d/audio/AbstractDeviceTracker.java
- 起始行号:L9
- 实现:DeviceTracker
- 职责:
TODO
字段/常量
-
deviceList- 类型:
DeviceList - 修饰符:
private volatile - 源码定位:
L10 - 说明:
TODO
- 类型:
-
updatePending- 类型:
AtomicBoolean - 修饰符:
private final - 源码定位:
L11 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AbstractDeviceTracker(DeviceList deviceList) @ L13
- 构造器名:AbstractDeviceTracker
- 源码定位:L13
- 修饰符:public
参数:
- deviceList: DeviceList
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected abstract boolean isUpdateRequested() @ L17
- 方法名:isUpdateRequested
- 源码定位:L17
- 返回类型:boolean
- 修饰符:protected abstract
参数:
- 无
说明:
TODO
protected abstract void discardUpdateRequest() @ L19
- 方法名:discardUpdateRequest
- 源码定位:L19
- 返回类型:void
- 修饰符:protected abstract
参数:
- 无
说明:
TODO
public DeviceList currentDevices() @ L21
- 方法名:currentDevices
- 源码定位:L21
- 返回类型:DeviceList
- 修饰符:public
参数:
- 无
说明:
TODO
public void forceRefresh() @ L26
- 方法名:forceRefresh
- 源码定位:L26
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void tick() @ L32
- 方法名:tick
- 源码定位:L32
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class AbstractDeviceTracker implements DeviceTracker {
private volatile DeviceList deviceList;
private final AtomicBoolean updatePending = new AtomicBoolean();
public AbstractDeviceTracker(DeviceList deviceList) {
this.deviceList = deviceList;
}
protected abstract boolean isUpdateRequested();
protected abstract void discardUpdateRequest();
@Override
public DeviceList currentDevices() {
return this.deviceList;
}
@Override
public void forceRefresh() {
this.discardUpdateRequest();
this.deviceList = DeviceList.query();
}
@Override
public void tick() {
if (this.isUpdateRequested()) {
this.discardUpdateRequest();
if (this.updatePending.compareAndSet(false, true)) {
Util.ioPool().execute(() -> {
this.deviceList = DeviceList.query();
this.updatePending.set(false);
});
}
}
}
}引用的其他类
-
- 引用位置:
参数/字段/方法调用/返回值 - 关联成员:
DeviceList.query()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.ioPool()
- 引用位置: