Skip to content

Commit

Permalink
Now we have PropertyClient and have way simpler ClientConnection class.
Browse files Browse the repository at this point in the history
I could name them as PropertyClientHostFacade and ProfileClientHostFacace,
but I guess they are simpler.
  • Loading branch information
atsushieno committed Mar 3, 2024
1 parent 7638650 commit 8f3eb39
Show file tree
Hide file tree
Showing 8 changed files with 220 additions and 222 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ class ClientConnectionModel(val parent: CIDeviceModel, val conn: ClientConnectio

var deviceInfo = mutableStateOf(conn.deviceInfo)

val properties = mutableStateListOf<PropertyValue>().apply { addAll(conn.properties.values)}
val properties = mutableStateListOf<PropertyValue>().apply { addAll(conn.propertyClient.properties.values)}

fun getMetadataList() = conn.propertyClient.getMetadataList()
fun getMetadataList() = conn.propertyRules.getMetadataList()

data class SubscriptionState(val propertyId: String, var state: MutableState<SubscriptionActionState>)
var subscriptions = mutableStateListOf<SubscriptionState>()

fun getPropertyData(resource: String, encoding: String?, paginateOffset: Int?, paginateLimit: Int?) =
conn.sendGetPropertyData(resource, encoding, paginateOffset, paginateLimit)
conn.propertyClient.sendGetPropertyData(resource, encoding, paginateOffset, paginateLimit)
fun setPropertyData(resource: String, data: List<Byte>, encoding: String?, isPartial: Boolean) =
conn.sendSetPropertyData(resource, data, encoding, isPartial)
conn.propertyClient.sendSetPropertyData(resource, data, encoding, isPartial)
fun subscribeProperty(resource: String, mutualEncoding: String?) =
conn.sendSubscribeProperty(resource, mutualEncoding)
conn.propertyClient.sendSubscribeProperty(resource, mutualEncoding)
fun unsubscribeProperty(resource: String) =
conn.sendUnsubscribeProperty(resource)
conn.propertyClient.sendUnsubscribeProperty(resource)

fun requestMidiMessageReport(address: Byte, targetMUID: Int,
messageDataControl: Byte = MidiMessageReportDataControl.Full,
Expand Down Expand Up @@ -73,7 +73,7 @@ class ClientConnectionModel(val parent: CIDeviceModel, val conn: ClientConnectio
}
}

conn.properties.valueUpdated.add { entry ->
conn.propertyClient.properties.valueUpdated.add { entry ->
val index = properties.indexOfFirst { it.id == entry.id }
if (index < 0)
properties.add(entry)
Expand All @@ -85,12 +85,12 @@ class ClientConnectionModel(val parent: CIDeviceModel, val conn: ClientConnectio
deviceInfo.value = conn.deviceInfo
}

conn.properties.propertiesCatalogUpdated.add {
conn.propertyClient.properties.propertiesCatalogUpdated.add {
properties.clear()
properties.addAll(conn.properties.values)
properties.addAll(conn.propertyClient.properties.values)
}

conn.subscriptionUpdated.add { sub ->
conn.propertyClient.subscriptionUpdated.add { sub ->
if (sub.state == SubscriptionActionState.Subscribing)
subscriptions.add(SubscriptionState(sub.propertyId, mutableStateOf(sub.state)))
else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class ConnectionViewModel(val conn: ClientConnectionModel) {

fun selectProperty(propertyId: String) {
Snapshot.withMutableSnapshot { selectedProperty.value = propertyId }
val metadata = conn.conn.propertyClient.getMetadataList()?.firstOrNull { it.propertyId == propertyId }
val metadata = conn.conn.propertyRules.getMetadataList()?.firstOrNull { it.propertyId == propertyId }
as CommonRulesPropertyMetadata
conn.getPropertyData(propertyId, encoding = metadata.encodings.firstOrNull(), paginateOffset = 0, paginateLimit = 10)
}
Expand Down
60 changes: 27 additions & 33 deletions ktmidi-ci/api/android/ktmidi-ci.api
Original file line number Diff line number Diff line change
Expand Up @@ -117,44 +117,15 @@ public final class dev/atsushieno/ktmidi/ci/ClientConnection {
public synthetic fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;ILdev/atsushieno/ktmidi/ci/DeviceDetails;BLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getDeviceInfo ()Ldev/atsushieno/ktmidi/ci/MidiCIDeviceInfo;
public final fun getMaxSimultaneousPropertyRequests ()B
public final fun getPendingChunkManager ()Ldev/atsushieno/ktmidi/ci/PropertyChunkManager;
public final fun getProductInstanceId ()Ljava/lang/String;
public final fun getProfileClient ()Ldev/atsushieno/ktmidi/ci/ClientConnection$ProfileClient;
public final fun getProperties ()Ldev/atsushieno/ktmidi/ci/ClientObservablePropertyList;
public final fun getPropertyClient ()Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;
public final fun getSubscriptionUpdated ()Ljava/util/List;
public final fun getSubscriptions ()Ljava/util/List;
public final fun getProfileClient ()Ldev/atsushieno/ktmidi/ci/ProfileClient;
public final fun getPropertyClient ()Ldev/atsushieno/ktmidi/ci/PropertyClient;
public final fun getPropertyRules ()Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;
public final fun getTargetMUID ()I
public final fun processGetDataReply (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyDataReply;)V
public final fun processPropertyCapabilitiesReply (Ldev/atsushieno/ktmidi/ci/Message$PropertyGetCapabilitiesReply;)V
public final fun processPropertySubscriptionReply (Ldev/atsushieno/ktmidi/ci/Message$SubscribePropertyReply;)V
public final fun processSubscribeProperty (Ldev/atsushieno/ktmidi/ci/Message$SubscribeProperty;)V
public final fun sendGetPropertyData (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyData;)V
public final fun sendGetPropertyData (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
public static synthetic fun sendGetPropertyData$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)V
public final fun sendSetPropertyData (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Z)V
public final fun sendSetPropertyData (Ljava/util/List;Ljava/util/List;)V
public static synthetic fun sendSetPropertyData$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ZILjava/lang/Object;)V
public final fun sendSubscribeProperty (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public static synthetic fun sendSubscribeProperty$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
public final fun sendUnsubscribeProperty (Ljava/lang/String;)V
public final fun setDeviceInfo (Ldev/atsushieno/ktmidi/ci/MidiCIDeviceInfo;)V
public final fun setMaxSimultaneousPropertyRequests (B)V
public final fun setProductInstanceId (Ljava/lang/String;)V
public final fun setPropertyClient (Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;)V
}

public final class dev/atsushieno/ktmidi/ci/ClientConnection$ProfileClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getDevice ()Ldev/atsushieno/ktmidi/ci/MidiCIDevice;
public final fun getProfiles ()Ldev/atsushieno/ktmidi/ci/ObservableProfileList;
public final fun processProfileAddedReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileAdded;)V
public final fun processProfileDetailsReply (Ldev/atsushieno/ktmidi/ci/Message$ProfileDetailsReply;)V
public final fun processProfileDisabledReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileDisabled;)V
public final fun processProfileEnabledReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileEnabled;)V
public final fun processProfileRemovedReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileRemoved;)V
public final fun processProfileReply (Ldev/atsushieno/ktmidi/ci/Message$ProfileReply;)V
public final fun setProfile (BBLdev/atsushieno/ktmidi/ci/MidiCIProfileId;ZS)V
public final fun setPropertyRules (Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;)V
}

public final class dev/atsushieno/ktmidi/ci/ClientObservablePropertyList : dev/atsushieno/ktmidi/ci/ObservablePropertyList {
Expand Down Expand Up @@ -1074,6 +1045,12 @@ public final class dev/atsushieno/ktmidi/ci/ObservablePropertyListKt {
public static final fun getMediaTypes (Ldev/atsushieno/ktmidi/ci/PropertyMetadata;)Ljava/util/List;
}

public final class dev/atsushieno/ktmidi/ci/ProfileClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getProfiles ()Ldev/atsushieno/ktmidi/ci/ObservableProfileList;
public final fun setProfile (BBLdev/atsushieno/ktmidi/ci/MidiCIProfileId;ZS)V
}

public final class dev/atsushieno/ktmidi/ci/ProfileConfigurationHostFacade {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;)V
public final fun addProfile (Ldev/atsushieno/ktmidi/ci/MidiCIProfile;)V
Expand Down Expand Up @@ -1112,6 +1089,23 @@ public final class dev/atsushieno/ktmidi/ci/PropertyChunkManager$Chunk {
public fun toString ()Ljava/lang/String;
}

public final class dev/atsushieno/ktmidi/ci/PropertyClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getPendingChunkManager ()Ldev/atsushieno/ktmidi/ci/PropertyChunkManager;
public final fun getProperties ()Ldev/atsushieno/ktmidi/ci/ClientObservablePropertyList;
public final fun getSubscriptionUpdated ()Ljava/util/List;
public final fun getSubscriptions ()Ljava/util/List;
public final fun sendGetPropertyData (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyData;)V
public final fun sendGetPropertyData (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
public static synthetic fun sendGetPropertyData$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)V
public final fun sendSetPropertyData (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Z)V
public final fun sendSetPropertyData (Ljava/util/List;Ljava/util/List;)V
public static synthetic fun sendSetPropertyData$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ZILjava/lang/Object;)V
public final fun sendSubscribeProperty (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public static synthetic fun sendSubscribeProperty$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
public final fun sendUnsubscribeProperty (Ljava/lang/String;)V
}

public final class dev/atsushieno/ktmidi/ci/PropertyExchangeHostFacade {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;)V
public final fun addProperty (Ldev/atsushieno/ktmidi/ci/PropertyMetadata;)V
Expand Down
60 changes: 27 additions & 33 deletions ktmidi-ci/api/jvm/ktmidi-ci.api
Original file line number Diff line number Diff line change
Expand Up @@ -117,44 +117,15 @@ public final class dev/atsushieno/ktmidi/ci/ClientConnection {
public synthetic fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;ILdev/atsushieno/ktmidi/ci/DeviceDetails;BLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getDeviceInfo ()Ldev/atsushieno/ktmidi/ci/MidiCIDeviceInfo;
public final fun getMaxSimultaneousPropertyRequests ()B
public final fun getPendingChunkManager ()Ldev/atsushieno/ktmidi/ci/PropertyChunkManager;
public final fun getProductInstanceId ()Ljava/lang/String;
public final fun getProfileClient ()Ldev/atsushieno/ktmidi/ci/ClientConnection$ProfileClient;
public final fun getProperties ()Ldev/atsushieno/ktmidi/ci/ClientObservablePropertyList;
public final fun getPropertyClient ()Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;
public final fun getSubscriptionUpdated ()Ljava/util/List;
public final fun getSubscriptions ()Ljava/util/List;
public final fun getProfileClient ()Ldev/atsushieno/ktmidi/ci/ProfileClient;
public final fun getPropertyClient ()Ldev/atsushieno/ktmidi/ci/PropertyClient;
public final fun getPropertyRules ()Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;
public final fun getTargetMUID ()I
public final fun processGetDataReply (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyDataReply;)V
public final fun processPropertyCapabilitiesReply (Ldev/atsushieno/ktmidi/ci/Message$PropertyGetCapabilitiesReply;)V
public final fun processPropertySubscriptionReply (Ldev/atsushieno/ktmidi/ci/Message$SubscribePropertyReply;)V
public final fun processSubscribeProperty (Ldev/atsushieno/ktmidi/ci/Message$SubscribeProperty;)V
public final fun sendGetPropertyData (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyData;)V
public final fun sendGetPropertyData (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
public static synthetic fun sendGetPropertyData$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)V
public final fun sendSetPropertyData (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Z)V
public final fun sendSetPropertyData (Ljava/util/List;Ljava/util/List;)V
public static synthetic fun sendSetPropertyData$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ZILjava/lang/Object;)V
public final fun sendSubscribeProperty (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public static synthetic fun sendSubscribeProperty$default (Ldev/atsushieno/ktmidi/ci/ClientConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
public final fun sendUnsubscribeProperty (Ljava/lang/String;)V
public final fun setDeviceInfo (Ldev/atsushieno/ktmidi/ci/MidiCIDeviceInfo;)V
public final fun setMaxSimultaneousPropertyRequests (B)V
public final fun setProductInstanceId (Ljava/lang/String;)V
public final fun setPropertyClient (Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;)V
}

public final class dev/atsushieno/ktmidi/ci/ClientConnection$ProfileClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getDevice ()Ldev/atsushieno/ktmidi/ci/MidiCIDevice;
public final fun getProfiles ()Ldev/atsushieno/ktmidi/ci/ObservableProfileList;
public final fun processProfileAddedReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileAdded;)V
public final fun processProfileDetailsReply (Ldev/atsushieno/ktmidi/ci/Message$ProfileDetailsReply;)V
public final fun processProfileDisabledReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileDisabled;)V
public final fun processProfileEnabledReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileEnabled;)V
public final fun processProfileRemovedReport (Ldev/atsushieno/ktmidi/ci/Message$ProfileRemoved;)V
public final fun processProfileReply (Ldev/atsushieno/ktmidi/ci/Message$ProfileReply;)V
public final fun setProfile (BBLdev/atsushieno/ktmidi/ci/MidiCIProfileId;ZS)V
public final fun setPropertyRules (Ldev/atsushieno/ktmidi/ci/MidiCIClientPropertyRules;)V
}

public final class dev/atsushieno/ktmidi/ci/ClientObservablePropertyList : dev/atsushieno/ktmidi/ci/ObservablePropertyList {
Expand Down Expand Up @@ -1074,6 +1045,12 @@ public final class dev/atsushieno/ktmidi/ci/ObservablePropertyListKt {
public static final fun getMediaTypes (Ldev/atsushieno/ktmidi/ci/PropertyMetadata;)Ljava/util/List;
}

public final class dev/atsushieno/ktmidi/ci/ProfileClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getProfiles ()Ldev/atsushieno/ktmidi/ci/ObservableProfileList;
public final fun setProfile (BBLdev/atsushieno/ktmidi/ci/MidiCIProfileId;ZS)V
}

public final class dev/atsushieno/ktmidi/ci/ProfileConfigurationHostFacade {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;)V
public final fun addProfile (Ldev/atsushieno/ktmidi/ci/MidiCIProfile;)V
Expand Down Expand Up @@ -1112,6 +1089,23 @@ public final class dev/atsushieno/ktmidi/ci/PropertyChunkManager$Chunk {
public fun toString ()Ljava/lang/String;
}

public final class dev/atsushieno/ktmidi/ci/PropertyClient {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;Ldev/atsushieno/ktmidi/ci/ClientConnection;)V
public final fun getPendingChunkManager ()Ldev/atsushieno/ktmidi/ci/PropertyChunkManager;
public final fun getProperties ()Ldev/atsushieno/ktmidi/ci/ClientObservablePropertyList;
public final fun getSubscriptionUpdated ()Ljava/util/List;
public final fun getSubscriptions ()Ljava/util/List;
public final fun sendGetPropertyData (Ldev/atsushieno/ktmidi/ci/Message$GetPropertyData;)V
public final fun sendGetPropertyData (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
public static synthetic fun sendGetPropertyData$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)V
public final fun sendSetPropertyData (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Z)V
public final fun sendSetPropertyData (Ljava/util/List;Ljava/util/List;)V
public static synthetic fun sendSetPropertyData$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ZILjava/lang/Object;)V
public final fun sendSubscribeProperty (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public static synthetic fun sendSubscribeProperty$default (Ldev/atsushieno/ktmidi/ci/PropertyClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
public final fun sendUnsubscribeProperty (Ljava/lang/String;)V
}

public final class dev/atsushieno/ktmidi/ci/PropertyExchangeHostFacade {
public fun <init> (Ldev/atsushieno/ktmidi/ci/MidiCIDevice;)V
public final fun addProperty (Ldev/atsushieno/ktmidi/ci/PropertyMetadata;)V
Expand Down

0 comments on commit 8f3eb39

Please sign in to comment.