Subversion Repositories freemyipod

Rev

Rev 509 | Rev 820 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 509 Rev 686
Line 92... Line 92...
92
        mutex_lock(&data.statemutex, TIMEOUT_BLOCK);
92
        mutex_lock(&data.statemutex, TIMEOUT_BLOCK);
93
        if (data.canceled) goto cancel;
93
        if (data.canceled) goto cancel;
94
        if (data.finished) goto finished;
94
        if (data.finished) goto finished;
95
        redrawneeded |= data.redrawneeded;
95
        redrawneeded |= data.redrawneeded;
96
        data.redrawneeded = false;
96
        data.redrawneeded = false;
97
        mutex_unlock(&data.statemutex);
-
 
98
        if ((long)(lasttick + info->tickinterval - USEC_TIMER) < 0)
97
        if ((long)(lasttick + info->tickinterval - USEC_TIMER) < 0)
99
        {
98
        {
100
            if (info->actionhandler->handletick)
99
            if (info->actionhandler->handletick)
101
                switch (info->actionhandler->handletick(&data))
100
                switch (info->actionhandler->handletick(&data))
102
                {
101
                {
Line 108... Line 107...
108
                case CHOOSER_RESULT_FINISHED:
107
                case CHOOSER_RESULT_FINISHED:
109
                    goto finished;
108
                    goto finished;
110
                }
109
                }
111
            lasttick = USEC_TIMER;
110
            lasttick = USEC_TIMER;
112
        }
111
        }
-
 
112
        mutex_unlock(&data.statemutex);
113
        if (redrawneeded) redrawneeded = info->renderer->render(&data) == CHOOSER_RESULT_REDRAW;
113
        if (redrawneeded) redrawneeded = info->renderer->render(&data) == CHOOSER_RESULT_REDRAW;
114
    }
114
    }
115
cancel:
115
cancel:
116
    data.selected = NULL;
116
    data.selected = NULL;
117
finished:
117
finished:
118
    rc = data.selected;
118
    rc = data.selected;
-
 
119
    mutex_unlock(&data.statemutex);
119
destroy_buttonhook:
120
destroy_buttonhook:
120
    button_unregister_handler(hook);
121
    button_unregister_handler(hook);
121
destroy_renderer:
122
destroy_renderer:
122
    if (info->renderer->destroy)
123
    if (info->renderer->destroy)
123
        info->renderer->destroy(&data);
124
        info->renderer->destroy(&data);