Revision 4bd3e852 server/include/RSB/AnimationCallbackWrapper.h
server/include/RSB/AnimationCallbackWrapper.h | ||
---|---|---|
31 | 31 |
#include "Animation.h" |
32 | 32 |
|
33 | 33 |
//callback handler incoming animation requests: |
34 |
class AnimationCallbackWrapper : public CallbackWrapper<rst::robot::Animation>{
|
|
34 |
class AnimationCallbackWrapper : public CallbackWrapper<rst::animation::HeadAnimation>{
|
|
35 | 35 |
public: |
36 | 36 |
AnimationCallbackWrapper(Middleware *mw) : CallbackWrapper(mw){} |
37 | 37 |
|
38 |
void call(const std::string& method_name, boost::shared_ptr<rst::robot::Animation> input){
|
|
38 |
void call(const std::string& method_name, boost::shared_ptr<rst::animation::HeadAnimation> input){
|
|
39 | 39 |
printf("> incomint animation (method = %s)\n",method_name.c_str()); |
40 | 40 |
|
41 | 41 |
//fetch animation passed by rsb: |
42 |
rst::robot::Animation *rst_ani = input.get();
|
|
42 |
rst::animation::HeadAnimation *rst_ani = input.get();
|
|
43 | 43 |
boost::shared_ptr<Animation> ani(new Animation()); |
44 | 44 |
|
45 |
switch ((int) rst_ani->target()){ |
|
46 |
case(rst_ani->IDLE): ani->target = Animation::IDLE; break; |
|
47 |
case(rst_ani->HEAD_NOD): ani->target = Animation::HEAD_NOD; break; |
|
48 |
case(rst_ani->HEAD_SHAKE): ani->target = Animation::HEAD_SHAKE; break; |
|
49 |
case(rst_ani->EYEBLINK_L): ani->target = Animation::EYEBLINK_L; break; |
|
50 |
case(rst_ani->EYEBLINK_R): ani->target = Animation::EYEBLINK_R; break; |
|
51 |
case(rst_ani->EYEBLINK_BOTH):ani->target = Animation::EYEBLINK_BOTH; break; |
|
52 |
case(rst_ani->EYEBROWS_RAISE):ani->target = Animation::EYEBROWS_RAISE;break; |
|
53 |
case(rst_ani->EYEBROWS_LOWER):ani->target = Animation::EYEBROWS_LOWER;break; |
|
45 |
switch ((int) rst_ani->animation()){ |
|
46 |
case(rst_ani->IDLE): ani->target = Animation::IDLE; break; |
|
47 |
case(rst_ani->HEAD_NOD): ani->target = Animation::HEAD_NOD; break; |
|
48 |
case(rst_ani->HEAD_SHAKE): ani->target = Animation::HEAD_SHAKE; break; |
|
49 |
case(rst_ani->EYEBLINK_LEFT): ani->target = Animation::EYEBLINK_L; break; |
|
50 |
case(rst_ani->EYEBLINK_RIGHT): ani->target = Animation::EYEBLINK_R; break; |
|
51 |
case(rst_ani->EYEBLINK_BOTH): ani->target = Animation::EYEBLINK_BOTH; break; |
|
52 |
case(rst_ani->EYEBROWS_RAISE): ani->target = Animation::EYEBROWS_RAISE;break; |
|
53 |
case(rst_ani->EYEBROWS_LOWER): ani->target = Animation::EYEBROWS_LOWER;break; |
|
54 |
case(rst_ani->ENGAGEMENT_LEFT): ani->target = Animation::ENGAGEMENT_LEFT;break; |
|
55 |
case(rst_ani->ENGAGEMENT_RIGHT): ani->target = Animation::ENGAGEMENT_RIGHT;break; |
|
54 | 56 |
default: |
55 | 57 |
ani->target = Animation::IDLE; |
56 |
printf("> unhandled animatin target %d\n",(int)rst_ani->target());
|
|
58 |
printf("> unhandled animatin target %d\n",(int)rst_ani->animation());
|
|
57 | 59 |
throw std::runtime_error("AnimationCallback: invalid animation id"); |
58 | 60 |
return; |
59 | 61 |
} |
60 | 62 |
ani->repetitions = rst_ani->repetitions(); |
61 | 63 |
ani->duration_each = rst_ani->duration_each(); |
62 |
ani->scale = rst_ani->scale(); |
|
64 |
ani->scale = rst_ani->emphasis_scale();
|
|
63 | 65 |
|
64 | 66 |
printf("> new Animation: %s\n", ani->as_string().c_str()); |
65 | 67 |
|
Also available in: Unified diff