Template object for ssdp_ResultData.
This commit is contained in:
		| @@ -2,6 +2,10 @@ | |||||||
| Version 1.8.0 | Version 1.8.0 | ||||||
| ******************************************************************************* | ******************************************************************************* | ||||||
|  |  | ||||||
|  | 2010-11-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net> | ||||||
|  |  | ||||||
|  | 	Template object for ssdp_ResultData. | ||||||
|  |  | ||||||
| 2010-11-10 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com> | 2010-11-10 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com> | ||||||
|  |  | ||||||
| 	Support for "polling" select in sock_read_write. | 	Support for "polling" select in sock_read_write. | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ upnpincludedir = $(includedir)/upnp | |||||||
| upnpinclude_HEADERS = \ | upnpinclude_HEADERS = \ | ||||||
| 	inc/ActionComplete.h \ | 	inc/ActionComplete.h \ | ||||||
| 	inc/ActionRequest.h \ | 	inc/ActionRequest.h \ | ||||||
|  | 	inc/Callback.h \ | ||||||
| 	inc/Discovery.h \ | 	inc/Discovery.h \ | ||||||
| 	inc/Event.h \ | 	inc/Event.h \ | ||||||
| 	inc/EventSubscribe.h \ | 	inc/EventSubscribe.h \ | ||||||
|   | |||||||
							
								
								
									
										153
									
								
								upnp/inc/Callback.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								upnp/inc/Callback.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,153 @@ | |||||||
|  |  | ||||||
|  | #ifndef CALLBACK_H | ||||||
|  | #define CALLBACK_H | ||||||
|  |  | ||||||
|  | /*! | ||||||
|  |  * \file | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | /*! | ||||||
|  |  * \brief The reason code for an event callback. | ||||||
|  |  * | ||||||
|  |  * The \b Event parameter will be different depending on the reason for the | ||||||
|  |  * callback. The descriptions for each event type describe the contents of the | ||||||
|  |  * \b Event parameter. | ||||||
|  |  */ | ||||||
|  | enum Upnp_EventType_e { | ||||||
|  | 	/* | ||||||
|  | 	 * Control callbacks | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
|  | 	/*! Received by a device when a control point issues a control | ||||||
|  | 	 * request.  The \b Event parameter contains a pointer to a \b | ||||||
|  | 	 * UpnpActionRequest structure containing the action.  The application | ||||||
|  | 	 * stores the results of the action in this structure. */ | ||||||
|  | 	UPNP_CONTROL_ACTION_REQUEST, | ||||||
|  |  | ||||||
|  | 	/*! A \b UpnpSendActionAsync call completed. The \b Event | ||||||
|  | 	 * parameter contains a pointer to a \b UpnpActionComplete structure | ||||||
|  | 	 * with the results of the action.  */ | ||||||
|  | 	UPNP_CONTROL_ACTION_COMPLETE, | ||||||
|  |  | ||||||
|  | 	/*! Received by a device when a query for a single service variable | ||||||
|  | 	 * arrives.  The \b Event parameter contains a pointer to a \b | ||||||
|  | 	 * UpnpStateVarRequest structure containing the name of the variable | ||||||
|  | 	 * and value.  */ | ||||||
|  | 	UPNP_CONTROL_GET_VAR_REQUEST, | ||||||
|  |  | ||||||
|  | 	/*! A \b UpnpGetServiceVarStatus call completed. The \b Event | ||||||
|  | 	 * parameter contains a pointer to a \b UpnpStateVarComplete structure | ||||||
|  | 	 * containing the value for the variable.  */ | ||||||
|  | 	UPNP_CONTROL_GET_VAR_COMPLETE, | ||||||
|  |  | ||||||
|  | 	/* | ||||||
|  | 	 * Discovery callbacks | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
|  | 	/*! Received by a control point when a new device or service is available.   | ||||||
|  | 	 * The \b Event parameter contains a pointer to a \b | ||||||
|  | 	 * UpnpDiscovery structure with the information about the device | ||||||
|  | 	 * or service.  */ | ||||||
|  | 	UPNP_DISCOVERY_ADVERTISEMENT_ALIVE, | ||||||
|  |  | ||||||
|  | 	/*! Received by a control point when a device or service shuts down. The \b | ||||||
|  | 	 * Event parameter contains a pointer to a \b UpnpDiscovery | ||||||
|  | 	 * structure containing the information about the device or | ||||||
|  | 	 * service.  */ | ||||||
|  | 	UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE, | ||||||
|  |  | ||||||
|  | 	/*! Received by a control point when a matching device or service responds. | ||||||
|  | 	 * The \b Event parameter contains a pointer to a \b | ||||||
|  | 	 * UpnpDiscovery structure containing the information about | ||||||
|  | 	 * the reply to the search request.  */ | ||||||
|  | 	UPNP_DISCOVERY_SEARCH_RESULT, | ||||||
|  |  | ||||||
|  | 	/*! Received by a control point when the search timeout expires.  The | ||||||
|  | 	 * SDK generates no more callbacks for this search after this  | ||||||
|  | 	 * event.  The \b Event parameter is \c NULL.  */ | ||||||
|  | 	UPNP_DISCOVERY_SEARCH_TIMEOUT, | ||||||
|  |  | ||||||
|  | 	/* | ||||||
|  | 	 * Eventing callbacks | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
|  | 	/*! Received by a device when a subscription arrives. | ||||||
|  | 	 * The \b Event parameter contains a pointer to a \b | ||||||
|  | 	 * UpnpSubscriptionRequest structure.  At this point, the | ||||||
|  | 	 * subscription has already been accepted.  \b UpnpAcceptSubscription | ||||||
|  | 	 * needs to be called to confirm the subscription and transmit the | ||||||
|  | 	 * initial state table.  This can be done during this callback.  The SDK | ||||||
|  | 	 * generates no events for a subscription unless the device  | ||||||
|  | 	 * application calls \b UpnpAcceptSubscription. | ||||||
|  | 	 */ | ||||||
|  | 	UPNP_EVENT_SUBSCRIPTION_REQUEST, | ||||||
|  |  | ||||||
|  | 	/*! Received by a control point when an event arrives. The \b | ||||||
|  | 	 * Event parameter contains a \b UpnpEvent structure | ||||||
|  | 	 * with the information about the event.  */ | ||||||
|  | 	UPNP_EVENT_RECEIVED, | ||||||
|  |  | ||||||
|  | 	/*! A \b UpnpRenewSubscriptionAsync call completed. The status of | ||||||
|  | 	 * the renewal is in the \b Event parameter as a \b | ||||||
|  | 	 * Upnp_Event_Subscription structure.  */ | ||||||
|  | 	UPNP_EVENT_RENEWAL_COMPLETE, | ||||||
|  |  | ||||||
|  | 	/*! A \b UpnpSubscribeAsync call completed. The status of the | ||||||
|  | 	 * subscription is in the \b Event parameter as a \b | ||||||
|  | 	 * Upnp_Event_Subscription structure.  */ | ||||||
|  | 	UPNP_EVENT_SUBSCRIBE_COMPLETE, | ||||||
|  |  | ||||||
|  | 	/*! A \b UpnpUnSubscribeAsync call completed. The status of the | ||||||
|  | 	 * subscription is in the \b Event parameter as a \b | ||||||
|  | 	 * UpnpEventSubscribe structure.  */ | ||||||
|  | 	UPNP_EVENT_UNSUBSCRIBE_COMPLETE, | ||||||
|  |  | ||||||
|  | 	/*! The auto-renewal of a client subscription failed.    | ||||||
|  | 	 * The \b Event parameter is a \b UpnpEventSubscribe structure  | ||||||
|  | 	 * with the error code set appropriately. The subscription is no longer  | ||||||
|  | 	 * valid. */ | ||||||
|  | 	UPNP_EVENT_AUTORENEWAL_FAILED, | ||||||
|  |  | ||||||
|  | 	/*! A client subscription has expired. This will only occur  | ||||||
|  | 	 * if auto-renewal of subscriptions is disabled. | ||||||
|  | 	 * The \b Event parameter is a \b UpnpEventSubscribe | ||||||
|  | 	 * structure. The subscription is no longer valid. */ | ||||||
|  | 	UPNP_EVENT_SUBSCRIPTION_EXPIRED | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | typedef enum Upnp_EventType_e Upnp_EventType; | ||||||
|  |  | ||||||
|  | /*! | ||||||
|  |  *  All callback functions share the same prototype, documented below. | ||||||
|  |  *  Note that any memory passed to the callback function | ||||||
|  |  *  is valid only during the callback and should be copied if it | ||||||
|  |  *  needs to persist.  This callback function needs to be thread | ||||||
|  |  *  safe.  The context of the callback is always on a valid thread  | ||||||
|  |  *  context and standard synchronization methods can be used.  Note,  | ||||||
|  |  *  however, because of this the callback cannot call SDK functions | ||||||
|  |  *  unless explicitly noted. | ||||||
|  |  * | ||||||
|  |  *  \verbatim | ||||||
|  |       int CallbackFxn(Upnp_EventType EventType, void *Event, void *Cookie); | ||||||
|  |     \endverbatim  | ||||||
|  |  * | ||||||
|  |  *  where \b EventType is the event that triggered the callback,  | ||||||
|  |  *  \b Event is a structure that denotes event-specific information for that | ||||||
|  |  *  event, and \b Cookie is the user data passed when the callback was | ||||||
|  |  *  registered. | ||||||
|  |  * | ||||||
|  |  *  See \b Upnp_EventType for more information on the callback values and | ||||||
|  |  *  the associated \b Event parameter.   | ||||||
|  |  * | ||||||
|  |  *  The return value of the callback is currently ignored. It may be used | ||||||
|  |  *  in the future to communicate results back to the SDK. | ||||||
|  |  */ | ||||||
|  | typedef int (*Upnp_FunPtr)( | ||||||
|  | 	/*! [in] .*/ | ||||||
|  | 	Upnp_EventType EventType, | ||||||
|  | 	/*! [in] .*/ | ||||||
|  | 	const void *Event, | ||||||
|  | 	/*! [in] .*/ | ||||||
|  | 	void *Cookie); | ||||||
|  |  | ||||||
|  | #endif /* CALLBACK_H */ | ||||||
| @@ -1,9 +1,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef DISCOVERY_H | #ifndef DISCOVERY_H | ||||||
| #define DISCOVERY_H | #define DISCOVERY_H | ||||||
|  |  | ||||||
|  |  | ||||||
| /*! | /*! | ||||||
|  * \file |  * \file | ||||||
|  * |  * | ||||||
| @@ -33,6 +31,5 @@ | |||||||
|  |  | ||||||
| #include "TemplateInclude.h" | #include "TemplateInclude.h" | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* DISCOVERY_H */ | #endif /* DISCOVERY_H */ | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										145
									
								
								upnp/inc/upnp.h
									
									
									
									
									
								
							
							
						
						
									
										145
									
								
								upnp/inc/upnp.h
									
									
									
									
									
								
							| @@ -452,117 +452,6 @@ typedef int  UpnpClient_Handle; | |||||||
|  */ |  */ | ||||||
| typedef int  UpnpDevice_Handle; | typedef int  UpnpDevice_Handle; | ||||||
|  |  | ||||||
| /*! |  | ||||||
|  * \brief The reason code for an event callback. |  | ||||||
|  * |  | ||||||
|  * The \b Event parameter will be different depending on the reason for the |  | ||||||
|  * callback. The descriptions for each event type describe the contents of the |  | ||||||
|  * \b Event parameter. |  | ||||||
|  */ |  | ||||||
| enum Upnp_EventType_e { |  | ||||||
| 	/* |  | ||||||
| 	 * Control callbacks |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	/*! Received by a device when a control point issues a control |  | ||||||
| 	 * request.  The \b Event parameter contains a pointer to a \b |  | ||||||
| 	 * UpnpActionRequest structure containing the action.  The application |  | ||||||
| 	 * stores the results of the action in this structure. */ |  | ||||||
| 	UPNP_CONTROL_ACTION_REQUEST, |  | ||||||
|  |  | ||||||
| 	/*! A \b UpnpSendActionAsync call completed. The \b Event |  | ||||||
| 	 * parameter contains a pointer to a \b UpnpActionComplete structure |  | ||||||
| 	 * with the results of the action.  */ |  | ||||||
| 	UPNP_CONTROL_ACTION_COMPLETE, |  | ||||||
|  |  | ||||||
| 	/*! Received by a device when a query for a single service variable |  | ||||||
| 	 * arrives.  The \b Event parameter contains a pointer to a \b |  | ||||||
| 	 * UpnpStateVarRequest structure containing the name of the variable |  | ||||||
| 	 * and value.  */ |  | ||||||
| 	UPNP_CONTROL_GET_VAR_REQUEST, |  | ||||||
|  |  | ||||||
| 	/*! A \b UpnpGetServiceVarStatus call completed. The \b Event |  | ||||||
| 	 * parameter contains a pointer to a \b UpnpStateVarComplete structure |  | ||||||
| 	 * containing the value for the variable.  */ |  | ||||||
| 	UPNP_CONTROL_GET_VAR_COMPLETE, |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Discovery callbacks |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	/*! Received by a control point when a new device or service is available.   |  | ||||||
| 	 * The \b Event parameter contains a pointer to a \b |  | ||||||
| 	 * UpnpDiscovery structure with the information about the device |  | ||||||
| 	 * or service.  */ |  | ||||||
| 	UPNP_DISCOVERY_ADVERTISEMENT_ALIVE, |  | ||||||
|  |  | ||||||
| 	/*! Received by a control point when a device or service shuts down. The \b |  | ||||||
| 	 * Event parameter contains a pointer to a \b UpnpDiscovery |  | ||||||
| 	 * structure containing the information about the device or |  | ||||||
| 	 * service.  */ |  | ||||||
| 	UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE, |  | ||||||
|  |  | ||||||
| 	/*! Received by a control point when a matching device or service responds. |  | ||||||
| 	 * The \b Event parameter contains a pointer to a \b |  | ||||||
| 	 * UpnpDiscovery structure containing the information about |  | ||||||
| 	 * the reply to the search request.  */ |  | ||||||
| 	UPNP_DISCOVERY_SEARCH_RESULT, |  | ||||||
|  |  | ||||||
| 	/*! Received by a control point when the search timeout expires.  The |  | ||||||
| 	 * SDK generates no more callbacks for this search after this  |  | ||||||
| 	 * event.  The \b Event parameter is \c NULL.  */ |  | ||||||
| 	UPNP_DISCOVERY_SEARCH_TIMEOUT, |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Eventing callbacks |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	/*! Received by a device when a subscription arrives. |  | ||||||
| 	 * The \b Event parameter contains a pointer to a \b |  | ||||||
| 	 * UpnpSubscriptionRequest structure.  At this point, the |  | ||||||
| 	 * subscription has already been accepted.  \b UpnpAcceptSubscription |  | ||||||
| 	 * needs to be called to confirm the subscription and transmit the |  | ||||||
| 	 * initial state table.  This can be done during this callback.  The SDK |  | ||||||
| 	 * generates no events for a subscription unless the device  |  | ||||||
| 	 * application calls \b UpnpAcceptSubscription. |  | ||||||
| 	 */ |  | ||||||
| 	UPNP_EVENT_SUBSCRIPTION_REQUEST, |  | ||||||
|  |  | ||||||
| 	/*! Received by a control point when an event arrives. The \b |  | ||||||
| 	 * Event parameter contains a \b UpnpEvent structure |  | ||||||
| 	 * with the information about the event.  */ |  | ||||||
| 	UPNP_EVENT_RECEIVED, |  | ||||||
|  |  | ||||||
| 	/*! A \b UpnpRenewSubscriptionAsync call completed. The status of |  | ||||||
| 	 * the renewal is in the \b Event parameter as a \b |  | ||||||
| 	 * Upnp_Event_Subscription structure.  */ |  | ||||||
| 	UPNP_EVENT_RENEWAL_COMPLETE, |  | ||||||
|  |  | ||||||
| 	/*! A \b UpnpSubscribeAsync call completed. The status of the |  | ||||||
| 	 * subscription is in the \b Event parameter as a \b |  | ||||||
| 	 * Upnp_Event_Subscription structure.  */ |  | ||||||
| 	UPNP_EVENT_SUBSCRIBE_COMPLETE, |  | ||||||
|  |  | ||||||
| 	/*! A \b UpnpUnSubscribeAsync call completed. The status of the |  | ||||||
| 	 * subscription is in the \b Event parameter as a \b |  | ||||||
| 	 * UpnpEventSubscribe structure.  */ |  | ||||||
| 	UPNP_EVENT_UNSUBSCRIBE_COMPLETE, |  | ||||||
|  |  | ||||||
| 	/*! The auto-renewal of a client subscription failed.    |  | ||||||
| 	 * The \b Event parameter is a \b UpnpEventSubscribe structure  |  | ||||||
| 	 * with the error code set appropriately. The subscription is no longer  |  | ||||||
| 	 * valid. */ |  | ||||||
| 	UPNP_EVENT_AUTORENEWAL_FAILED, |  | ||||||
|  |  | ||||||
| 	/*! A client subscription has expired. This will only occur  |  | ||||||
| 	 * if auto-renewal of subscriptions is disabled. |  | ||||||
| 	 * The \b Event parameter is a \b UpnpEventSubscribe |  | ||||||
| 	 * structure. The subscription is no longer valid. */ |  | ||||||
| 	UPNP_EVENT_SUBSCRIPTION_EXPIRED |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| typedef enum Upnp_EventType_e Upnp_EventType; |  | ||||||
|  |  | ||||||
| /*! | /*! | ||||||
|  * \brief Holds the subscription identifier for a subscription between a |  * \brief Holds the subscription identifier for a subscription between a | ||||||
|  * client and a device. |  * client and a device. | ||||||
| @@ -618,39 +507,7 @@ enum Upnp_DescType_e { | |||||||
|  |  | ||||||
| typedef enum Upnp_DescType_e Upnp_DescType; | typedef enum Upnp_DescType_e Upnp_DescType; | ||||||
|  |  | ||||||
|  | #include "Callback.h" | ||||||
| /*! |  | ||||||
|  *  All callback functions share the same prototype, documented below. |  | ||||||
|  *  Note that any memory passed to the callback function |  | ||||||
|  *  is valid only during the callback and should be copied if it |  | ||||||
|  *  needs to persist.  This callback function needs to be thread |  | ||||||
|  *  safe.  The context of the callback is always on a valid thread  |  | ||||||
|  *  context and standard synchronization methods can be used.  Note,  |  | ||||||
|  *  however, because of this the callback cannot call SDK functions |  | ||||||
|  *  unless explicitly noted. |  | ||||||
|  * |  | ||||||
|  *  \verbatim |  | ||||||
|       int CallbackFxn(Upnp_EventType EventType, void *Event, void *Cookie); |  | ||||||
|     \endverbatim  |  | ||||||
|  * |  | ||||||
|  *  where \b EventType is the event that triggered the callback,  |  | ||||||
|  *  \b Event is a structure that denotes event-specific information for that |  | ||||||
|  *  event, and \b Cookie is the user data passed when the callback was |  | ||||||
|  *  registered. |  | ||||||
|  * |  | ||||||
|  *  See \b Upnp_EventType for more information on the callback values and |  | ||||||
|  *  the associated \b Event parameter.   |  | ||||||
|  * |  | ||||||
|  *  The return value of the callback is currently ignored. It may be used |  | ||||||
|  *  in the future to communicate results back to the SDK. |  | ||||||
|  */ |  | ||||||
| typedef int (*Upnp_FunPtr)( |  | ||||||
| 	/*! [in] .*/ |  | ||||||
| 	Upnp_EventType EventType, |  | ||||||
| 	/*! [in] .*/ |  | ||||||
| 	void *Event, |  | ||||||
| 	/*! [in] .*/ |  | ||||||
| 	void *Cookie); |  | ||||||
|  |  | ||||||
| /* @} Constants and Types */ | /* @} Constants and Types */ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -320,7 +320,7 @@ void SampleUtil_PrintEventType(Upnp_EventType S) | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| int SampleUtil_PrintEvent(Upnp_EventType EventType, void *Event) | int SampleUtil_PrintEvent(Upnp_EventType EventType, const void *Event) | ||||||
| { | { | ||||||
| 	ithread_mutex_lock(&display_mutex); | 	ithread_mutex_lock(&display_mutex); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -128,7 +128,7 @@ int SampleUtil_PrintEvent( | |||||||
| 	/*! [in] The type of callback event. */ | 	/*! [in] The type of callback event. */ | ||||||
| 	Upnp_EventType EventType,  | 	Upnp_EventType EventType,  | ||||||
| 	/*! [in] The callback event structure. */ | 	/*! [in] The callback event structure. */ | ||||||
| 	void *Event); | 	const void *Event); | ||||||
|  |  | ||||||
| /*! | /*! | ||||||
|  * \brief This routine finds the first occurance of a service in a DOM |  * \brief This routine finds the first occurance of a service in a DOM | ||||||
|   | |||||||
| @@ -986,7 +986,7 @@ void TvCtrlPointHandleGetVar( | |||||||
|  *   Cookie -- Optional data specified during callback registration |  *   Cookie -- Optional data specified during callback registration | ||||||
|  * |  * | ||||||
|  ********************************************************************************/ |  ********************************************************************************/ | ||||||
| int TvCtrlPointCallbackEventHandler(Upnp_EventType EventType, void *Event, void *Cookie) | int TvCtrlPointCallbackEventHandler(Upnp_EventType EventType, const void *Event, void *Cookie) | ||||||
| { | { | ||||||
| 	int errCode = 0; | 	int errCode = 0; | ||||||
|  |  | ||||||
| @@ -995,7 +995,7 @@ int TvCtrlPointCallbackEventHandler(Upnp_EventType EventType, void *Event, void | |||||||
| 	/* SSDP Stuff */ | 	/* SSDP Stuff */ | ||||||
| 	case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE: | 	case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE: | ||||||
| 	case UPNP_DISCOVERY_SEARCH_RESULT: { | 	case UPNP_DISCOVERY_SEARCH_RESULT: { | ||||||
| 		UpnpDiscovery *d_event = (UpnpDiscovery *)Event; | 		const UpnpDiscovery *d_event = (UpnpDiscovery *)Event; | ||||||
| 		IXML_Document *DescDoc = NULL; | 		IXML_Document *DescDoc = NULL; | ||||||
| 		const char *location = NULL; | 		const char *location = NULL; | ||||||
| 		int errCode = UpnpDiscovery_get_ErrCode(d_event); | 		int errCode = UpnpDiscovery_get_ErrCode(d_event); | ||||||
|   | |||||||
| @@ -166,7 +166,7 @@ void TvStateUpdate( | |||||||
|  |  | ||||||
| void	TvCtrlPointHandleEvent(const char *, int, IXML_Document *);  | void	TvCtrlPointHandleEvent(const char *, int, IXML_Document *);  | ||||||
| void	TvCtrlPointHandleSubscribeUpdate(const char *, const Upnp_SID, int);  | void	TvCtrlPointHandleSubscribeUpdate(const char *, const Upnp_SID, int);  | ||||||
| int		TvCtrlPointCallbackEventHandler(Upnp_EventType, void *, void *); | int		TvCtrlPointCallbackEventHandler(Upnp_EventType, const void *, void *); | ||||||
|  |  | ||||||
| /*! | /*! | ||||||
|  * \brief Checks the advertisement each device in the global device list. |  * \brief Checks the advertisement each device in the global device list. | ||||||
|   | |||||||
| @@ -1308,7 +1308,7 @@ int TvDeviceDecreaseBrightness(IXML_Document *in, IXML_Document **out, const cha | |||||||
|     return IncrementBrightness(-1, in, out, errorString); |     return IncrementBrightness(-1, in, out, errorString); | ||||||
| } | } | ||||||
|  |  | ||||||
| int TvDeviceCallbackEventHandler(Upnp_EventType EventType, void *Event, void *Cookie) | int TvDeviceCallbackEventHandler(Upnp_EventType EventType, const void *Event, void *Cookie) | ||||||
| { | { | ||||||
| 	switch (EventType) { | 	switch (EventType) { | ||||||
| 	case UPNP_EVENT_SUBSCRIPTION_REQUEST: | 	case UPNP_EVENT_SUBSCRIPTION_REQUEST: | ||||||
|   | |||||||
| @@ -249,7 +249,7 @@ int TvDeviceCallbackEventHandler( | |||||||
| 	/*! [in] The type of callback event. */ | 	/*! [in] The type of callback event. */ | ||||||
| 	Upnp_EventType, | 	Upnp_EventType, | ||||||
| 	/*! [in] Data structure containing event data. */ | 	/*! [in] Data structure containing event data. */ | ||||||
| 	void *Event, | 	const void *Event, | ||||||
| 	/*! [in] Optional data specified during callback registration. */ | 	/*! [in] Optional data specified during callback registration. */ | ||||||
| 	void *Cookie); | 	void *Cookie); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,100 +1,22 @@ | |||||||
|  |  | ||||||
|  | /*! | ||||||
|  |  * \file | ||||||
|  |  * | ||||||
|  |  * \brief SSDPResultData object implementation. | ||||||
|  |  * | ||||||
|  |  * \author Marcelo Roberto Jimenez | ||||||
|  |  */ | ||||||
|  |  | ||||||
| #include "config.h" | #include "config.h" | ||||||
|  |  | ||||||
|  | #define TEMPLATE_GENERATE_SOURCE | ||||||
| #include "ssdp_ResultData.h" | #include "ssdp_ResultData.h" | ||||||
|  |  | ||||||
| #include <stdlib.h> /* for calloc(), free() */ |  | ||||||
|  |  | ||||||
| struct SSSDPResultData |  | ||||||
| { |  | ||||||
| 	UpnpDiscovery *m_param; |  | ||||||
| 	void *m_cookie; |  | ||||||
| 	Upnp_FunPtr m_ctrlpt_callback; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| SSDPResultData *SSDPResultData_new() |  | ||||||
| { |  | ||||||
| 	struct SSSDPResultData *p = calloc(1, sizeof (struct SSSDPResultData)); |  | ||||||
|  |  | ||||||
| 	p->m_param = UpnpDiscovery_new(); |  | ||||||
| #if 0 |  | ||||||
| 	p->m_cookie = NULL; |  | ||||||
| 	p->m_ctrlpt_callback = NULL; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| 	return (SSDPResultData *)p; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_delete(SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	struct SSSDPResultData *q = (struct SSSDPResultData *)p; |  | ||||||
|  |  | ||||||
| 	if (!q) return; |  | ||||||
|  |  | ||||||
| 	UpnpDiscovery_delete(q->m_param); |  | ||||||
| 	q->m_param = NULL; |  | ||||||
| 	 |  | ||||||
| 	q->m_cookie = NULL; |  | ||||||
|  |  | ||||||
| 	q->m_ctrlpt_callback = NULL; |  | ||||||
|  |  | ||||||
| 	free(p); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| SSDPResultData *SSDPResultData_dup(const SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	SSDPResultData *q = SSDPResultData_new(); |  | ||||||
| 	 |  | ||||||
| 	SSDPResultData_assign(q, p); |  | ||||||
| 	 |  | ||||||
| 	return q; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_assign(SSDPResultData *q, const SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	if (q != p) { |  | ||||||
| 		SSDPResultData_set_Param(q, SSDPResultData_get_Param(p)); |  | ||||||
| 		SSDPResultData_set_Cookie(q, SSDPResultData_get_Cookie(p)); |  | ||||||
| 		SSDPResultData_set_CtrlptCallback(q, SSDPResultData_get_CtrlptCallback(p)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| UpnpDiscovery *SSDPResultData_get_Param(const SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	return ((struct SSSDPResultData *)p)->m_param; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_set_Param(SSDPResultData *p, const UpnpDiscovery *d) |  | ||||||
| { |  | ||||||
| 	UpnpDiscovery_assign(((struct SSSDPResultData *)p)->m_param, d); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void *SSDPResultData_get_Cookie(const SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	return ((struct SSSDPResultData *)p)->m_cookie; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_set_Cookie(SSDPResultData *p, void *c) |  | ||||||
| { |  | ||||||
| 	((struct SSSDPResultData *)p)->m_cookie = c; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| Upnp_FunPtr SSDPResultData_get_CtrlptCallback(const SSDPResultData *p) |  | ||||||
| { |  | ||||||
| 	return ((struct SSSDPResultData *)p)->m_ctrlpt_callback; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_set_CtrlptCallback(SSDPResultData *p, Upnp_FunPtr f) |  | ||||||
| { |  | ||||||
| 	((struct SSSDPResultData *)p)->m_ctrlpt_callback = f; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void SSDPResultData_Callback(const SSDPResultData *p) | void SSDPResultData_Callback(const SSDPResultData *p) | ||||||
| { | { | ||||||
| 	struct SSSDPResultData *q = (struct SSSDPResultData *)p; | 	Upnp_FunPtr callback = SSDPResultData_get_CtrlptCallback(p); | ||||||
| 	q->m_ctrlpt_callback( | 	callback(UPNP_DISCOVERY_SEARCH_RESULT, | ||||||
| 		UPNP_DISCOVERY_SEARCH_RESULT, | 		SSDPResultData_get_Param(p), | ||||||
| 		q->m_param, | 		SSDPResultData_get_Cookie(p)); | ||||||
| 		q->m_cookie); |  | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,42 +1,43 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef SSDP_RESULTDATA_H | #ifndef SSDP_RESULTDATA_H | ||||||
| #define SSDP_RESULTDATA_H | #define SSDP_RESULTDATA_H | ||||||
|  |  | ||||||
|  | /*! | ||||||
|  |  * \file | ||||||
|  |  * | ||||||
|  |  * \brief SSDPResultData object declararion. | ||||||
|  |  * | ||||||
|  |  * \author Marcelo Roberto Jimenez | ||||||
|  |  */ | ||||||
|  |  | ||||||
| /** Structure to contain Discovery response */ | /******************************************************************************/ | ||||||
| typedef struct s_SSDPResultData SSDPResultData; |  | ||||||
|  |  | ||||||
|  | #ifdef TEMPLATE_GENERATE_SOURCE | ||||||
|  | #undef TEMPLATE_GENERATE_SOURCE | ||||||
|  |  | ||||||
| #include "Discovery.h" /* for UpnpDiscovery */ | 	#include "Discovery.h" /* for UpnpDiscovery */ | ||||||
| #include "upnp.h"      /* for Upnp_FunPtr */ |  | ||||||
|  |  | ||||||
|  | #define TEMPLATE_GENERATE_SOURCE | ||||||
|  | #else /* TEMPLATE_GENERATE_SOURCE */ | ||||||
|  |  | ||||||
| /** Constructor */ | 	#include "Discovery.h" /* for UpnpDiscovery */ | ||||||
| SSDPResultData *SSDPResultData_new(); |  | ||||||
|  |  | ||||||
| /** Destructor */ | #endif /* TEMPLATE_GENERATE_SOURCE */ | ||||||
| void SSDPResultData_delete(SSDPResultData *p); |  | ||||||
|  |  | ||||||
| /** Copy Constructor */ | /******************************************************************************/ | ||||||
| SSDPResultData *SSDPResultData_dup(const SSDPResultData *p); |  | ||||||
|  |  | ||||||
| /** Assignment operator */ | #include "Callback.h" /* for Upnp_FunPtr */ | ||||||
| void SSDPResultData_assign(SSDPResultData *q, const SSDPResultData *p); |  | ||||||
|  |  | ||||||
| /**  */ | #define CLASS SSDPResultData | ||||||
| UpnpDiscovery *SSDPResultData_get_Param(const SSDPResultData *p); |  | ||||||
| void SSDPResultData_set_Param(SSDPResultData *p, const UpnpDiscovery *d); |  | ||||||
|  |  | ||||||
| /**  */ | #define EXPAND_CLASS_MEMBERS(CLASS) \ | ||||||
| void *SSDPResultData_get_Cookie(const SSDPResultData *p); | 	EXPAND_CLASS_MEMBER_OBJECT(CLASS, Param, UpnpDiscovery) \ | ||||||
| void SSDPResultData_set_Cookie(SSDPResultData *p, void *c); | 	EXPAND_CLASS_MEMBER_INT(CLASS, Cookie, void *) \ | ||||||
|  | 	EXPAND_CLASS_MEMBER_INT(CLASS, CtrlptCallback, Upnp_FunPtr) \ | ||||||
|  |  | ||||||
| /**  */ | #include "TemplateInclude.h" | ||||||
| Upnp_FunPtr SSDPResultData_get_CtrlptCallback(const SSDPResultData *p); |  | ||||||
| void SSDPResultData_set_CtrlptCallback(SSDPResultData *p, Upnp_FunPtr f); |  | ||||||
|  |  | ||||||
| /** */ | /*! */ | ||||||
| void SSDPResultData_Callback(const SSDPResultData *p); | void SSDPResultData_Callback(const SSDPResultData *p); | ||||||
|  |  | ||||||
| #endif /* SSDP_RESULTDATA_H */ | #endif /* SSDP_RESULTDATA_H */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Marcelo Roberto Jimenez
					Marcelo Roberto Jimenez