diff --git a/dvbservice/src/main/java/info/martinmarinov/dvbservice/Request.java b/dvbservice/src/main/java/info/martinmarinov/dvbservice/Request.java index 002d1b7..8faf2f9 100644 --- a/dvbservice/src/main/java/info/martinmarinov/dvbservice/Request.java +++ b/dvbservice/src/main/java/info/martinmarinov/dvbservice/Request.java @@ -138,6 +138,13 @@ public Response execute(DvbDevice dvbDevice, long... payload) throws DvbExceptio (long) dvbDevice.getDeviceFilter().getProductId() // parameter 6 ); } + }), + REQ_DISABLE_PID_FILTER(new Executor() { + @Override + public Response execute(DvbDevice dvbDevice, long... payload) throws DvbException { + dvbDevice.disablePidFilter(); + return Response.SUCCESS; + } }); private final static String TAG = Request.class.getSimpleName(); diff --git a/dvbservice/src/test/java/info/martinmarinov/dvbservice/RequestTest.java b/dvbservice/src/test/java/info/martinmarinov/dvbservice/RequestTest.java index a757101..693974c 100644 --- a/dvbservice/src/test/java/info/martinmarinov/dvbservice/RequestTest.java +++ b/dvbservice/src/test/java/info/martinmarinov/dvbservice/RequestTest.java @@ -145,6 +145,17 @@ public void testGetCapabilities() throws Exception { assertThat(response[6], is(0x2838L)); // USB product id } + @Test + public void testDisablePidFilter() throws Exception { + long[] response = getRawResponse(6); + + assertThat(response.length, is(1)); + assertThat(response[0], is(1L)); // success + + // verify hardware was called + verify(dvbDevice).disablePidFilter(); + } + /** Helper to do serialization/deserialization to bytes */ private long[] getRawResponse(int requestOrdinal, long ... reqArgs) { try {