Neuer schicker All-in-One Client

strammermax

Neuer User
Mitglied seit
6 Nov 2007
Beiträge
72
Punkte für Reaktionen
0
Punkte
0
Guten Abend,
erstmal an die SOT-Coder ein dickes Respekt für den bestehenden Client, super Arbeit.

Leider hat die Oberfläche bei meinen Kumpels nur am Anfang ein kurzes "Cool, was ist denn das!" bewirkt, deshalb habe ich mich mal selber dran gemacht, eine zu coden.

Das was rauskam lässt sich bequem über das SOT-Menü starten und sieht eigentlich schon ganz schick aus. Hab mal 2 Screenshots angehängt.

Fertig ist bisher schon das ganze drumherum (Fernbedienung, Grafiken, Grundgerüste für Widgets), das Wetter, der RSS-Feed Reader und die Bilder-Diashow.

Kommen wird noch :
- ZDF Mediathek
- Gametrailers Widget
- Foto Diashow (mit paar Effekten, falls die Box das überhaupt schafft)
- UWA Widget Implementation (netvibes.com)
- meine bisherigen Games (z.T. Javascript bzw. hardcoded)
- Email Client und das ganze Zeugs halt, was man von so einem Teil erwartet :)


3 Fragen habe ich an euch :

1) Gibts sowas schon und mach ich evntl. doppelte Arbeit? (Außer dem SOT-Client natürlich)

2) Auf den anderen Boxen, auf denen der SOT läuft, müsste ja auch WinCE5.0 laufen. Gibts da irgendwelche Unterschiede beim coden? Momentan mach ich das Teil in C# und ich kann z.B. einige Funktionen zwar auf meinem PDA (WM6) ausführen, aber nicht auf der ThomsonBox.

3) Da die tolle Box ja keine transparenten Grafiken darstellen kann, muss man alle Bitmaps als jpegs speichern, was echt krass umständlich ist (z.B. die Wettergrafiken sind so anstatt 47 images jetzt schon so ~300), braucht alles Platz. Gibts da Abhilfe? Transparenzen-Hack oder sowas? Hab bisher meist in C++ programmiert, da gibts genügend libs dafür, in c# auch? Hab leider noch keine gefunden, die auf der Zielplatform läuft.

Und als letztes noch ne Frage an die SOT-Hersteller : Es gibt wohl keine Möglichkeit, dass ich die SOT.ini auch als Konfigfile verwenden kann, oder?

Grüße!
 

Anhänge

  • thomsonmedia1.jpg
    thomsonmedia1.jpg
    105 KB · Aufrufe: 357
  • thomsonmedia2.jpg
    thomsonmedia2.jpg
    28.8 KB · Aufrufe: 298
Hallo strammermax,

dein Projekt schaut ja schon wirklich sehr gut aus!

Ein ähnliches Projekt bearbeitet gerade Chicura in diesem Threat.

Leider fehlt (meiner Meinung nach) halt noch ein Kommentar von NEELIXThomas zu diesen Vorhaben. :noidea:

Joe
 
Hallo strammermax,

Das hört sich sehr interessant an, was du da gemacht hast!
Ich kann die Veröffentlichung deines Portals kaum noch abwarten.

Oder hast du nicht vor es zu veröffentlichen?
 
Hoi,
hab ich direkt nach dem posten auch gelesen, den Thread. Den Weg über Enbedded C++ zu gehn, ist sicher der bessere, was die neuste Technik angeht. C# ist wie mir scheint schon etwas in die Jahre gekommen, ist für mich irgendwie dasselbe wie VB.net.

Ich finde das aber eigentlich sehr gut! Konkurrenz belebt den Wettbewerb! Und außerdem habe ich so jemanden, mit dem ich Problemchen austauschen kann...

Natürlich werde ich das Teil veröffentlichen. Wie assi wäre das denn, sowas hier reinzuschreiben und es dann zu behalte. Es dann zu verkaufen wäre schlau, aber das würde ja komplett den Sinn verfehlen.

Sobald ich ne Möglichkeit gefunden habe, irgendwo Daten in eine INI zu packen, die jederman einfach findet, stelle ich eine Version online...
 
Ähm, also erstmal freue ich mich über jede Art der Verbesserung der Thomson STB.

Allerdings muss ich mal fragen, wie Du auf die Idee kommst C# sei ein wenig in die Jahre gekommen. C# ist die neuste der in Visual Studio implementierten Programmiersprachen (und J# natürlich). Es ist eine verbesserte Form von C++, da auf verwirrende Notationen wie einen doppelten Doppelpunkt u.ä. verzichtet wurde. Sollte also etwas tatsächlich "in die Jahre gekommen" sein, dann ist es wohl C++, was nur noch beim systemnahen programmieren wirkliche Vorteile hat. Dies ist aber, auch wenn es im ersten Moment vielleicht den Anschein haben mag, bei diesem Projekt keinesfalls notwendig.
 
jo geb ich dir natürlich recht. Wie gesagt, ich hab vor ner Woche mit C# angefangen und noch nicht so den Überblick. Ich dachte bisher, das C# sowas zwischen VB und C wäre... Zum Glück hab ich mich da getäuscht. Leider lernt man die Sprache im handelsüblichen Softwaretechnik-Studium nicht :-(

@SkopeOperator : Finde ich extrem cool, der sieht einfach gut aus.
 
@strammermax:
Sieht sehr hübsch aus, das von Chicura aus dem besagten Thread aber auch.
Zu den Programmiersprachen: da ich mich jetzt auch seit 5 Tagen mit c# beschäftige, kann ich nur sagen: c++ und c# ist kaum zu vergleichen. c# geht eher Richtung Visual Basic, unterliegt denselben Einschränken, ist aber konsequent objektorientiert umgesetzt. Die Einschränkungen ind nur darin begründet, daß es plattform übergreifend arbeiten soll. Deswegen kein direkter Speicherzugriff, keine Pointer, keine Pointerarithmetik, kein direkter API-Aufruf usw. Deswegen gibts dann solche Konstrukte wie Delegates, in C++ sind das simple Funktionszeiger.
Die Einschränkungen kann man aber, genauso wie im klassischen VB umgehen, im VB gibts deswegen dann Operatoren wie PointerOf. Bei VB.net und c# lassen sich die Einschränkungen genauso umgehen. Es gibt imho keine schlechten und guten Programmiersprachen, die Hochsprache steht und fällt mit der zur Verfügung gestellten Objektbiblkiothek (MFC, .net u.a.) Beim C# und .net ist die sehr umfangreich und "schön", obwohl ich persönlich von Borland komme und mich noch sehr zurechtfinden muß, ich bin pausenlos am suchen.

Du kannst natürlich auch mit c oder c++ für die Box proggen, ein gnu-compiler oder halt der von Borland geht auf jeden Fall, du schreibst ja schließlich ein x86-Prog. Nur hast Du dort keine fertige Klassenbibliothek, die Dir die WinCE-API kapselt. Also müssteste alles selber basteln.
Aber für die Anforderungen, geschwindigkeitstechnisch, die wir hier haben, reicht c# voll und ganz und ist bestens geeignet. (Bei MS gibt es Geschwindigkeitsvergleiche für .net und c++/mfc-Anwendungen, und da schneidet .Net überraschen gut ab, obwohl es noch in der MCL vorlag.
Also, mit c# bist du voll auf der Höhe der Zeit!

Apropos, so schön, wie es bei dir aussieht, stellt scih ir die Frage: Mit welchen Controls hast du gearbeitet, insbesondere das alphablending und die glossy-effekte? Will ja auch noch lernen :dance:

Gruß, cambies
 
@c# : sehr schön erklärt. Da ich von der FH sowieso das Visual Studio habe, bleib ich auf jeden Fall bei C#. Das macht richtig süchtig.

@grafiken : Tja, bisher hab ich alle Grafiken im Photoshop gerendert, d.h. PNG auf den Hintergrund legen und alle Ebenen auf ein jpeg runterrechnen. Ist sicher eine der schlechtesten Lösungen, aber hab bisher noch keine Alternative gefunden.
Zudem hat mein "Projekt" mit Exe jetzt schon 3,4MB, was für so wenig Funktionen und für ein "Embedded System" wie unsere Box absolut inakzeptabel ist...

Ich habs vorher mal mit OpenGL versucht (total blöde Idee, ich weiß). Auf meinem PDA (624Mhz) funktionierts, auf der Box bleibts einfach stehen...

Kommt Zeit, kommt Rat!
 
Und diese EXE läuft bei Dir. Bei meinen Tests musste ich feststellen, dass meine Exe nicht mehr läuft, sobald sie eine Größe von mehr als 2MB erreicht. Daher speichere ich die Bilder in eine Ressourcen-Datei, damit ich sie im Programm an mehreren Stellen verwenden kann, ohne dabei eine größere Speicherlast zu erzeugen.
 
Danke! Die Seite hat mir auch schon sehr viel weitergeholfen...

Ich hab das gleich mal ausprobiert. Bei mir gibts den "TransparencyKey" leider nicht. Den gibts nur, wenn ich eine normale WindowsApplication erstellen will.

Die ganzen Methoden, die mir C# von Haus aus mitgibt, können sowieso nur 2 Wege :

1) Der Alpha-Channel (0% oder 100%, kein Semi) des Bildes wird durch die Farbe ersetzt, welche im drunterliegenden Form als TransparencyKey angegeben wurde

2) Das aktuelle Bild darunter wird kopiert und ersetzt eine Farbe (beispielsweise Rosa) im Bild darüber. Das ist aber mit jeder Menge Image kopieren und Farbberechnung verbunden, da ich jetzt schon alle Grafiken in Stapelverarbeitungen im PS herstellen kann, ist das erstmal egal.
 
In meinem Client benutze ich auch PS-Grafiken, da das PictureBox-Control von Windows CE einfach nicht mehr hergibt. Ist aber meiner Meinung nach kein Problem.
 
Jo, halt nur die Größe. Wenn man 1000 Grafiken hat, die alle "nur" 3KB haben, dann sinds halt auch 3MB.

Bei mir sinds jetzt schon fast 5MB, echt krass, wie das ansteigt.
 
Ich verstehe immer noch nicht, weshalb das bei Dir läuft. Wie gesagt: Wenn meine EXE-Datei größer ist als 2MB wird sie nicht mehr gestartet. Dann sehe ich nur das Windows Hintergrundbild. Daher beschränke ich mich jetzt auf die notwendigsten Grafiken und speichere diese als Ressource, damit ich sie wenigstens an verschiedenen Stellen im Programm einsetzen kann. Kopiert man nämlich die PictureBox, dann werden die Bilddaten ebenfalls kopiert und mehrfach im Programm abgelegt.

Außerdem bastle ich noch an einer ansprechenden Oberfläche, die jedoch auf Transparenteffekte teilweise verzichtet. Oder ich benutze einfach die normalen Buttons und färbe diese ein. Das Ergebnis ist auch OK. Und da ich den Client ja in erster Linie zum Anschauen von Videos (also ZDFmediathek) konzipiert habe, wird man sich wohl auch eher für die Videos und die Einfachheit der menüführung anstatt für das Styling der Oberfläche interessieren.

Trotzdem bin ich natürlich Perfektionist und möchte mich eigentlich nicht mit halben Sachen zufireden geben.

Ich bin im Übrigen erst bei 1,6MB und habe schon das animierte Hauptmenü und den ZDFmediathek-Client
 
Ich hab die Bilddateien mittlerweile lokal gespeichert, deshalb ist meine Exe nur noch 260KB groß :)

Wenns ne einfache Sache wäre, dann würde ich sagen, lass uns das Ding zusammen machen... Aber gegenseitig helfen ist bestimmt auch gut, oder?

Wie hast du den Mediathek Client realisiert?

Ich hab gerade eine Funktion geschrieben, die mir alle Trailer von gametrailers.com als Links anzeigt. Allerdings kann man nach dem draufklicken und anschauen den MediaPlayer nicht mehr mit der Fernbedienung schließen... Gibts im Visual Studio ne API dafür?

P.S.: Für schnickschnack Sachen kann man die Box voll vergessen, habe hier mal ein Fenster mit einer e-Funktion einfaden lassen, schon das packt sie nicht *gg*
 
Ja, die Probleme mit dem MediaPlayer habe ich auch. Das sollte aber über API-Funktionen lösbar sein. Eine API-Funktion zum Schließen eines Fensters sollte sogar CE enthalten.

Gemeinsames Entwickeln finde ich auch zu kompliziert, da man dann viel zu viel kommentieren müsste. Der von mir geschriebene Mediathek Client ließt die Inhalte der Seite über den HTML-Quellcode aus und stellt diese dann in einem eigens konzipierten menü da. Mit der grafischen Seite ansich kann man nichts anfangen, weil hier Flash verwendet wird und auch der HTML-Standard höher zu sein scheint, als der von de Box unterstützte.

Das gleiche Konzept verfolge ich auch bei YouTube. Hier habe ich eine eigene Suchmaske und Ergebnisdarstellung geschrieben und fische mir die Informationen aus der Interaktion mit der Seite. Die eigentliche YouTube-Seite wird hierbei kein einziges Mal angezeigt.
 
Hallo !!

Das was Ihr da bastelt sieht wirklich gut aus. Weiter so.
Nun mal eine Frage:
Ist diese Oberfläche ein Teil vom SOT oder komplett eigenständig?
Entwickelt Ihr hier komplett etwas neues?

Hat eigentlich jemand NEELIX die letzten Tage gesehen, da er sich zu diesem Thema nicht äußert.
Vielleicht könntet ihr euch kurzschließen, nicht das das zu einem Problem wird (SCHMOLL, GROLL ..)
und wir hier irgentwann 20 verschiedene Clients haben. Weil der eine viel Wert auf aussehen und
der andere auf neue Funktionen legt usw......
Das fänd ich schade. :(
 
@grinch1971:
Da hast du natürlich völlig Recht. Als "Client" kann man das, was ich da bastel, eigentlich nicht bezeichnen. Ich starte das Programm nach wie vor über das SOT-Menü.
Ist eigentlich wirklich nur eine Spielerei, ein Addon für den SOT, wenn du willst. Mir gefällt halt nur die Oberfläche vom SOT nicht, und das Wetter fehlt.. Und Spiele. Und ne TV-Zeitschrift. Und und und... Deshalb mach ich was eigenes.

Chicura macht ja fast dasselbe. Wenn wir beide mal richtig weit gekommen sind, dann können wir ja zusammen mit dem SOT-Client einen Mega-Client schaffen, hätte ich nichts gegen!

Grüße
 
Wegen des Schmoll, Groll habe ich auch ein wenig bedenken, aber das hatten wir ja auch schon an andere Stelle, 'ne chicura?! ;)
Trotzdem find ich gut, das sich wieder was bewegt, auch in eine andere Richtung.
@mäxchen: was willst'n für eine TV-Zeitschrift nehmen? Ich habe immer Klack genommen, weil quasi werbefrei, von Kabel Deutschland (dem sauladen) gibt's auch eine:
EPG

Achso, wegen des Transparent-Malens ist mir noch etwas eingefallen, kostet aber Mühe: Die herkömmliche GDI von WinCE 5.0 kennt ja BitBlt() oder StretchBlt(). Mit einem bissl Aufwand könnte man eine Button-Klasse schreiben, die aufgrund eines zugrundegelegten Bildes mit einer Transparentfarbe, z.b. Magic Magenta, am obersten, linken Pixel die transparente Farbe erkennt, daraus ein SpeicherBitmap erstellt , welches aus nur 2 farben besteht, schwarz und weiß und dann invertiert (DeviceIndependentBitmap, 2 Farben).
Das ist dann die Maske für die Transparenten Flächen des Vorlage-BMPS. Und nun kann man durch geschicktes Blitting unter Zuhilfename von srcCopy, srcXOR und srcInvert den Button dann Transparent malen. Eine weitere Variante wäre das Nutzen von Regions. Die hätten den Vorteil, das de Mausereignisse im transparenten Teil der Bitmap an die ParentForm durchgeleitet werden.
Die entsprechenden DLL-Zugriffe:
- CreateBitmap,
- GetObject,
- CreateDC,
- GetDC,
- SelectObject und BitBlt,
- DeleteObject
kann man ja in C# einbinden und beide Varianten wären mit Mitteln der Ur-GDI von anno dunnemals zu realiseren. Die 800 Mhz der Box sollten auch ausreichen, ich habe das mal unter Windows 3.0 für einen 486SX mit VB programmiert, nur bei C# bin ich jetzt bei Tag 6 und stochere ehrlich gesagt aufgrund geringer Zeit noch ziemlich im Urschleim.
Ich kann aber mal zu Hause in meinem alten Zeugs kramsen, wie die genau Reihenfolge der Kopierflags für's BitBLT lautet. Vielleicht ist der Quellcode in VB auch noch da.

geändert 11.50Uhr:
@chicura: Dein Problems des Nicht-Startens deiner Exe, wenn größer 2M,b klingt nach fehlendem Arbeitsspeicher? Entwickelst du mit Java? Wenn nicht, schmeiß doch mal die JavaVM vom SOT von der Karte 'runter oder verhindere das Kopieren?!
 
Zuletzt bearbeitet:
Streamliner Update

Hallo Freunde,

ich weiß nicht, ob ich es bereits erwähnt habe, aber mein Projekt wurde umgetauft von MOT auf Streamliner! So das erstmal dazu.

Dann haben sich verschiedene Probleme ergeben, die sich vor allem auf die externe Steuerung des Media Players beziehen. Ich werde wohl, damit alles so läuft, wie ich es mir vorstelle den Media Player in meine Software integrieren und nicht extern als eigenständige Datei starten. Das sollte aber heute erledigt sein. Dann geht es wieder aufwärts.

Wie schon 'strammermax' gesagt hat ist sein Projekt eine Web-Oberfläche. Da ich einen kompletten Client schreibe inklusive neuer DLLs für das CE Windows und inzwischen auch immer näher am System, unterscheiden sich unsere Projekte in dieser Hinsicht. Lassen sich aber gleichzeitig dadurch zu einem späteren Zeitpunkt optimal verknüpfen.

Ich werde in einem Submenü meines Hauptmenüs auch einen festen Link für diese Oberfläche einbauen, so dass man die Oberfläche von 'strammermax' (wie wäre es mal mit einem Projektnamen... ;)) von dort aus öffnen kann, falls dies gewünscht ist. Da ich jetzt noch viele neue Ideen im Kopf habe (hab gestern mal mit DirectX versucht, aber das ist wohl kein Freund von der IP1101) verschiebe ich den offiziellen Start meiner Beta-Version auf den 01.12.2007. Dann werde ich Sie auf eine Homepage im Internet zum Download anbieten.

@strammermax: Bis dahin können wir ja auch noch sehen, wie weit Du schon bist und ggf. Dein Portal schon in meine Beta-Version integrieren.

YouTube:
Mit angryjack bin ich gerade im Gespräch, wie wir die FLV-Darstellung auf der STB ermöglichen. Wir haben jetzt so viele (auch gute) Ansätze, dass ich denke, dass dies in naher Zukunft möglich sein wird. Wie es dann mit Qualität, Geschwindigkeit, etc. aussehen wird, vermag ich zum jetzigen Zeitpunkt noch nicht zu sagen.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.