דף 1 מתוך 1

שאלת פיתוח ל-XBMC

נשלח: 27/12/2012 15:12
על ידי theotg
שלום,

בתור צלם (חובב+) יש לי מלאן תמונות בשומר המסך. חיפשתי פלאגין ל-XBMC שישים את שם הקובץ על התמונה כשהוא מציג אותה (ועדיף אפילו אחרי איזה עיבוד REGEX קל) ולא מצאתי.

אז אני חושב לעשות את זה בעצמי - איך מתחילים בכלל? איך משתמשים בשירותים של XBMC (למשל פתיחת התמונה, events של שומר מסך, וכו')... אני יודע קצת פייתון, אז זאת לא תהיה הבעיה.

אין לי בעיה גם לנסות להשתלב לתוך שומר המסך המובנה, אם מישהו יודע איך עושים את זה...

שמתי שאלה בפורום של XBMC, לא ממש ענו לי.

בקיצור - יש פה הרבה שאלות, אז כל תשובה תעזור...

תודה,
אורן

נשלח: 27/12/2012 18:42
על ידי tomer953
הסברת יפה, אבל לצערי מרוב שאני מכיר כ"כ הרבה תכונות בXBMC לא הצלחתי להבין על איזו בדיוק אתה מדבר.

עלו לי כמה השערות:
1. אתה מדבר על שומר המסך שנקרא SlideShow, שהוא מציג את הFanarts של הסרטים כאשר XBMC לא בתזוזה? את זה אפשר להגדיר דרך האפשרויות "מראה -> שומר מסך -> Slideshow"
2. אתה מדבר על תצוגת התמונות הפרטיות, כלומר להיכנס אל תמונות- התיקיות שלך - ואז לעשות ENTER על אחת מהתמונות, ואז אתה מדבר שתוך כדי שרואים את התמונה בFullScreen על המסך, יהיה רשום שם התמונה?

לדעתי אני אוכל לעזור, אין צורך בפייטון, רק בעריכת קבצי הXML המתאימים הנמצאים בתיקית הסקין שלך.
רק תכווין אותי בדיוק למה אתה מדבר, ואם לא קלעתי בניחושים למעלה, אז תמונת מסך תעזור

נשלח: 27/12/2012 20:12
על ידי theotg
tomer953 כתב:הסברת יפה, אבל לצערי מרוב שאני מכיר כ"כ הרבה תכונות בXBMC לא הצלחתי להבין על איזו בדיוק אתה מדבר.

עלו לי כמה השערות:
1. אתה מדבר על שומר המסך שנקרא SlideShow, שהוא מציג את הFanarts של הסרטים כאשר XBMC לא בתזוזה? את זה אפשר להגדיר דרך האפשרויות "מראה -> שומר מסך -> Slideshow"
2. אתה מדבר על תצוגת התמונות הפרטיות, כלומר להיכנס אל תמונות- התיקיות שלך - ואז לעשות ENTER על אחת מהתמונות, ואז אתה מדבר שתוך כדי שרואים את התמונה בFullScreen על המסך, יהיה רשום שם התמונה?

לדעתי אני אוכל לעזור, אין צורך בפייטון, רק בעריכת קבצי הXML המתאימים הנמצאים בתיקית הסקין שלך.
רק תכווין אותי בדיוק למה אתה מדבר, ואם לא קלעתי בניחושים למעלה, אז תמונת מסך תעזור
...
בדיוק על השילוב שלהן :lol: אצלי שומר המסך מראה תמונות פרטיות שלי. בהגדרות של שומר מסך אפשר הרי לקבוע איזו תיקיה תהיה בשימוש, אז אצלי זאת תיקיית תמונות פרטיות. בכל אופן, שמות התמונות שם הן בפורמט כזה של אינדקס + שם, למשל Oren Birthday.jpg 13 (ה-13 אמור להיות משמאל... :roll:) אני רוצה להראות שם בלי אינדקס ובלי סיומת.


אם זה משנה, אני משתמש בסקין transparency, אבל לדעתי זה לא קשור.

תודה,
אורן

נשלח: 28/12/2012 14:44
על ידי tomer953
טוב אני סוג של מתקדם, נשאר לי רק להשיג את המזהה שיחזיר את שם הקובץ.

קודם כל אני מניח שאתה יודע שהSlideshow המובנה של XBMC כבר לא עובד טוב, לכן צריך להוריד את התוסף שנקרא בדיוק אותו הדבר Slideshow מתפריט ההרחבות - שומר מסך.

לאחר מכן, כדי לערוך זאת, יש להיכנס לתיקית ההגדרות של XBMC, אם אתה משתמש בווינדוס, אז:

קוד: בחירת הכל

C:\Users\USERNAME\AppData\Roaming\XBMC\addons\screensaver.xbmc.slideshow
שים לב שזה לא:

קוד: בחירת הכל

C:\Users\USERNAME\AppData\Roaming\XBMC\addons\screensaver.xbmc.builtin.slideshow
כי בזה אנחנו לא משתמשים, זה המובנה של XBMC שכבר לא עובד מהגירסאות החדשות כפי שציינתי.

עכשיו לעריכה של הקבצים:

מצאתי לנכון 2 קבצים שצריך לשחק בהם כדי להגיע לתוצאה, האחד מהם נמצא בתוך:

קוד: בחירת הכל

screensaver.xbmc.slideshow\resources\skins\default\720p
שזה קובץ עיצובי בשפת XML

והשני נמצא בתוך:

קוד: בחירת הכל

screensaver.xbmc.slideshow\resources\lib
שזה קובץ בשפת פייטון שזה בעצם הסקריפט עצמו.

עכשיו מה שאני עשיתי עד כה זה דבר פשוט, הוספתי סוג של LABEL שתופיע על התמונות בזמן הצגתן, ואני יכול להציג בהן את הטקסט שאני רוצה.
הבעיה היא שאני לא מוצא איך להציג את שם התמונה שכרגע מוצגת... אני מתקרב לאט לאט, פשוט החלטתי לשתף אותך שתראה את ההתקדמות.

מה שעשיתי זה ערכתי את הקובץ XML העיצובי והוספתי לו בסוף את זה:

קוד: בחירת הכל

  <control type="label" id="953">
        <posx>500</posx>
        <posy>50</posy>
        <width>550</width>
        <visible>true</visible>
        <align>center</align>
        <aligny>center</aligny>
        <scroll>false</scroll>
	<label>TEST&#58; FILENAME HERE</label>
        <font>font-26</font>
        <textcolor>white</textcolor>
        <shadowcolor>ff000000</shadowcolor>
  </control>
	</controls>
</window>
(מבלי שתי השורות האחרונות שהיו קיימות כבר, הוספתי את הכפתור מעליהן)

עכשיו רק צריך למצוא מה שמים בתוך תגית הLabel כדי שיציג את שם התמונה, ניסיתי עשרות משתנים, וחיפשתי גם בWIKI של XBMC, אבל זה תחום אפור קצת.. לכן יש מצב שנצטרך לשחק בקובץ פייטון כדי לעשות לזה משתנה בעצמנו

תודה - זה כבר לפרודו, אני מבין?

נשלח: 28/12/2012 17:32
על ידי theotg
אם כן - אאלץ לשדרג, אני מניח :lol:

תודה!

נשלח: 28/12/2012 17:44
על ידי tomer953
מצאתי איך להציג את הPATH של התיקיה, וכמה שזה נשמע קרוב ל"להציג את שם הקובץ" זה רחוק חח לא מצליח לי..
אני אנסה לדבר עם חבר נראה אם הוא יעזור.

וכן זה פרודו RC2

נשלח: 29/12/2012 15:14
על ידי tomer953
טוב הצלחתי, ועזרו לי בפורום שם גם,
עכשיו אני רק מייעל את זה ועושה את זה לטעמי ואני אפרסם את הקוד פה בעריכה בהמשך.

קח:
http://forum.xbmc.org/showthread.php?ti ... pid1279760

תתחיל עם זה, זה מציג את שמות הקבצים שבתיקיה ללא הסיומת.
לדוגמא
ספיידרמן 3 (2010).jpg
יציג רק ספיידרמן 3 (2010)
אפשר לשנות את זה, לפי מה שתרצה, בהצלחה

תודה!

נשלח: 31/12/2012 14:52
על ידי theotg
אני לא מאמין שאגיע להתקין פרודו השבוע, אולי לשבוע הבא כבר תהיה גרסה סופית...

שוב תודה!

אורן

טוב, התקנתי - אבל...

נשלח: 07/01/2013 13:20
על ידי theotg
קודם כל - עובד, תודה וסבבה. אבל...

1) התמונות כבר לא ממלאות את כל המסך! אני יודע שיחס של 2:3 ושל 9:16 הם לא זהים ולכן יש שוליים. אבל קודם לא היו. יש דרך לתקן?

2) יותר חמור אפילו זה שתמונות אנכיות לא מסתירות לגמרי את מה שהיה לפניהן, ואז יש תמונה על תמונה...

3) יש רק אפקט יחיד למעבר בין התמונות... יש דרך להוסיף?

4) אני מנסה להוריד את המספר שיש לכל תמונה בתור אינדקס לפני ההצגה:

קוד: בחירת הכל

FILENAME, EXT = os.path.splitext&#40;os.path.basename&#40;img&#41;&#41;
IndexStart = re.search&#40;"&#40;\d+&#41;&#40;.*&#41;", FILENAME&#41;
if IndexStart != None&#58;
	FILENAME = IndexStart.group&#40;2&#41;
למיטב הבנתי (הלא עצומה) בפייתון שלוש השורות שהוספתי אמורות להוריד ספרות מההתחלה אם הן שם. ככה לפחות זה נראה בנסיונות שעשיתי בסקריפט בדיקה קטן על הלינוקס שלי. בכל אופן, זה לא עובד ואני עדיין רואה את האינדקס. ד"א, הוספתי גם import re בהתחלה...

יש רעיונות?

תודה
אורן

העריכה: היתה בעייה של טאבים. עכשיו זה לא נכשל, רק לא עובד (וכמובן לא מותח את התמונות כמו פעם)

נשלח: 08/01/2013 16:29
על ידי tomer953
טוב סידרתי.

1) תסיר את ההרחבה, תוריד אותה מחדש.
2) תיכנס להגדרות שלה, תבחר בתיקיה של התמונות שלך - ותפעיל את השומר מסך (תצוגה מקדימה)
זהו המצב ברירת מחדל של ההרחבה, ככה יוצגו התמונות.
שים לב שכעת הן לא "עולות" אחת על השנייה.
3) כעת כנס להגדרות ותבחר את המצב בו אתה רוצה להציג, יש 3 מצבים אפשריים:
Slide, Pan and Zoom, ו- Crossfade, בחר אחד מהם, ושוב בצע תצוגה מקדימה לראות שאתה מרוצה.
מכאן - השינויים שלנו נכנסים לתמונה:
ע"מ להסיר את האינדקס מהתמונות השתמשתי בREGEX הבא:

קוד: בחירת הכל

                        import re			
                        FILENAME = re.sub&#40;'^&#91;0-9&#93;+','', FILENAME&#41;
הוא יסיר -כל- ספרה שתצוין בתחילת שם הקובץ. לפי הדוגמאות שלך ששלחת לי בפרטי זה אמור לעבוד.
חוץ מזה צירפתי לכאן את הקובץ החדש, פשוט תעתיק אותו (אחרי שהתקנת והסרת מחדש את ההרחבה כפי שציינתי בהתחלה)

gui.py :
http://pastebin.com/1q26wEvC

script-python-slideshow.xml :
http://pastebin.com/jmi5Sqau

מקווה שעזרתי.

התקנתי, עובד - ושאלות

נשלח: 08/01/2013 19:25
על ידי theotg
tomer953 כתב:טוב סידרתי.

1) תסיר את ההרחבה, תוריד אותה מחדש.
2) תיכנס להגדרות שלה, תבחר בתיקיה של התמונות שלך - ותפעיל את השומר מסך (תצוגה מקדימה)
זהו המצב ברירת מחדל של ההרחבה, ככה יוצגו התמונות.
שים לב שכעת הן לא "עולות" אחת על השנייה.
3) כעת כנס להגדרות ותבחר את המצב בו אתה רוצה להציג, יש 3 מצבים אפשריים:
Slide, Pan and Zoom, ו- Crossfade, בחר אחד מהם, ושוב בצע תצוגה מקדימה לראות שאתה מרוצה.
מכאן - השינויים שלנו נכנסים לתמונה:
ע"מ להסיר את האינדקס מהתמונות השתמשתי בREGEX הבא:
הוא יסיר -כל- ספרה שתצוין בתחילת שם הקובץ. לפי הדוגמאות שלך ששלחת לי בפרטי זה אמור לעבוד.
חוץ מזה צירפתי לכאן את הקובץ החדש, פשוט תעתיק אותו (אחרי שהתקנת והסרת מחדש את ההרחבה כפי שציינתי בהתחלה)

gui.py :
http://pastebin.com/1q26wEvC

script-python-slideshow.xml :
http://pastebin.com/jmi5Sqau

מקווה שעזרתי.
...
מותקן ועובד, אבל:
1) מספר הגרסה לא עודכן :lol:
2) אשמח אם תהיה אפשרות להשהיה יותר ארוכה של התמונה על המסך, וכנ"ל שהמעבר בין תמונות (לפחות עם criossfade) יהיה יותר ארוך
3) אם יהיה אפשר לשלוט במיקום, גודל וצבע הטקסט בלי לערוך את ה-XML אלא מהתוכנה זה יהיה אחלה, אבל אני מבין שזאת גרסה ראשונית...

תודה רבה!


אורן

נשלח: 08/01/2013 21:32
על ידי tomer953
אתה מודע לזה שההרחבה SlideShow היא לא שלי נכון? היא של הצוות של XBMC. אין באפשרותי לערוך את ההרחבה אלא לשימוש אישי כמו שעשינו ע"י עריכת הXML וקבצי הpy

אגב אני לא מבין אותך, כנס להגדרות של ההרחבה ושם אתה יכול לבחור את מס' השניות של כל תמונה ואת האפקט ואת האחוזים שלו.. תשחק עם זה.. זה מצוין.

בכל אופן, הצעתי לבעלי הסקין T! לשלב בגירסא עתידית של הסקין את האופציה הזאתי בצורה מובנית, מקווה שזה יכנס..
עד אז - Custom XML..


עריכה:
ואם אתה רוצה את ה'אפקט' עצמו יותר ארוך של הFADE, תערוך בקובץ XML את שתי השורות הבאות:

קוד: בחירת הכל

<effect type="fade" start="100" end="0" time="500"/>
השורה הזאתי מופיעה בקוד באופן זהה פעמיים
time=500 אומר שהאפקט יופיע לחצי שנייה, אם תשנה את זה ל2000 זה יהיה אפקט של 2 שניות בערך שזה אפקט ארוך. שחק עם זה... (שוב, במקביל בשתי השורות שזה מופיע..).
שמור את הקובץ XML ותבדוק איך יצא.

אגב, חובה שהשניות שהגדרת בין מעבר תמונות יהיה גדול יותר מזמן האפקט (זה די ברור, אחרת האפקט יהיה ממושך יותר ממשך הזמן שהתמונה מוצגת).

שמחתי לעזור

תשובות

נשלח: 09/01/2013 6:06
על ידי theotg
tomer953 כתב:אתה מודע לזה שההרחבה SlideShow היא לא שלי נכון? היא של הצוות של XBMC. אין באפשרותי לערוך את ההרחבה אלא לשימוש אישי כמו שעשינו ע"י עריכת הXML וקבצי הpy

אגב אני לא מבין אותך, כנס להגדרות של ההרחבה ושם אתה יכול לבחור את מס' השניות של כל תמונה ואת האפקט ואת האחוזים שלו.. תשחק עם זה.. זה מצוין.

בכל אופן, הצעתי לבעלי הסקין T! לשלב בגירסא עתידית של הסקין את האופציה הזאתי בצורה מובנית, מקווה שזה יכנס..
עד אז - Custom XML..

שמחתי לעזור
...
שוב - קודם כל תודה, וכן, אני יודע שהוא לא שלך...

האפשרויות שם מוגבלות למדי - יש רק 10 שניות, שבניכוי זמן המעבר לא משאיר זמן לתמונה (לטעמי), לכן רציתי אפשרות של עד 20 שניות. כרגע אני פשוט אשנה את זה בפייתון שם לספור 2000 מילי ולא 1000 כל פעם או משהו כזה :-)

ושוב - המון תודה!

נשלח: 09/01/2013 9:23
על ידי tomer953
AppData\Roaming\xbmc\addons\screensaver.xbmc.slideshow\resources\settings.xml
תערוך את שורה
<setting label="30010" type="enum" id="time" default="4" va&#108;ues="1|2|3|4|5|6|7|8|9|10">
שים במקומה את
<setting label="30010" type="enum" id="time" default="4" va&#108;ues="1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|25|26|27|28|29|30|35|40|45|50|55|60"/>

בהצלחה

תודה!

נשלח: 09/01/2013 9:28
על ידי theotg
tomer953 כתב:AppData\Roaming\xbmc\addons\screensaver.xbmc.slideshow\resources\settings.xml
תערוך את שורה
<setting label="30010" type="enum" id="time" default="4" va&#108;ues="1|2|3|4|5|6|7|8|9|10">
שים במקומה את
<setting label="30010" type="enum" id="time" default="4" va&#108;ues="1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|25|26|27|28|29|30|35|40|45|50|55|60"/>

בהצלחה
...
אורן