equal
deleted
inserted
replaced
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include "gesturehelpereventsender.h" |
18 #include "gesturehelpereventsender.h" |
19 #include "gesture.h" |
19 #include "gesture.h" |
20 #include "gestureevent.h" |
|
21 |
20 |
22 using namespace RT_GestureHelper; |
21 using namespace RT_GestureHelper; |
23 |
22 |
24 const TInt KEventsQueueGranularity = 4; |
23 const TInt KEventsQueueGranularity = 4; |
25 |
24 |
37 CActiveScheduler::Add(this); |
36 CActiveScheduler::Add(this); |
38 } |
37 } |
39 |
38 |
40 CGestureEventSender::~CGestureEventSender() |
39 CGestureEventSender::~CGestureEventSender() |
41 { |
40 { |
|
41 if (IsActive()) |
|
42 { |
|
43 Cancel(); |
|
44 } |
|
45 |
42 iEvents.Close(); |
46 iEvents.Close(); |
43 iEvents.ResetAndDestroy(); |
|
44 } |
47 } |
45 |
48 |
46 TInt CGestureEventSender::AddEvent(const CGestureEvent* aGestureEvent) |
49 TInt CGestureEventSender::AddEvent(const TGestureEvent& aGestureEvent) |
47 { |
50 { |
48 iEvents.Append(aGestureEvent); |
51 iEvents.Append(aGestureEvent); |
49 if (iState != EBusy) |
52 if (iState != EBusy) |
50 { |
53 { |
51 iState = EEventsReady; |
54 iState = EEventsReady; |
63 TRequestStatus* status = &iStatus; |
66 TRequestStatus* status = &iStatus; |
64 User::RequestComplete(status, KErrNone); |
67 User::RequestComplete(status, KErrNone); |
65 SetActive(); |
68 SetActive(); |
66 } |
69 } |
67 |
70 |
68 |
|
69 void CGestureEventSender::RunL() |
71 void CGestureEventSender::RunL() |
70 { |
72 { |
71 switch (iState) |
73 switch (iState) |
72 { |
74 { |
73 case EEventsReady: |
75 case EEventsReady: |
75 if (iEvents.Count() > 0) |
77 if (iEvents.Count() > 0) |
76 { |
78 { |
77 TInt count = iEvents.Count(); |
79 TInt count = iEvents.Count(); |
78 for (int i = 0; i < count; i++) |
80 for (int i = 0; i < count; i++) |
79 { |
81 { |
80 CGestureEvent* gst = iEvents[i]; |
82 TGestureEvent& gst = iEvents[i]; |
81 EmitEventL(*gst); |
83 EmitEventL(gst); |
82 delete gst; |
|
83 } |
84 } |
84 } |
85 } |
85 iEvents.Reset(); |
86 iEvents.Reset(); |
86 iState = ENoEvents; |
87 iState = ENoEvents; |
87 Complete(); |
88 Complete(); |
88 break; |
89 break; |
89 } |
90 } |
90 } |
91 } |
91 } |
92 } |
92 |
93 |
93 |
94 void CGestureEventSender::EmitEventL( const TGestureEvent& aGesture ) |
94 void CGestureEventSender::EmitEventL( const CGestureEvent& aGesture ) |
|
95 { |
95 { |
96 iState = EBusy; |
96 iState = EBusy; |
97 iObserver.HandleGestureL(aGesture); |
97 iObserver.HandleGestureL(aGesture); |
98 iState = EEventsReady; |
98 iState = EEventsReady; |
99 } |
99 } |
100 |
100 |
101 TInt CGestureEventSender::RunError(TInt aError) |
101 TInt CGestureEventSender::RunError(TInt aError) |
102 { |
102 { |
|
103 iEvents.Reset(); |
103 return aError; |
104 return aError; |
104 } |
105 } |
105 |
106 |
106 void CGestureEventSender::DoCancel() |
107 void CGestureEventSender::DoCancel() |
107 { |
108 { |