コード例 #1
0
void MediaStreamPrivate::removeRemoteTrack(MediaStreamTrackPrivate* track)
{
    if (m_client)
        m_client->removeRemoteTrack(track);
    else
        removeTrack(track);
}
コード例 #2
0
ファイル: SequenceCursor.cpp プロジェクト: bketech/element
void
SequenceCursor::removeTrack (const SequencerTrack* track)
{
    const int index = track->index();
    if (index >= 0 && uint32_t (index) < numTracks())
        removeTrack ((uint32_t) index);
}
コード例 #3
0
void QTGTrackListModel::removeTrack(QAbstractRangeModel *track){
    if ( !track )
        return;
    int index = m_items.indexOf(track);
    if ( index == -1 )
        return;
    removeTrack(index);
}
コード例 #4
0
ファイル: MediaStream.cpp プロジェクト: feel2d/webkit
void MediaStream::removeRemoteTrack(MediaStreamTrackPrivate* privateTrack)
{
    ASSERT(privateTrack);
    if (!active())
        return;

    RefPtr<MediaStreamTrack> track = getTrackById(privateTrack->id());
    if (removeTrack(track))
        scheduleDispatchEvent(MediaStreamTrackEvent::create(eventNames().removetrackEvent, false, false, track.release()));
}
コード例 #5
0
ファイル: MediaStream.cpp プロジェクト: feel2d/webkit
void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionCode& ec)
{
    if (!active()) {
        ec = INVALID_STATE_ERR;
        return;
    }

    if (!prpTrack) {
        ec = TYPE_MISMATCH_ERR;
        return;
    }

    if (removeTrack(prpTrack)) {
        for (auto observer = m_observers.begin(), end = m_observers.end(); observer != end; ++observer)
            (*observer)->didAddOrRemoveTrack();
    }
}
コード例 #6
0
ファイル: playlist.cpp プロジェクト: Nerobrain/pulsar
void Playlist::createMenus()
{
    m_localsMenu = new QMenu(tr("Add to list"));
    m_listMenu = new QMenu(m_listWidget);

    /* Popup Track actions */

    // Add to Queue
    QAction *toQueueA = new QAction(tr("Add to queue"), this);
    toQueueA->setShortcut(QKeySequence("Q"));
    m_listMenu->addAction(toQueueA);
    connect(toQueueA, SIGNAL(triggered()), this, SLOT(addToQueue()));


    // Add to library
    m_toLibraryA = new QAction(tr("Add to Library"), this);
    m_listMenu->addAction(m_toLibraryA);
    connect(m_toLibraryA, SIGNAL(triggered()), this, SLOT(addToLibrary()));

    // Download track
    QAction *downloadA = new QAction(tr("Download"), this);;
//    downloadA->setShortcut(QKeySequence("D"));
    m_listMenu->addAction(downloadA);
    connect(downloadA, SIGNAL(triggered()), this, SLOT(downloadTrack()));

    // Remove track
    QAction *removeA = new QAction(tr("Remove"), this);;
    removeA->setShortcut(QKeySequence::Delete);
    m_listMenu->addAction(removeA);
    connect(removeA, SIGNAL(triggered()), this, SLOT(removeTrack()));


    // Set 'add to local list' menu for all lists except local list
    if(m_listType != PlaylistWidget::LocalList)
        m_listMenu->addMenu(m_localsMenu);

    m_listWidget->setMenu(m_listMenu);
}
コード例 #7
0
ファイル: playlist.cpp プロジェクト: Nerobrain/pulsar
Playlist::Playlist(PlaylistWidget::ListTypes listType, QString title, quint64 hash, QObject *parent) :
    QObject(parent)
{
    m_listType = listType;
    m_sTitle = title;
    m_bCustomTitle = false;

    m_Settings = Settings::instance();
    connect(m_Settings, SIGNAL(changed()), SLOT(onSettingsChanged()));

    m_bLoadingState = false;
    m_bShuffleList = m_Settings->getValue("player/shuffle").toInt() > 1 ? true : false;

    m_LastTrack = 0;

    m_bLoadMeta = false;
    m_bUseMeta = false;

    m_bTitleByContent = m_Settings->getValue("playlist/tabs_by_content").toBool();

    m_Auth = Auth::instance();
    connect(m_Auth, SIGNAL(authComplete()), SLOT(update()));


    // Set hash
    if(hash == 0) {
        QDateTime *time = new QDateTime(QDateTime::currentDateTime());
        m_Hash = time->toMSecsSinceEpoch();
        m_bNewly = true;
    } else {
        m_Hash = hash;
        m_bNewly = false;
    }

    // Create playlist widget
    m_listWidget = new PlaylistWidget(m_listType);
    connect(this, SIGNAL(trackAdded()), m_listWidget, SLOT(trackAdded()));
    connect(m_listWidget, SIGNAL(trackActivate(Track*)), SLOT(trackActivate(Track*)));

    // Connect key events
    connect(m_listWidget, SIGNAL(skQueue()), SLOT(addToQueue()));
    connect(m_listWidget, SIGNAL(skRemove()), SLOT(removeTrack()));
    connect(m_listWidget, SIGNAL(skDownload()), SLOT(downloadTrack()));

    // Create object of parser
    m_Parser = new Parser(this);
    connect(m_Parser, SIGNAL(newTrack(Track*)), SLOT(addTrack(Track*)));
    connect(m_Parser, SIGNAL(busy()), SLOT(parserBusy()));
    connect(m_Parser, SIGNAL(free()), SLOT(parserFree()));
    connect(m_Parser, SIGNAL(savePlaylist()), SLOT(save()));
    connect(m_Parser, SIGNAL(busy()), m_listWidget, SLOT(showLoading()));
    connect(m_Parser, SIGNAL(free()), m_listWidget, SLOT(hideLoading()));

    // Create actions parser
    m_vkActions = VkActions::instance();
    connect(m_vkActions, SIGNAL(message(QString,QString)), SIGNAL(message(QString,QString)));

    switch(m_listType) {
        case PlaylistWidget::Search:
            connect(m_listWidget, SIGNAL(searchChanged(QString)), SLOT(searchChanged(QString)));
            connect(m_listWidget, SIGNAL(loadMore()), m_Parser, SLOT(loadMoreResults()));
        break;
        case PlaylistWidget::AudioLib:
            connect(m_listWidget->friendsList(), SIGNAL(friendSelected(QString,QString,QString)), SLOT(librarySelected(QString,QString,QString)));
            connect(m_listWidget, SIGNAL(refresh()), SLOT(refresh()));
        break;
        case PlaylistWidget::Suggestions:
            connect(m_listWidget, SIGNAL(loadMore()), m_Parser, SLOT(loadMoreResults()));
            connect(m_listWidget, SIGNAL(refresh()), SLOT(refresh()));
        break;
        case PlaylistWidget::DbSearch:
            connect(m_listWidget, SIGNAL(searchChanged(QString)), SLOT(searchChanged(QString)));
            connect(m_listWidget, SIGNAL(newTrack(Track*)), SLOT(addTrack(Track*)));
            connect(m_listWidget, SIGNAL(clearList()), SLOT(clearList()));
        break;
    }

    m_Model = new QStandardItemModel(this);

    m_ProxyModel = new QSortFilterProxyModel(this);
    m_ProxyModel->setSourceModel(m_Model);
    m_ProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
    m_ProxyModel->setFilterKeyColumn(2);

    m_listWidget->setModel(m_ProxyModel);

    connect(m_listWidget, SIGNAL(listSearchChanged(QString)), SLOT(setListSearch(QString)));

    createMenus();

    load();

    if(type() == PlaylistWidget::AudioLib &&
       m_bNewly &&
       m_Settings->getValue("playlist/autoload_library").toBool()
       )
        librarySelected(m_Auth->vkId(), "0", tr("My Library"));

    // Actions on newly created plalylists
    if(m_bNewly) {
        switch(m_listType) {
            case PlaylistWidget::Search:
                m_listWidget->focusOnSearch();
            break;
            case PlaylistWidget::AudioLib:
            if(m_Settings->getValue("playlist/autoload_library").toBool())
                librarySelected(m_Auth->vkId(), "0", tr("My Library"));
            break;
            case PlaylistWidget::Suggestions:
                refresh();
            break;
            case PlaylistWidget::DbSearch:
                // Unused
            break;
        }
    }
}
コード例 #8
0
ファイル: qtractorTrackCommand.cpp プロジェクト: EQ4/qtractor
// Track-removal command methods.
bool qtractorRemoveTrackCommand::redo (void)
{
	return removeTrack();
}
コード例 #9
0
ファイル: qtractorTrackCommand.cpp プロジェクト: EQ4/qtractor
bool qtractorAddTrackCommand::undo (void)
{
	return removeTrack();
}