Ein kleiner Tip von mir: MPD + Sonata = Sehr schöne Musik!

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Ein kleiner Tip von mir: MPD + ATD = Sehr schöner Wecker!

Beitragvon veers » Donnerstag 31. Mai 2007, 16:03

Ein kleiner Tip von mir: MPD + ATD = Sehr schöner Wecker!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Ein kleiner Tip von mir: MPD + ATD = Sehr schöner Wecker

Beitragvon Leonidas » Donnerstag 31. Mai 2007, 16:17

veers hat geschrieben:MPD + ATD = Sehr schöner Wecker!

Sofern der Computer entweder die ganze Zeit an ist (Stromverbrauch und ggf. laut) oder sich zu einer bestimmten Zeit einschalten kann (können meiner Erfahrung nach nur die wenigsten).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Re: Ein kleiner Tip von mir: MPD + ATD = Sehr schöner Wecker

Beitragvon veers » Donnerstag 31. Mai 2007, 16:26

Leonidas hat geschrieben:Sofern der Computer entweder die ganze Zeit an ist (Stromverbrauch und ggf. laut)
Lässt sich beides minimieren ;) Ausserdem gibt es noch die ganz perversen welche meinen sie müssen einen Server zuhause haben ;)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Re: Ein kleiner Tip von mir: MPD + ATD = Sehr schöner Wecker

Beitragvon Y0Gi » Donnerstag 31. Mai 2007, 17:51

Leonidas hat geschrieben:
veers hat geschrieben:MPD + ATD = Sehr schöner Wecker!

Sofern der Computer entweder die ganze Zeit an ist (Stromverbrauch und ggf. laut) oder sich zu einer bestimmten Zeit einschalten kann (können meiner Erfahrung nach nur die wenigsten).

Mit einem Magic Packet vom Router oder Server lokal oder im Internet ließe sich letzteres wohl bewerkstelligen.

Aber ein einfacher Wecker, ggf. mit Radio- und MP3-Material, ist wohl naheliegender ;)
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Beitragvon mq » Donnerstag 31. Mai 2007, 19:09

Leonidas hat geschrieben:aber wenn die anderen Geräte von harman/kardon auch so klingen wie die im Laptop verbauten, dann bleib ich lieber mein meiner über zehnjährigen Stereoanlage :)
Och, das Soundsystem von $kumpel basiert im Wesentlichen auf deren Produkten, und das hat schon verdammt guten Sound (und eignet sich wunderbar zum Burnout spielen, in 5.1 und laut kommt das echt gut :D).

Oeh, ja, @ topic: ich benutze fuer gewoehnlich entweder Amarok oder cmus. mpd hab ich mir bisher nicht angeguckt (wobei mir der gestern erst wieder empfohlen wurde, allerdings mit Webinterface-Client von jemandem, der 'nen Rechner headless als Jukebox laufen laesst).
mots
User
Beiträge: 9
Registriert: Dienstag 10. Juli 2007, 09:44

Beitragvon mots » Mittwoch 11. Juli 2007, 10:33

Um den toten Topic mal wiederzubeleben: habe vor einiger Zeit probiert, ein MPD/Sonata-Plugin fürs NowPlaying Screenlet zu schreiben, scheint aber nicht zu funzen... Irgendwelche ideen?:

Code: Alles auswählen

#!/usr/bin/env python

# MPD API

import os
import dbus
import string
import gobject
import mpdclient
from GenericPlayer import GenericAPI

class MPDAPI(GenericAPI):
   __name__ = 'MPD API'
   __version__ = '0.1'
   __author__ = 'mots'
   __desc__ = 'API to the Music Player Daemon'
   
   host='localhost'
   port=6600

   playerAPI = None

   __timeout = None
   __interval = 2

   callbackFn = None
   __curplaying = None

   # Extended Functions from the GenericAPI

   def __init__(self, session_bus):
      GenericAPI.__init__(self, session_bus)

   def is_active(self, dbus_iface):
      try:
         self.mpd = mpdclient.MpdController(host,port)
         return True
      except:
         return False


   def connect(self):
      self.playerAPI = self.mpd

   def get_title(self):
      return self.playerAPI.getCurrentSong().title

   def get_album(self):
      return self.playerAPI.getCurrentSong().album

   def get_artist(self):
      return self.playerAPI.getCurrentSong().artist

   def get_cover_path(self):
      #return self.playerAPI.GetPlayingCoverUri()

   def is_playing(self):
      if self.playerAPI.status().stateStr() == 'play': return True
      else: return False

   def play_pause(self):
      if self.playerAPI.status().stateStr() == 'play':
         self.playerAPI.pause()
      else:
         self.playerAPI.play()

   def next(self):
      self.playerAPI.next()

   def previous(self):
      self.playerAPI.prev()

   def register_change_callback(self, fn):
      self.callback_fn = fn
      # Could not find a callback signal for MPD, so just calling after some time interval
      if self.__timeout:
         gobject.source_remove(self.__timeout)
      self.__timeout = gobject.timeout_add(self.__interval * 1000, self.info_changed)

   def info_changed(self, signal=None):
      # Only call the callback function if Data has changed
      if self.__timeout:
         gobject.source_remove(self.__timeout)
      try:
         if self.__curplaying != None and not self.is_playing():
            self.__curplaying = None
            self.callback_fn()

         playinguri = self.playerAPI.GetPlayingUri()
         if self.is_playing() and self.__curplaying != playinguri:
            self.__curplaying = playinguri
            self.callback_fn()
         self.__timeout = gobject.timeout_add(self.__interval * 1000, self.info_changed)
      except:
         # The player exited ? call callback function
         self.callback_fn()

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder