Blame src/streamwidget.h

Packit 192b03
/***
Packit 192b03
  This file is part of pavucontrol.
Packit 192b03
Packit 192b03
  Copyright 2006-2008 Lennart Poettering
Packit 192b03
  Copyright 2009 Colin Guthrie
Packit 192b03
Packit 192b03
  pavucontrol is free software; you can redistribute it and/or modify
Packit 192b03
  it under the terms of the GNU General Public License as published by
Packit 192b03
  the Free Software Foundation, either version 2 of the License, or
Packit 192b03
  (at your option) any later version.
Packit 192b03
Packit 192b03
  pavucontrol is distributed in the hope that it will be useful, but
Packit 192b03
  WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 192b03
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Packit 192b03
  General Public License for more details.
Packit 192b03
Packit 192b03
  You should have received a copy of the GNU General Public License
Packit 192b03
  along with pavucontrol. If not, see <http://www.gnu.org/licenses/>.
Packit 192b03
***/
Packit 192b03
Packit 192b03
#ifndef streamwidget_h
Packit 192b03
#define streamwidget_h
Packit 192b03
Packit 192b03
#include "pavucontrol.h"
Packit 192b03
Packit 192b03
#include "minimalstreamwidget.h"
Packit 192b03
Packit 192b03
class MainWindow;
Packit 192b03
class ChannelWidget;
Packit 192b03
Packit 192b03
class StreamWidget : public MinimalStreamWidget {
Packit 192b03
public:
Packit 192b03
    StreamWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& x);
Packit 192b03
    void init(MainWindow* mainWindow);
Packit 192b03
Packit 192b03
    void setChannelMap(const pa_channel_map &m, bool can_decibel);
Packit 192b03
    void setVolume(const pa_cvolume &volume, bool force = false);
Packit 192b03
    virtual void updateChannelVolume(int channel, pa_volume_t v);
Packit 192b03
Packit 192b03
    void hideLockedChannels(bool hide = true);
Packit 192b03
Packit 192b03
    Gtk::ToggleButton *lockToggleButton, *muteToggleButton;
Packit 192b03
    Gtk::Label *directionLabel;
Packit 192b03
    Gtk::Button *deviceButton;
Packit 192b03
Packit 192b03
    pa_channel_map channelMap;
Packit 192b03
    pa_cvolume volume;
Packit 192b03
    pa_stream *peak;
Packit 192b03
Packit 192b03
    ChannelWidget *channelWidgets[PA_CHANNELS_MAX];
Packit 192b03
Packit 192b03
    virtual void onMuteToggleButton();
Packit 192b03
    virtual void onLockToggleButton();
Packit 192b03
    virtual void onDeviceChangePopup();
Packit 192b03
    virtual bool onContextTriggerEvent(GdkEventButton*);
Packit 192b03
Packit 192b03
    sigc::connection timeoutConnection;
Packit 192b03
Packit 192b03
    bool timeoutEvent();
Packit 192b03
Packit 192b03
    virtual void executeVolumeUpdate();
Packit 192b03
    virtual void onKill();
Packit 192b03
Packit 192b03
protected:
Packit 192b03
    MainWindow* mpMainWindow;
Packit 192b03
Packit 192b03
    Gtk::Menu contextMenu;
Packit 192b03
    Gtk::MenuItem terminate;
Packit 192b03
};
Packit 192b03
Packit 192b03
#endif