Skip to content

Commit

Permalink
Merge branch 'master' into simple-smolt
Browse files Browse the repository at this point in the history
  • Loading branch information
Robert McNamara committed Feb 28, 2011
2 parents 54285fa + ea4e81c commit 4ecbdf5
Show file tree
Hide file tree
Showing 40 changed files with 356 additions and 254 deletions.
28 changes: 20 additions & 8 deletions mythplugins/mythbrowser/mythbrowser/main.cpp
Expand Up @@ -19,7 +19,7 @@

using namespace std;

static int handleMedia(const QString &url, const QString &, const QString &, const QString &, const QString &, int, int, int, const QString &)
static int handleMedia(const QString &url, const QString &plot, const QString &, const QString &, const QString &, int, int, int, const QString &)
{
if (url.isEmpty())
{
Expand All @@ -31,16 +31,28 @@ static int handleMedia(const QString &url, const QString &, const QString &, con
float zoom = gCoreContext->GetSetting("WebBrowserZoomLevel", "1.4").toFloat();

MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
MythScreenType *mythbrowser;

if (urls[0].startsWith("mythflash://"))
mythbrowser = new MythFlashPlayer(mainStack, urls);
{
MythFlashPlayer *flashplayer = new MythFlashPlayer(mainStack, urls);
if (flashplayer->Create())
mainStack->AddScreen(flashplayer);
else
delete flashplayer;
}
else
mythbrowser = new MythBrowser(mainStack, urls, zoom);
{
MythBrowser *mythbrowser = new MythBrowser(mainStack, urls, zoom);

if (mythbrowser->Create())
mainStack->AddScreen(mythbrowser);
else
delete mythbrowser;
// plot is used to set a default save directory
if (!plot.isEmpty())
mythbrowser->setDefaultSaveDirectory(plot);

if (mythbrowser->Create())
mainStack->AddScreen(mythbrowser);
else
delete mythbrowser;
}

return 0;
}
Expand Down
5 changes: 3 additions & 2 deletions mythplugins/mythbrowser/mythbrowser/mythbrowser.cpp
Expand Up @@ -62,6 +62,8 @@ bool MythBrowser::Create(void)

m_browserList.append(page);
page->getBrowser()->SetZoom(m_zoom);
page->getBrowser()->SetDefaultSaveDirectory(m_defaultSaveDir);

page->SetActive(true);

connect(page, SIGNAL(loadProgress(int)),
Expand Down Expand Up @@ -371,10 +373,9 @@ bool MythBrowser::keyPressEvent(QKeyEvent *event)
else
SetFocusWidget(m_pageList);
}

else if (action == "ESCAPE")
{
GetScreenStack()->PopScreen(false, true);
GetScreenStack()->PopScreen(true, true);
}
else if (action == "PREVTAB")
{
Expand Down
3 changes: 3 additions & 0 deletions mythplugins/mythbrowser/mythbrowser/mythbrowser.h
Expand Up @@ -25,6 +25,8 @@ class MythBrowser : public MythScreenType
bool Create(void);
bool keyPressEvent(QKeyEvent *);

void setDefaultSaveDirectory(const QString saveDir) { m_defaultSaveDir = saveDir; }

public slots:
void slotOpenURL(const QString &url);

Expand Down Expand Up @@ -68,6 +70,7 @@ class MythBrowser : public MythScreenType
int m_currentBrowser;
QUrl m_url;
float m_zoom;
QString m_defaultSaveDir;

Bookmark m_editBookmark;

Expand Down
4 changes: 4 additions & 0 deletions mythplugins/mythmusic/mythmusic/dbcheck.cpp
Expand Up @@ -68,6 +68,10 @@ static bool performActualUpdate(const QString updates[], QString version,

bool UpgradeMusicDatabaseSchema(void)
{
#if IGNORE_SCHEMA_VER_MISMATCH
return true;
#endif

SchemaUpgradeWizard * DBup;


Expand Down
44 changes: 25 additions & 19 deletions mythplugins/mythmusic/mythmusic/musicplayer.cpp
Expand Up @@ -35,6 +35,9 @@ QEvent::Type MusicPlayerEvent::TrackAddedEvent = (QEvent::Type) QEvent::register
QEvent::Type MusicPlayerEvent::TrackRemovedEvent = (QEvent::Type) QEvent::registerEventType();
QEvent::Type MusicPlayerEvent::AllTracksRemovedEvent = (QEvent::Type) QEvent::registerEventType();
QEvent::Type MusicPlayerEvent::MetadataChangedEvent = (QEvent::Type) QEvent::registerEventType();
QEvent::Type MusicPlayerEvent::TrackStatsChangedEvent = (QEvent::Type) QEvent::registerEventType();
QEvent::Type MusicPlayerEvent::AlbumArtChangedEvent = (QEvent::Type) QEvent::registerEventType();
QEvent::Type MusicPlayerEvent::CDChangedEvent = (QEvent::Type) QEvent::registerEventType();

MusicPlayer::MusicPlayer(QObject *parent, const QString &dev)
:QObject(parent)
Expand Down Expand Up @@ -916,26 +919,11 @@ MusicPlayer::ShuffleMode MusicPlayer::toggleShuffleMode(void)

void MusicPlayer::updateLastplay()
{
// FIXME this is ugly having to keep two metadata objects in sync
if (m_currentNode && m_currentNode->getInt() > 0)
if (m_currentMetadata)
{
if (m_currentMetadata)
{
m_currentMetadata->incPlayCount();
m_currentMetadata->setLastPlay();
sendMetadataChangedEvent(m_currentMetadata->ID());
}
// if all_music is still in scope we need to keep that in sync
// if (gMusicData->all_music)
// {
// Metadata *mdata
// = gMusicData->all_music->getMetadata(m_currentNode->getInt());
// if (mdata)
// {
// mdata->incPlayCount();
// mdata->setLastPlay();
// }
// }
m_currentMetadata->incPlayCount();
m_currentMetadata->setLastPlay();
sendTrackStatsChangedEvent(m_currentMetadata->ID());
}

m_updatedLastplay = true;
Expand Down Expand Up @@ -974,6 +962,24 @@ void MusicPlayer::sendMetadataChangedEvent(int trackID)
dispatch(me);
}

void MusicPlayer::sendTrackStatsChangedEvent(int trackID)
{
MusicPlayerEvent me(MusicPlayerEvent::TrackStatsChangedEvent, trackID);
dispatch(me);
}

void MusicPlayer::sendAlbumArtChangedEvent(int trackID)
{
MusicPlayerEvent me(MusicPlayerEvent::AlbumArtChangedEvent, trackID);
dispatch(me);
}

void MusicPlayer::sendCDChangedEvent(void)
{
MusicPlayerEvent me(MusicPlayerEvent::CDChangedEvent, -1);
dispatch(me);
}

void MusicPlayer::incVolume()
{
if (getOutput())
Expand Down
7 changes: 7 additions & 0 deletions mythplugins/mythmusic/mythmusic/musicplayer.h
Expand Up @@ -12,6 +12,7 @@

class AudioOutput;
class MainVisual;
class Playlist;

class MusicPlayerEvent : public MythEvent
{
Expand All @@ -37,6 +38,9 @@ class MusicPlayerEvent : public MythEvent
static Type TrackRemovedEvent;
static Type AllTracksRemovedEvent;
static Type MetadataChangedEvent;
static Type TrackStatsChangedEvent;
static Type AlbumArtChangedEvent;
static Type CDChangedEvent;
};

class MusicPlayer : public QObject, public MythObservable
Expand Down Expand Up @@ -117,6 +121,9 @@ class MusicPlayer : public QObject, public MythObservable
Metadata *getDisplayMetadata(void) { return &m_displayMetadata; }
void refreshMetadata(void);
void sendMetadataChangedEvent(int trackID);
void sendTrackStatsChangedEvent(int trackID);
void sendAlbumArtChangedEvent(int trackID);
void sendCDChangedEvent(void);

void toMap(QHash<QString, QString> &infoMap);

Expand Down
1 change: 1 addition & 0 deletions mythtv/keys.txt
Expand Up @@ -312,3 +312,4 @@ Other key 1 i Information

Other key 2 c Change tuner card input


51 changes: 48 additions & 3 deletions mythtv/libs/libmyth/audio/audiooutput.cpp
Expand Up @@ -103,10 +103,38 @@ AudioOutput *AudioOutput::OpenAudio(AudioSettings &settings,
}

#ifdef USING_PULSE
if (willsuspendpa &&
!main_device.contains("pulse", Qt::CaseInsensitive))
if (willsuspendpa)
{
pulsestatus = PulseHandler::Suspend(PulseHandler::kPulseSuspend);
bool ispulse = false;
#ifdef USE_ALSA
// Check if using ALSA, that the device doesn't contain the word
// "pulse" in its hint
if (main_device.startsWith("ALSA:"))
{
QString device_name = main_device;

device_name.remove(0, 5);
QMap<QString, QString> *alsadevs =
AudioOutputALSA::GetALSADevices("pcm");
if (!alsadevs->empty() && alsadevs->contains(device_name))
{
if (alsadevs->value(device_name).contains("pulse",
Qt::CaseInsensitive))
{
ispulse = true;
}
}
delete alsadevs;
}
#endif
if (main_device.contains("pulse", Qt::CaseInsensitive))
{
ispulse = true;
}
if (!ispulse)
{
pulsestatus = PulseHandler::Suspend(PulseHandler::kPulseSuspend);
}
}
#endif

Expand Down Expand Up @@ -185,6 +213,23 @@ void AudioOutput::SetStretchFactor(float /*factor*/)
{
}

AudioOutputSettings* AudioOutput::GetOutputSettingsCleaned(bool /*digital*/)
{
return new AudioOutputSettings;
}

AudioOutputSettings* AudioOutput::GetOutputSettingsUsers(bool /*digital*/)
{
return new AudioOutputSettings;
}

bool AudioOutput::CanPassthrough(int /*samplerate*/,
int /*channels*/,
int /*codec*/) const
{
return false;
}

void AudioOutput::Error(const QString &msg)
{
lastError = msg;
Expand Down
9 changes: 3 additions & 6 deletions mythtv/libs/libmyth/audio/audiooutput.h
Expand Up @@ -64,12 +64,9 @@ class MPUBLIC AudioOutput : public VolumeBase, public OutputListeners
virtual AudioFormat GetFormat(void) const { return FORMAT_S16; };
virtual int GetBytesPerFrame(void) const { return 4; };

virtual AudioOutputSettings* GetOutputSettingsCleaned(bool digital = true)
{ return new AudioOutputSettings; }
virtual AudioOutputSettings* GetOutputSettingsUsers(bool digital = true)
{ return new AudioOutputSettings; }
virtual bool CanPassthrough(int samplerate, int channels, int codec) const
{ return false; }
virtual AudioOutputSettings* GetOutputSettingsCleaned(bool digital = true);
virtual AudioOutputSettings* GetOutputSettingsUsers(bool digital = true);
virtual bool CanPassthrough(int samplerate, int channels, int codec) const;

// dsprate is in 100 * samples/second
virtual void SetEffDsp(int dsprate) = 0;
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputalsa.h
Expand Up @@ -28,7 +28,7 @@ class AudioOutputALSA : public AudioOutputBase
virtual void CloseDevice(void);
virtual void WriteAudio(uchar *aubuf, int size);
virtual int GetBufferedOnSoundcard(void) const;
AudioOutputSettings* GetOutputSettings(bool passthrough = false);
AudioOutputSettings* GetOutputSettings(bool passthrough);

private:
int TryOpenDevice(int open_mode, int try_ac3);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputbase.h
Expand Up @@ -122,7 +122,7 @@ class AudioOutputBase : public AudioOutput, public QThread
*/
virtual int GetBufferedOnSoundcard(void) const = 0;
// Default implementation only supports 2ch s16le at 48kHz
virtual AudioOutputSettings* GetOutputSettings(bool digital = false)
virtual AudioOutputSettings* GetOutputSettings(bool digital)
{ return new AudioOutputSettings; }
// You need to call this from any implementation in the dtor.
void KillAudio(void);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputca.cpp
Expand Up @@ -234,7 +234,7 @@ bool CoreAudioData::OpenAnalog()
return true;
}

AudioOutputSettings* AudioOutputCA::GetOutputSettings()
AudioOutputSettings* AudioOutputCA::GetOutputSettings(bool /*digital*/)
{
AudioOutputSettings *settings = new AudioOutputSettings();

Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputca.h
Expand Up @@ -18,7 +18,7 @@ class AudioOutputCA : public AudioOutputBase
AudioOutputCA(const AudioSettings &settings);
virtual ~AudioOutputCA();

AudioOutputSettings* GetOutputSettings(void);
AudioOutputSettings* GetOutputSettings(bool /*digital*/);

virtual int64_t GetAudiotime(void);

Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputdx.h
Expand Up @@ -25,7 +25,7 @@ class AudioOutputDX : public AudioOutputBase
virtual void CloseDevice(void);
virtual void WriteAudio(unsigned char *buffer, int size);
virtual int GetBufferedOnSoundcard(void) const;
AudioOutputSettings* GetOutputSettings(bool passthrough = false);
AudioOutputSettings* GetOutputSettings(bool passthrough);

protected:
AudioOutputDXPrivate *m_priv;
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputjack.cpp
Expand Up @@ -35,7 +35,7 @@ AudioOutputJACK::AudioOutputJACK(const AudioSettings &settings) :
Reconfigure(settings);
}

AudioOutputSettings* AudioOutputJACK::GetOutputSettings()
AudioOutputSettings* AudioOutputJACK::GetOutputSettings(bool /*digital*/)
{
int rate = 0;
int i = 0;
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputjack.h
Expand Up @@ -29,7 +29,7 @@ class AudioOutputJACK : public AudioOutputBase
virtual void CloseDevice(void);
virtual void WriteAudio(unsigned char *aubuf, int size);
virtual int GetBufferedOnSoundcard(void) const;
AudioOutputSettings* GetOutputSettings(void);
AudioOutputSettings* GetOutputSettings(bool /*digital*/);

// Overriding these to do nothing. Not needed here.
virtual bool StartOutputThread(void);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputoss.cpp
Expand Up @@ -46,7 +46,7 @@ AudioOutputOSS::~AudioOutputOSS()
KillAudio();
}

AudioOutputSettings* AudioOutputOSS::GetOutputSettings()
AudioOutputSettings* AudioOutputOSS::GetOutputSettings(bool /*digital*/)
{
AudioOutputSettings *settings = new AudioOutputSettings();

Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputoss.h
Expand Up @@ -22,7 +22,7 @@ class AudioOutputOSS : public AudioOutputBase
virtual void CloseDevice(void);
virtual void WriteAudio(unsigned char *aubuf, int size);
virtual int GetBufferedOnSoundcard(void) const;
AudioOutputSettings* GetOutputSettings(void);
AudioOutputSettings* GetOutputSettings(bool /*digital*/);

private:
void VolumeInit(void);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputpulse.cpp
Expand Up @@ -52,7 +52,7 @@ AudioOutputPulseAudio::~AudioOutputPulseAudio()
}
}

AudioOutputSettings* AudioOutputPulseAudio::GetOutputSettings()
AudioOutputSettings* AudioOutputPulseAudio::GetOutputSettings(bool /*digital*/)
{
AudioFormat fmt;
m_aosettings = new AudioOutputSettings();
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputpulse.h
Expand Up @@ -35,7 +35,7 @@ class AudioOutputPulseAudio : public AudioOutputBase
void Drain(void);

protected:
AudioOutputSettings* GetOutputSettings(void);
AudioOutputSettings* GetOutputSettings(bool /*digital*/);
bool OpenDevice(void);
void CloseDevice(void);
void WriteAudio(unsigned char *aubuf, int size);
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputwin.cpp
Expand Up @@ -139,7 +139,7 @@ AudioOutputWin::~AudioOutputWin()
}
}

AudioOutputSettings* AudioOutputWin::GetOutputSettings(void)
AudioOutputSettings* AudioOutputWin::GetOutputSettings(bool /*digital*/)
{
AudioOutputSettings *settings = new AudioOutputSettings();

Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmyth/audio/audiooutputwin.h
Expand Up @@ -22,7 +22,7 @@ class AudioOutputWin : public AudioOutputBase
virtual void CloseDevice(void);
virtual void WriteAudio(unsigned char *aubuf, int size);
virtual int GetBufferedOnSoundcard(void) const;
AudioOutputSettings* GetOutputSettings(void);
AudioOutputSettings* GetOutputSettings(bool digital);

protected:
AudioOutputWinPrivate *m_priv;
Expand Down

0 comments on commit 4ecbdf5

Please sign in to comment.