Example #1
0
static void CALLBACK tapedialog_timerproc(HWND dialog, UINT msg, UINT_PTR idevent, DWORD time)
{
    struct tape_dialog *dlg;
    int id;
    int curpos, endpos;
    char tapestatus[32];
    mess_image *img;

    dlg = get_tapedialog(dialog);
    id = dlg - tape_dialogs;

    img = image_from_devtype_and_index(IO_CASSETTE, id);

    tapecontrol_gettime(tapestatus, sizeof(tapestatus) / sizeof(tapestatus[0]),
                        img, &curpos, &endpos);

    SendMessage(dlg->slider, TBM_SETRANGEMIN, FALSE, 0);
    SendMessage(dlg->slider, TBM_SETRANGEMAX, FALSE, endpos);
    SendMessage(dlg->slider, TBM_SETPOS, TRUE, curpos);

    win_set_window_text_utf8(dlg->status, tapestatus);
}
Example #2
0
void ui_menu_mess_tape_control::populate()
{
    astring timepos;
    cassette_state state;
    int count = cassette_count();
    UINT32 flags = 0;

    if( count > 0 )
    {
        if( index == (count-1) )
            flags |= MENU_FLAG_LEFT_ARROW;
        else
            flags |= MENU_FLAG_RIGHT_ARROW;
    }

    if ((device != NULL) && (device->exists()))
    {
        double t0, t1;
        UINT32 tapeflags = 0;
        cassette_image_device* cassette = dynamic_cast<cassette_image_device*>(&device->device());

        t0 = cassette->get_position();
        t1 = cassette->get_length();

        if (t1 > 0)
        {
            if (t0 > 0)
                tapeflags |= MENU_FLAG_LEFT_ARROW;
            if (t0 < t1)
                tapeflags |= MENU_FLAG_RIGHT_ARROW;
        }

        /* name of tape */
        item_append(device->device().name(), device->filename(), flags, TAPECMD_SELECT);

        /* state */
        tapecontrol_gettime(timepos, cassette, NULL, NULL);
        state = cassette->get_state();
        item_append(
            (state & CASSETTE_MASK_UISTATE) == CASSETTE_STOPPED
            ?   "stopped"
            :   ((state & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY
                 ? ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "playing" : "(playing)")
                 : ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "recording" : "(recording)")
                ),
            timepos,
            tapeflags,
            TAPECMD_SLIDER);

        /* pause or stop */
        item_append("Pause/Stop", NULL, 0, TAPECMD_STOP);

        /* play */
        item_append("Play", NULL, 0, TAPECMD_PLAY);

        /* record */
        item_append("Record", NULL, 0, TAPECMD_RECORD);

        /* rewind */
        item_append("Rewind", NULL, 0, TAPECMD_REWIND);

        /* fast forward */
        item_append("Fast Forward", NULL, 0, TAPECMD_FAST_FORWARD);
    }
    else
    {
        /* no tape loaded */
        item_append("No Tape Image loaded", NULL, flags, NULL);
    }
}