Ticket #13845: 0003-Add-PlaylistTrackCount-and-PlaylistTrackTitle-to-scr.patch

File 0003-Add-PlaylistTrackCount-and-PlaylistTrackTitle-to-scr.patch, 5.2 KB (added by owenca, 6 years ago)
  • src/apps/mediaplayer/MainWin.cpp

    From fec9e799e4b4fd11d651f03ef91361e03175b693 Mon Sep 17 00:00:00 2001
    From: Owen <owenca@users.noreply.github.com>
    Date: Fri, 8 Dec 2017 06:38:31 +0000
    Subject: [PATCH 4/4] Add PlaylistTrackCount and PlaylistTrackTitle to
     scripting
    
    PlaylistTrackCount returns the number of tacks in Playlist,
    and PlaylistTrackTitle the title of a numbered track.
    
    Also, remove B_TRANSLATE macros in scripting properties
    ---
     src/apps/mediaplayer/MainWin.cpp | 102 ++++++++++++++++++++++-----------------
     1 file changed, 59 insertions(+), 43 deletions(-)
    
    diff --git a/src/apps/mediaplayer/MainWin.cpp b/src/apps/mediaplayer/MainWin.cpp
    index b63b193..b338404 100644
    a b enum {  
    122122
    123123
    124124static property_info sPropertyInfo[] = {
    125     { B_TRANSLATE("Next"), { B_EXECUTE_PROPERTY },
     125    { "Next", { B_EXECUTE_PROPERTY },
    126126        { B_DIRECT_SPECIFIER, 0 },
    127         B_TRANSLATE("Skip to the next track."), 0
     127        "Skip to the next track.", 0
    128128    },
    129     { B_TRANSLATE("Prev"), { B_EXECUTE_PROPERTY },
     129    { "Prev", { B_EXECUTE_PROPERTY },
    130130        { B_DIRECT_SPECIFIER, 0 },
    131         B_TRANSLATE("Skip to the previous track."), 0
     131        "Skip to the previous track.", 0
    132132    },
    133     { B_TRANSLATE("Play"), { B_EXECUTE_PROPERTY },
     133    { "Play", { B_EXECUTE_PROPERTY },
    134134        { B_DIRECT_SPECIFIER, 0 },
    135         B_TRANSLATE("Start playing."), 0
     135        "Start playing.", 0
    136136    },
    137     { B_TRANSLATE("Stop"), { B_EXECUTE_PROPERTY },
     137    { "Stop", { B_EXECUTE_PROPERTY },
    138138        { B_DIRECT_SPECIFIER, 0 },
    139         B_TRANSLATE("Stop playing."), 0
     139        "Stop playing.", 0
    140140    },
    141     { B_TRANSLATE("Pause"), { B_EXECUTE_PROPERTY },
     141    { "Pause", { B_EXECUTE_PROPERTY },
    142142        { B_DIRECT_SPECIFIER, 0 },
    143         B_TRANSLATE("Pause playback."), 0
     143        "Pause playback.", 0
    144144    },
    145     { B_TRANSLATE("TogglePlaying"), { B_EXECUTE_PROPERTY },
     145    { "TogglePlaying", { B_EXECUTE_PROPERTY },
    146146        { B_DIRECT_SPECIFIER, 0 },
    147         B_TRANSLATE("Toggle pause/play."), 0
     147        "Toggle pause/play.", 0
    148148    },
    149     { B_TRANSLATE("Mute"), { B_EXECUTE_PROPERTY },
     149    { "Mute", { B_EXECUTE_PROPERTY },
    150150        { B_DIRECT_SPECIFIER, 0 },
    151         B_TRANSLATE("Toggle mute."), 0
     151        "Toggle mute.", 0
    152152    },
    153     { B_TRANSLATE("Volume"), { B_GET_PROPERTY, B_SET_PROPERTY, 0 },
     153    { "Volume", { B_GET_PROPERTY, B_SET_PROPERTY, 0 },
    154154        { B_DIRECT_SPECIFIER, 0 },
    155         B_TRANSLATE("Gets/sets the volume (0.0-2.0)."), 0,
     155        "Gets/sets the volume (0.0-2.0).", 0,
    156156        { B_FLOAT_TYPE }
    157157    },
    158     { B_TRANSLATE("URI"), { B_GET_PROPERTY, 0 },
     158    { "URI", { B_GET_PROPERTY, 0 },
    159159        { B_DIRECT_SPECIFIER, 0 },
    160         B_TRANSLATE("Gets the URI of the currently playing item."), 0,
     160        "Gets the URI of the currently playing item.", 0,
    161161        { B_STRING_TYPE }
    162162    },
    163     { B_TRANSLATE("ToggleFullscreen"), { B_EXECUTE_PROPERTY },
     163    { "ToggleFullscreen", { B_EXECUTE_PROPERTY },
    164164        { B_DIRECT_SPECIFIER, 0 },
    165         B_TRANSLATE("Toggle fullscreen."), 0
     165        "Toggle fullscreen.", 0
    166166    },
    167     { B_TRANSLATE("Duration"), { B_GET_PROPERTY, 0 },
     167    { "Duration", { B_GET_PROPERTY, 0 },
    168168        { B_DIRECT_SPECIFIER, 0 },
    169         B_TRANSLATE("Gets the duration of the currently playing item "
    170             "in microseconds."), 0,
     169        "Gets the duration of the currently playing item "
     170            "in microseconds.", 0,
    171171        { B_INT64_TYPE }
    172172    },
    173     { B_TRANSLATE("Position"), { B_GET_PROPERTY, B_SET_PROPERTY, 0 },
     173    { "Position", { B_GET_PROPERTY, B_SET_PROPERTY, 0 },
    174174        { B_DIRECT_SPECIFIER, 0 },
    175         B_TRANSLATE("Gets/sets the current playing position in microseconds."),
     175        "Gets/sets the current playing position in microseconds.",
    176176        0, { B_INT64_TYPE }
    177177    },
    178     { B_TRANSLATE("Seek"), { B_SET_PROPERTY },
     178    { "Seek", { B_SET_PROPERTY },
    179179        { B_DIRECT_SPECIFIER, 0 },
    180         B_TRANSLATE("Seek by the specified amounts of microseconds."), 0,
     180        "Seek by the specified amounts of microseconds.", 0,
    181181        { B_INT64_TYPE }
    182182    },
     183    { "PlaylistTrackCount", { B_GET_PROPERTY, 0 },
     184        { B_DIRECT_SPECIFIER, 0 },
     185        "Gets the number of tracks in Playlist.", 0,
     186        { B_INT16_TYPE }
     187    },
     188    { "PlaylistTrackTitle", { B_GET_PROPERTY, 0 },
     189        { B_INDEX_SPECIFIER, 0 },
     190        "Gets the title of the nth track in Playlist.", 0,
     191        { B_STRING_TYPE }
     192    },
    183193
    184194    { 0 }
    185195};
    MainWin::MessageReceived(BMessage* msg)  
    606616                    break;
    607617                }
    608618
     619                case 13:
     620                    result = reply.AddInt16("result", fPlaylist->CountItems());
     621                    break;
     622
     623                case 14:
     624                {
     625                    int32 i = specifier.GetInt32("index", 0);
     626                    if (i >= fPlaylist->CountItems()) {
     627                        result = B_NO_INIT;
     628                        break;
     629                    }
     630
     631                    BAutolock _(fPlaylist);
     632                    const PlaylistItem* item = fPlaylist->ItemAt(i);
     633                    result = item == NULL ? B_NO_INIT
     634                        : reply.AddString("result", item->Title());
     635                    break;
     636                }
     637
    609638                default:
    610639                    return BWindow::MessageReceived(msg);
    611640            }
    MainWin::ResolveSpecifier(BMessage* message, int32 index, BMessage* specifier,  
    13001329    int32 what, const char* property)
    13011330{
    13021331    BPropertyInfo propertyInfo(sPropertyInfo);
    1303     switch (propertyInfo.FindMatch(message, index, specifier, what, property)) {
    1304         case 0:
    1305         case 1:
    1306         case 2:
    1307         case 3:
    1308         case 4:
    1309         case 5:
    1310         case 6:
    1311         case 7:
    1312         case 8:
    1313         case 9:
    1314         case 10:
    1315         case 11:
    1316         case 12:
    1317             return this;
    1318     }
     1332    if (propertyInfo.FindMatch(message, index, specifier, what, property)
     1333        < propertyInfo.CountProperties())
     1334        return this;
    13191335
    13201336    return BWindow::ResolveSpecifier(message, index, specifier, what, property);
    13211337}