1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package example.localservice;
17
18 import org.fourthline.cling.binding.AllowedValueProvider;
19 import org.fourthline.cling.binding.AllowedValueRangeProvider;
20 import org.fourthline.cling.binding.annotations.UpnpAction;
21 import org.fourthline.cling.binding.annotations.UpnpInputArgument;
22 import org.fourthline.cling.binding.annotations.UpnpOutputArgument;
23 import org.fourthline.cling.binding.annotations.UpnpService;
24 import org.fourthline.cling.binding.annotations.UpnpServiceId;
25 import org.fourthline.cling.binding.annotations.UpnpServiceType;
26 import org.fourthline.cling.binding.annotations.UpnpStateVariable;
27
28 @UpnpService(
29 serviceId = @UpnpServiceId("MyService"),
30 serviceType = @UpnpServiceType(namespace = "mydomain", value = "MyService")
31 )
32 public class MyServiceWithAllowedValueRangeProvider {
33
34
35 public static class MyAllowedValueProvider implements AllowedValueRangeProvider {
36 @Override
37 public long getMinimum() {
38 return 10;
39 }
40
41 @Override
42 public long getMaximum() {
43 return 100;
44 }
45
46 @Override
47 public long getStep() {
48 return 5;
49 }
50 }
51
52
53
54 @UpnpStateVariable(
55 allowedValueRangeProvider = MyAllowedValueProvider.class
56 )
57 private int restricted;
58
59
60 @UpnpAction(out = @UpnpOutputArgument(name = "Out"))
61 public int getRestricted() {
62 return restricted;
63 }
64
65 @UpnpAction
66 public void setRestricted(@UpnpInputArgument(name = "In") int restricted) {
67 this.restricted = restricted;
68 }
69 }
70