February 27, 2010, 09:55:04 am
News:
Pages: [1]
Print
Author Topic: OSX recording frontend  (Read 4776 times)
bagster
Sr. Member
****
Posts: 259


View Profile
« on: September 11, 2007, 10:45:49 am »

I will make a OSX frontend for my OSD.  I'll do it for my personnal use, but if people like it I can share it.  That's why i'll ask for your help.
I've started it yesterday, I'll post the user interface soon.  I just want to know what you think of the 2 way I think of it.
1- My client will connect in telnet to my OSD, get the .recordings, allow to modify it and send it back to the OSD (and optionnaly, reboot it)
2- My client will only modify a .recordings that is on my shared drive.  In my init script of my OSD, i'll add a symlink of the /mnt/OSD/.recording to the one on my drive.  If I can't make the link before the file is read, i'll make it in a way that it will check if the network .rec and the local .rec match, and if they don't, it will copy them and reboot the OSD
3- My client will support both methods.

What do you think of it?
Logged
bagster
Sr. Member
****
Posts: 259


View Profile
« Reply #1 on: September 11, 2007, 09:50:20 pm »

Interface will have these functions:


Logged
JoeBorn
Neuros Audio Team
Administrator
Hero Member
*****
Posts: 1347



View Profile WWW
« Reply #2 on: September 11, 2007, 10:46:35 pm »

Cool!  I didn't even know we had the .recordings interface you mentioned, I'm delighted to hear we do.  I'm going to cross post on the google groups mailing list, since that's where most of the developers are.
« Last Edit: June 16, 2009, 10:48:23 am by greyback » Logged

jborn (at) neurostechnology.com
#neuros on freenode.net
tn
Jr. Member
**
Posts: 51


View Profile
« Reply #3 on: September 11, 2007, 11:41:49 pm »

I also had written 'EPG -> .recording' software for windows with Delphi.
(.recording file can be modified using TIniFiles very simply).

However, one have to reboot OSD after '.recording' is changed.
And  if OSD is recording that time,  the recording file will be lost, or even
the file system will be broken.

So right now, I do not think it is a good way to edit ".recording" file directly. (geeks only Cheesy)
Logged
illin_technology
Full Member
***
Posts: 170


View Profile
« Reply #4 on: September 12, 2007, 12:10:09 am »

Wow, this interface would be great.  I'd be very excited to have this on my iMac.


Logged
yanvrno
Full Member
***
Posts: 109


View Profile
« Reply #5 on: September 12, 2007, 06:34:53 am »

If it could check recording status to see if a reboot was possible, it would be perfect addition to the OSD.
Very impressive, good work!
I love my my Macs

This is the kind of interfaces that would be great for controlling the record start and stop with a couple of buttons.
Logged
greyback
Administrator
Hero Member
*****
Posts: 1474


View Profile
« Reply #6 on: September 12, 2007, 06:40:05 am »

I'd love to see this too!

I'm wondering why a reboot is necessary. I'll have a look at the source and see.
-G
Logged
greyback
Administrator
Hero Member
*****
Posts: 1474


View Profile
« Reply #7 on: September 13, 2007, 04:36:02 am »

In case anyone is interested (or more clever than me & can actually figure out how the hell the Scheduler is working), it looks like the Scheduler's main methods are defined here:
http://svn.neurostechnology.com/filedetails.php?repname=linux-r3-main-app&path=%2Ftrunk%2Fdesktop%2Fsrc%2Fui%2Fnw-main.c&rev=0&sc=0

 Huh
-G
Logged
tn
Jr. Member
**
Posts: 51


View Profile
« Reply #8 on: September 13, 2007, 11:39:16 am »

Maybe we have to restart "OSDmain" in order to change the schedule.
    static void SetScheduleTimer(int sc) <--Once osdmain read ".recordings", it set the timer inside, and do not read the file again.

Restarting  "osdmain"  is not so easy..
---------(I have not tested this script, maybe dangerous)----
#!/bin/sh
# restart osdmain
# recording? (/usr/local/bin/recording)
ps | grep recoding
if [ $? = 0 ]; then
# shutdown osdmain
/etc/init.d/nanoxd stop
rm /var/tmp/shm-neux-wm
# restart osdmain
/etc/init.d/nanoxd start
/etc/init.d/desktop start
fi
------------
So instead of restarting "osdmain",
I think using "reboot" is more simple and reliable.

ps | grep recoding
if [ $? = 0 ]; then
/sbin/reboot

(or if you are know that OSD is not recording,   "sync;reboot" is enough. )
Logged
greyback
Administrator
Hero Member
*****
Posts: 1474


View Profile
« Reply #9 on: September 13, 2007, 02:22:28 pm »

Well the cleanest way would be to figure out how to make "osdmain" re-read the .recordings file. A simple program should do it, just calls the right function. Restarting osdmain just isn't nice.

Is that really that SetScheduleTimer(int sc) does? Man those comments need work.
-G
Logged
nerochiaro
Administrator
Newbie
*****
Posts: 40



View Profile WWW
« Reply #10 on: September 17, 2007, 12:38:25 am »

Well the cleanest way would be to figure out how to make "osdmain" re-read the .recordings file. A simple program should do it, just calls the right function. Restarting osdmain just isn't nice.

Ok, first off to everyone in this topic, please if you want to further discuss this, join the developers mailing list: http://groups.google.com/group/Neuros
You will get a more prompt response by posting there, since most of the devs hang out there. Keeping eyes on forums is just too cumbersome, sorry.

Now, to the actual issue:

- why do you all mention "osdmain" ? I suppose you mean "desktop", which is the name of the component of the split osdmain that handles schedules (among other things). If you still have "osdmain" in your firmwares, it's time to upgrade, you will find a ton of changed things from the versions that still have monolithic osdmain. It's not really worth your time working on pretty old versions.

- to pull off the PC-side scheduler application as you suggest, you need to patch "desktop" to do any of the following:
A) add a periodic timer that checks if the date of modification of the schedules file is changed, and if so asks it to be reloaded (more on this below).
B) make desktop listen on the network for a simple message on certain port, and have your OSX app (or any other PC-side scheduler) send this message when it has changed the schedules file. when the desktop receive this message from network, it asks the file to be reloaded. Or write a tiny daemon that does this and then communicated with desktop via Neux WM messages.

- to force re-read of the schedules, you need to load the settings plugin for recorder (desktop already does this, and i see you already found this out from your previous posts). Then use NeuxPluginControl to send to the plugin the command INIT_SCHEDULE_DATA. This in theory reloads all the schedules. Then you call GET_NEXT_SCHEDULE_ALARM and use the returned value to set the next-scheduled timer (desktop already does this, so check how it does it).

A word of warning: I have not actually tried to do any of this, i just looked into the code. If none of you feels confident enough to try your hand at writing a patch on this and submit it, we can add this task to official developers schedule and do it internally for you.

Please quote any of the above on the mailing list for further discussion.
Thank you,
--
nero



« Last Edit: June 16, 2009, 10:48:43 am by greyback » Logged
Pages: [1]
Print
Jump to: