diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-04-29 14:16:39 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-04-29 14:16:39 +0200 |
commit | 68b4cd41ba286956eacf2facbc9c4b5a9454ade7 (patch) | |
tree | c6cc432a1d9cbdd81c84755e2c5bf45e3f3f0b6d | |
parent | 802e2398b721e08666c54a1abb13023bbbd15749 (diff) |
wfdpipeline: Add wfdGetPipelinef(v)
-rw-r--r-- | src/wfdapi.c | 39 | ||||
-rw-r--r-- | src/wfdpipeline.c | 35 | ||||
-rw-r--r-- | src/wfdpipeline.h | 12 |
3 files changed, 81 insertions, 5 deletions
diff --git a/src/wfdapi.c b/src/wfdapi.c index 8e84e6b..20b6853 100644 --- a/src/wfdapi.c +++ b/src/wfdapi.c @@ -1112,11 +1112,25 @@ wfdGetPipelineAttribi(WFDDevice device_handle, WFD_API_CALL WFDfloat WFD_APIENTRY -wfdGetPipelineAttribf(WFDDevice device, - WFDPipeline pipeline, +wfdGetPipelineAttribf(WFDDevice device_handle, + WFDPipeline pipeline_handle, WFDPipelineConfigAttrib attrib) WFD_APIEXIT { - return 0.; + struct wfd_device *device; + struct wfd_pipeline *pipeline; + + device = wf_handle_get_object(device_handle, DEVICE_HANDLE); + if (device == NULL) + return 0.0; + wfd_device_set_error(device, WFD_ERROR_NONE); + + pipeline = wf_handle_get_object(pipeline_handle, PIPELINE_HANDLE); + if (pipeline == NULL) { + wfd_device_set_error(device, WFD_ERROR_BAD_HANDLE); + return 0.0; + } + + return wfd_pipeline_get_attribf(device, pipeline, attrib); } @@ -1146,12 +1160,27 @@ wfdGetPipelineAttribiv(WFDDevice device_handle, WFD_API_CALL void WFD_APIENTRY -wfdGetPipelineAttribfv(WFDDevice device, - WFDPipeline pipeline, +wfdGetPipelineAttribfv(WFDDevice device_handle, + WFDPipeline pipeline_handle, WFDPipelineConfigAttrib attrib, WFDint count, WFDfloat *value) WFD_APIEXIT { + struct wfd_device *device; + struct wfd_pipeline *pipeline; + + device = wf_handle_get_object(device_handle, DEVICE_HANDLE); + if (device == NULL) + return; + wfd_device_set_error(device, WFD_ERROR_NONE); + + pipeline = wf_handle_get_object(pipeline_handle, PIPELINE_HANDLE); + if (pipeline == NULL) { + wfd_device_set_error(device, WFD_ERROR_BAD_HANDLE); + return; + } + + wfd_pipeline_get_attribfv(device, pipeline, attrib, count, value); } diff --git a/src/wfdpipeline.c b/src/wfdpipeline.c index 3f270d8..dcab395 100644 --- a/src/wfdpipeline.c +++ b/src/wfdpipeline.c @@ -226,6 +226,22 @@ wfd_pipeline_get_attribi(struct wfd_device *device, return 0; } +WFDfloat +wfd_pipeline_get_attribf(struct wfd_device *device, + struct wfd_pipeline *pipeline, + WFDPipelineConfigAttrib attrib) +{ + switch (attrib) { + case WFD_PIPELINE_GLOBAL_ALPHA: + return 1.0; + default: + wfd_device_set_error(device, WFD_ERROR_BAD_ATTRIBUTE); + break; + }; + + return 0.0; +} + void wfd_pipeline_set_attribiv(struct wfd_device *device, @@ -276,6 +292,25 @@ wfd_pipeline_get_attribiv(struct wfd_device *device, } void +wfd_pipeline_get_attribfv(struct wfd_device *device, + struct wfd_pipeline *pipeline, + WFDPipelineConfigAttrib attrib, + WFDint count, + WFDfloat *value) +{ + switch (attrib) { + case WFD_PIPELINE_SCALE_RANGE: + if (count != 2) + return; + value[0] = value[1] = 1.0; + break; + default: + wfd_device_set_error(device, WFD_ERROR_BAD_ATTRIBUTE); + break; + } +}; + +void wfd_pipeline_set_port(struct wfd_device *device, struct wfd_pipeline *pipeline, struct wfd_port *port) diff --git a/src/wfdpipeline.h b/src/wfdpipeline.h index 1e7ce56..e2561fe 100644 --- a/src/wfdpipeline.h +++ b/src/wfdpipeline.h @@ -66,6 +66,11 @@ wfd_pipeline_get_attribi(struct wfd_device *device, struct wfd_pipeline *pipeline, WFDPipelineConfigAttrib attrib); +WFDfloat +wfd_pipeline_get_attribf(struct wfd_device *device, + struct wfd_pipeline *pipeline, + WFDPipelineConfigAttrib attrib); + void wfd_pipeline_set_attribiv(struct wfd_device *device, struct wfd_pipeline *pipeline, @@ -79,6 +84,13 @@ wfd_pipeline_get_attribiv(struct wfd_device *device, WFDint count, WFDint *value); void +wfd_pipeline_get_attribfv(struct wfd_device *device, + struct wfd_pipeline *pipeline, + WFDPipelineConfigAttrib attrib, + WFDint count, + WFDfloat *value); + +void wfd_pipeline_set_port(struct wfd_device *device, struct wfd_pipeline *pipeline, struct wfd_port *port); |